mirror of
https://gitlab.xiph.org/xiph/icecast-common.git
synced 2024-09-01 03:54:15 -04:00
Karl's patch for a namespace collision he reports on some BSD systems.
svn path=/trunk/net/; revision=4861
This commit is contained in:
parent
09aa3b40db
commit
a9419adb1a
15
net/sock.c
15
net/sock.c
@ -1,3 +1,4 @@
|
|||||||
|
/* -*- c-basic-offset: 4; -*- */
|
||||||
/* sock.c
|
/* sock.c
|
||||||
* - General Socket Functions
|
* - General Socket Functions
|
||||||
*
|
*
|
||||||
@ -592,7 +593,7 @@ sock_t sock_get_server_socket(const int port, char *sinterface)
|
|||||||
#else
|
#else
|
||||||
struct sockaddr_in sa;
|
struct sockaddr_in sa;
|
||||||
#endif
|
#endif
|
||||||
int sa_family, sa_len, error, opt;
|
int family, len, error, opt;
|
||||||
sock_t sock;
|
sock_t sock;
|
||||||
char ip[MAX_ADDR_LEN];
|
char ip[MAX_ADDR_LEN];
|
||||||
|
|
||||||
@ -601,8 +602,8 @@ sock_t sock_get_server_socket(const int port, char *sinterface)
|
|||||||
|
|
||||||
/* defaults */
|
/* defaults */
|
||||||
memset(&sa, 0, sizeof(sa));
|
memset(&sa, 0, sizeof(sa));
|
||||||
sa_family = AF_INET;
|
family = AF_INET;
|
||||||
sa_len = sizeof(struct sockaddr_in);
|
len = sizeof(struct sockaddr_in);
|
||||||
|
|
||||||
/* set the interface to bind to if specified */
|
/* set the interface to bind to if specified */
|
||||||
if (sinterface != NULL) {
|
if (sinterface != NULL) {
|
||||||
@ -615,8 +616,8 @@ sock_t sock_get_server_socket(const int port, char *sinterface)
|
|||||||
((struct sockaddr_in*)&sa)->sin_port = htons(port);
|
((struct sockaddr_in*)&sa)->sin_port = htons(port);
|
||||||
} else if (inet_pton(AF_INET6, ip,
|
} else if (inet_pton(AF_INET6, ip,
|
||||||
&((struct sockaddr_in6*)&sa)->sin6_addr) > 0) {
|
&((struct sockaddr_in6*)&sa)->sin6_addr) > 0) {
|
||||||
sa_family = AF_INET6;
|
family = AF_INET6;
|
||||||
sa_len = sizeof (struct sockaddr_in6);
|
len = sizeof (struct sockaddr_in6);
|
||||||
((struct sockaddr_in6*)&sa)->sin6_family = AF_INET6;
|
((struct sockaddr_in6*)&sa)->sin6_family = AF_INET6;
|
||||||
((struct sockaddr_in6*)&sa)->sin6_port = htons(port);
|
((struct sockaddr_in6*)&sa)->sin6_port = htons(port);
|
||||||
} else {
|
} else {
|
||||||
@ -637,7 +638,7 @@ sock_t sock_get_server_socket(const int port, char *sinterface)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* get a socket */
|
/* get a socket */
|
||||||
sock = socket(sa_family, SOCK_STREAM, 0);
|
sock = socket(family, SOCK_STREAM, 0);
|
||||||
if (sock == -1)
|
if (sock == -1)
|
||||||
return SOCK_ERROR;
|
return SOCK_ERROR;
|
||||||
|
|
||||||
@ -646,7 +647,7 @@ sock_t sock_get_server_socket(const int port, char *sinterface)
|
|||||||
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const void *)&opt, sizeof(int));
|
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (const void *)&opt, sizeof(int));
|
||||||
|
|
||||||
/* bind socket to port */
|
/* bind socket to port */
|
||||||
error = bind(sock, (struct sockaddr *)&sa, sa_len);
|
error = bind(sock, (struct sockaddr *)&sa, len);
|
||||||
if (error == -1)
|
if (error == -1)
|
||||||
return SOCK_ERROR;
|
return SOCK_ERROR;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user