Sander Temme wrote:

On Mar 18, 2004, at 12:21 AM, Sander Striker wrote:


I've put the 2.0.49 tarballs up at:


I'm not entirely happy about IPv6/IPv4 behaviour on at least FreeBSD 5.2.1 and MacOSX 10.3.{2,3}, possibly others.

I'm seeing the following when running the perl-framework. All three boxes have IPv6 enabled. The perl-framework configures its Apache to Listen on localhost:8529 (and a bunch of other ports). This results, on all three machines, in the httpd only binding to ::1 for all ports. Apparently the LWP stuff that perl-framework uses only knows about IPv4, so all tests fail.

On the BSD box, when I switch the localhost lines so that IPv4 (127.0.0.1) comes before IPv6 (::1), and re-run the tests, I see the server (using netstat) bind to only IPv4. Tests succeed.

I don't know how to make the same switch on the Macs: they tend to use NetInfo for this stuff when running multi-user, but the NetInfo database contains only IPv4 information.

I don't know enough about IPv6 to know what's going on here (maybe I should change that), and I don't know if Apache is doing anything wrong here... can it do anything but ask the OS for what localhost is, and live with the answer? Is the practice to degenerate 127.0.0.1 and ::1 into the name localhost, broken?

I have not had the chance to test this on earlier releases.

Yes, this issue is a problematic and helping to resolve it would be great! I don't have any ipv6 experience and my machine is ipv4, so if you do, please help.


Here is the TODO item:

- Apache-Test doesn't run on IPv6 systems, need to change the
  autogeneration of httpd.conf to support IPv6. It requires a
  replacement of 'Listen 80' with 'Listen servername:80'
  Philippe posted patch here:
  http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=105514290024419&w=2

  For now, 127.0.0.1 will be hardcoded in the Listen directive, but a better
  method would use this table:

  Apache  \   OS      | IPV4         |  IPV6
  --------------------------------------------
  --enable-v4-mapped  |      80      |  80
  --disable-v4-mapped | can't happen |  127.0.0.1:80

To more correctly pick the right Listen flavor.

The problem is that some platforms that run ipv4, configure the dns resolver to use ipv6 ::1 syntax, which wrecks a lot of havoc.

So if you know how to identify whether ipv6 is used or not programmatically, across all platforms, and write the correct configuration file, I'm all ears.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Reply via email to