On Fri, 2004-02-13 at 15:51 -0800, Stas Bekman wrote:
Philippe M. Chiasson wrote:
On Thu, 2004-02-12 at 10:24 -0800, Stas Bekman wrote: [...] Configuring httpd with --enable-v4-mapped will make it all work, but it's not the default, so most people on those BSDs are getting an httpd that will default to IPv6. Even localhost in /etc/hosts is going to be '::1' (ipv6 equiv of localhost).
So will the name->ip resolving function return ::1 then? in which case you get the detection mechanism working, no?
on ipv4 we get: % perl -le 'use Socket; print inet_ntoa scalar gethostbyname shift;' localhost
127.0.0.1
what do you get on ipv6?
127.0.0.1 ;-)
The problem in this case is that for backwards-compatibility, the resolver library will return IPv4 address, unless (on OpenBSD) you use gethostbyname2(...,AF_INET6), and I don't think Perl exposes that stuff yet.
Thanks.
The following patch (short of being to detect at configure time the IPv4/6 status of the box) hard-codes all the listening IP addresses to 127.0.0.1, effectively ensuring all the test suite runs under vanilla- IPv4.
Ideally, I'd like to figure out a way to detect things correctly, and pick between 127.0.0.1 and ::1 accordingly.
What happens if localhost != 127.0.0.1? Shouldn't we use 'localhost' instead? (though we know cases when users didn't have localhost defined in /etc/hosts)
Yeah, well, problems arises when localhost in /etc/hosts is ::1 (ipv6 loopback)
Ideally, to fix this once and for all, we need to determine 2 things:
1. The availability of IPv6 on that box 2. Wether httpd was compiled with --enable-v4-mapped or not (or what it defaulted to)
Well, if we can figure out (2), then 1 can be skipped. If someone built Apache with v6, it certainly won't work on a system w/o ipv6 enabled. No?
On my machine: % httpd -V | grep -i ipv -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
what's yours (with ipv6?)
And once we can figure that out, then can we make a correct decision as to what to bind to.
But, AFAIK, 127.0.0.1 (or ::1) _must_ be the a loopback address, isn't it ?
It usually is. But I think you can change it. Otherwise you won't need to list it in /etc/hosts if it was hardcoded to 127.0.0.1 in all software products. But I could be wrong.
__________________________________________________________________ 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
-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html