jerenkrantz 2004/04/03 09:15:52
Modified: . CHANGES network_io/unix sockopt.c network_io/win32 sockopt.c Log: Even if we do not check the value of APR_IPV6_V6ONLY before setting, we still must set the option cache if we're setting APR_IPV6_V6ONLY. Otherwise, later apr_socket_opt_get calls will fail.
This fixes Listen directives on IPv6 machines where IPV6_V6ONLY may be enabled (i.e. FreeBSD 5.x, OpenBSD, NetBSD) where it would not properly bind to the IPv4 socket.
This fixes an issue we saw on hermes.apache.org where the Listen directive wasn't binding to the correct interfaces.
I was pretty sure that httpd was doing the right thing here, but it was APR that lost the setting of APR_IPV6_V6ONLY - so httpd thought that IPV6_V6ONLY was disabled when it really had already been enabled. Hence, it collapsed the IPv4 address into the IPv6 socket - causing it not to bind to IPv4. -- justin