use IPV6_V6ONLY

This commit is contained in:
Alexandre Ratchov 2012-11-19 00:13:19 +01:00
parent 2d63cee93c
commit 32bd2a8953
1 changed files with 14 additions and 0 deletions

View File

@ -166,6 +166,20 @@ listen_new_tcp(char *addr, unsigned int port)
perror("setsockopt");
goto bad_close;
}
if (ai->ai_family == AF_INET6) {
/*
* make sure IPv6 sockets are restricted to IPv6
* addresses because we already use a IP socket
* for IP addresses
*/
opt = 1;
if (setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY,
&opt, sizeof(int)) < 0) {
perror("setsockopt");
goto bad_close;
}
}
if (bind(s, ai->ai_addr, ai->ai_addrlen) < 0) {
perror("bind");
goto bad_close;