X-Git-Url: https://git.piment-noir.org/?p=deb_shairplay.git;a=blobdiff_plain;f=src%2Flib%2Fnetutils.c;h=3fc8838547aeb6857591eb95849f30737a5cd9c8;hp=8c7c5f74914b786f77432eef750e8133dce22c81;hb=64d59e3087f829006d091fa0d114efb50972a2bf;hpb=e161255a2728cd2b8ee5f1768997eeb3b173e843 diff --git a/src/lib/netutils.c b/src/lib/netutils.c index 8c7c5f7..3fc8838 100644 --- a/src/lib/netutils.c +++ b/src/lib/netutils.c @@ -71,19 +71,18 @@ netutils_init_socket(unsigned short *port, int use_ipv6, int use_udp) memset(&saddr, 0, sizeof(saddr)); if (use_ipv6) { struct sockaddr_in6 *sin6ptr = (struct sockaddr_in6 *)&saddr; - int v6only = 0; + int v6only = 1; /* Initialize sockaddr for bind */ sin6ptr->sin6_family = family; sin6ptr->sin6_addr = in6addr_any; sin6ptr->sin6_port = htons(*port); - /* Make sure we also listen to IPv4 addresses */ - ret = setsockopt(server_fd, IPPROTO_IPV6, IPV6_V6ONLY, - (char *) &v6only, sizeof(v6only)); - if (ret == -1) { - goto cleanup; - } +#ifndef WIN32 + /* Make sure we only listen to IPv6 addresses */ + setsockopt(server_fd, IPPROTO_IPV6, IPV6_V6ONLY, + (char *) &v6only, sizeof(v6only)); +#endif socklen = sizeof(*sin6ptr); ret = bind(server_fd, (struct sockaddr *)sin6ptr, socklen);