sock: set IPV6_V6ONLY on the socket before binding an IPv6 address
so that we can bind wildcard for both IPv4 and IPv6. Signed-off-by: Michael Adam <obnox@samba.org>
This commit is contained in:
parent
d7f67768eb
commit
0698e4d180
12
src/sock.c
12
src/sock.c
@ -204,6 +204,18 @@ static int listen_on_one_socket(struct addrinfo *ad)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (ad->ai_family == AF_INET6) {
|
||||
ret = setsockopt(listenfd, IPPROTO_IPV6, IPV6_V6ONLY, &on,
|
||||
sizeof(on));
|
||||
if (ret != 0) {
|
||||
log_message(LOG_ERR,
|
||||
"setsockopt failed to set IPV6_V6ONLY: %s",
|
||||
strerror(errno));
|
||||
close(listenfd);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
ret = bind(listenfd, ad->ai_addr, ad->ai_addrlen);
|
||||
if (ret != 0) {
|
||||
log_message(LOG_ERR, "bind failed: %s", strerror (errno));
|
||||
|
Loading…
Reference in New Issue
Block a user