On Mar 05, Russ Allbery <[EMAIL PROTECTED]> wrote: > This is probably referring to binding an IPv6 :: socket and getting IPv4 > for free, so that a subsequent bind to an IPv4 0.0.0.0 address fails. So > far as I know, this is still the Linux IPv6 behavior. Yes, but it can be controlled with code like this (and every program which binds a listening socket should do it, because the system could be configured both ways!):
#ifndef IPV6_V6ONLY #define IPV6_V6ONLY 26 #endif #ifndef IPPROTO_IPV6 #define IPPROTO_IPV6 41 #endif fd = socket(AF_INET6, SOCK_STREAM, IPPROTO_IP); if (fd < 0) { printf("ERROR (socket) %d: %s", errno, strerror(errno)); return 1; } if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &opt, sizeof(opt)) < 0) { /* ignore failures */ } -- ciao, Marco
signature.asc
Description: Digital signature