Lines 256-262
static int csync_server_bind(void)
Link Here
|
256 |
struct addrinfo hints; |
256 |
struct addrinfo hints; |
257 |
struct addrinfo *result, *rp; |
257 |
struct addrinfo *result, *rp; |
258 |
int save_errno; |
258 |
int save_errno; |
259 |
int sfd = -1, s, on = 1; |
259 |
int sfd = -1, s, off = 0, on = 1; |
260 |
memset(&hints, 0, sizeof(struct addrinfo)); |
260 |
memset(&hints, 0, sizeof(struct addrinfo)); |
261 |
hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */ |
261 |
hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */ |
262 |
hints.ai_socktype = SOCK_STREAM; |
262 |
hints.ai_socktype = SOCK_STREAM; |
Lines 284-289
static int csync_server_bind(void)
Link Here
|
284 |
goto error; |
284 |
goto error; |
285 |
if (setsockopt(sfd, IPPROTO_TCP, TCP_NODELAY, &on, (socklen_t) sizeof(on)) < 0) |
285 |
if (setsockopt(sfd, IPPROTO_TCP, TCP_NODELAY, &on, (socklen_t) sizeof(on)) < 0) |
286 |
goto error; |
286 |
goto error; |
|
|
287 |
if (rp->ai_family == AF_INET6) |
288 |
if (setsockopt(sfd, IPPROTO_IPV6, IPV6_V6ONLY, &off, (socklen_t) sizeof(off)) < 0) |
289 |
goto error; |
287 |
|
290 |
|
288 |
if (bind(sfd, rp->ai_addr, rp->ai_addrlen) == 0) |
291 |
if (bind(sfd, rp->ai_addr, rp->ai_addrlen) == 0) |
289 |
break; /* Success */ |
292 |
break; /* Success */ |