Re: IO::Socket and IPv6

Quanah Gibson-Mount <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.ldap
Message-ID <2D73F76A7751580C123255DB@[192.168.1.2]>
--On Thursday, March 03, 2011 12:35 PM -0600 Graham Barr <[email protected]> 
wrote:

>
> On Mar 3, 2011, at 12:03 , Quanah Gibson-Mount wrote:
>
>> --On Wednesday, March 02, 2011 9:56 PM -0600 Graham Barr
>> <[email protected]> wrote:
>>
>>>> After a bit of debugging, the root problem is Perl's implementation of
>>>> inet_aton.  I've filed a bug with Perl core.
>>>
>>> I think it is partly some fault of Net::LDAP
>>>
>>> Net::LDAP will use IO::Socket::INET or IO::Socket::INET6 to connect
>>> depending on if the inet6 option is passed to connect
>>>
>>> ::INET will only connect to v4 addresses but I believe ::INET6 will
>>> connect to either. But there is no guarantee ::INET6 exists
>>>
>>> Hm, I wonder if we should just select the default connecting class by
>>>
>>> my $connect_class = eval { require IO::Socket::INET6 } ?
>>> "IO::Socket::INET6" : "IO::Socket::INET";
>>
>> Hi Graham,
>>
>> That may indeed fix Net::LDAP's behavior, but any other Perl module out
>> there that ends up calling IO::Socket::INET which then goes and calls
>> inet_aton has the possibility of hitting this issue.  So I do think it
>> would be great if it gets fixed at the Perl core level as well. ;)
>
> But ::INET itself, IIRC, makes assumptions that it is connecting to a v4
> address. so I do not think just changing inet_aton  will solve the problem

Hi Graham,

I guess I haven't explained well enough.

Net::LDAP passes IO::Socket::INET a hostname.  A hostname that is 
configured for both IPv4 and IPv6.  The LDAP server is happily bound to 
both IPv4 and IPV6.

If /etc/hosts is ordered in one way, the Perl inet_aton function correctly 
resolves the IPv4 address.  If /etc/hosts is ordered another way, the Perl 
inet_aton function fails to resolve the hostname *at all*.  This to me is a 
bug.

--Quanah


--

Quanah Gibson-Mount
Sr. Member of Technical Staff
Zimbra, Inc
A Division of VMware, Inc.
--------------------
Zimbra ::  the leader in open source messaging and collaboration
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.