diff --git a/common.c b/common.c index a254691..f59ba64 100644 --- a/common.c +++ b/common.c @@ -144,6 +144,11 @@ int start_listen_sockets(int *sockfd[], struct addrinfo *addr_list) check_res_dump(CR_WARN, res, addr, "setsockopt(IP_FREEBIND)"); } + if (addr->ai_addr->sa_family == AF_INET6) { + res = setsockopt((*sockfd)[i], IPPROTO_IPV6, IPV6_V6ONLY, (char*)&one, sizeof(one)); + check_res_dump(CR_WARN, res, addr, "setsockopt(IPV6_V6ONLY)"); + } + res = bind((*sockfd)[i], addr->ai_addr, addr->ai_addrlen); check_res_dump(CR_DIE, res, addr, "bind");