Skip Menu |

This queue is for tickets about the IO-Socket-INET6 CPAN distribution.

Report information
The Basics
Id: 57676
Status: resolved
Priority: 0/
Queue: IO-Socket-INET6

People
Owner: Nobody in particular
Requestors: Steffen_Ullrich [...] genua.de
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 2.61
Fixed in: (no value)



Subject: problems with multihomed and family order (patch included)
Hi, Due to (my) last fixes on IO::Socket::INET6 multihomed got broken. Additionally it could happen, that it preferred inet6 even if the host usually prefers inet6. This was not detected because the io_multihomed test was assumes that it will try to connect to inet6 first w/o checking it. Because the default on OpenBSD is to prefer IPv4 it was detected by a friend. The attached patch (against 2.61) contains the following: - rewrite of io_multihomed test so that it tests the right thing regardless if the host prefers inet or inet6 - fix for IO::Socket::INET6: for( my $r=0;$r<@rres;$r+=5 ) { - next if $rres[0] != $fam_listen; # must be same family + next if $rres[$r] != $fam_listen; # must be same family ^^^^ - change to the algorithm for finding out the combinations of [family,localaddr,peeraddr] so that the order is driven by @rres, eg the order given by getaddrinfo(peeraddr,AF_UNSPEC). The problem with the older approach was, that getaddrinfo('',AF_UNSPEC,AI_PASSIVE) returns on Linux (at least on my system) inet before inet6, even if the system prefers inet6 before inet. patch was tested with per5.8.8 and perl5.10.1 on ubuntu10.04 with inet6 prefered to inet and also the other way. Regards, Steffen
Subject: io-socket-inet6.patch
diff -ru IO-Socket-INET6-2.61/lib/IO/Socket/INET6.pm IO-Socket-INET6-2.61.new/lib/IO/Socket/INET6.pm --- IO-Socket-INET6-2.61/lib/IO/Socket/INET6.pm 2010-03-25 09:45:16.000000000 +0100 +++ IO-Socket-INET6-2.61.new/lib/IO/Socket/INET6.pm 2010-05-20 21:21:33.000000000 +0200 @@ -177,20 +177,25 @@ } my @flr; - for( my $l=0;$l<@lres;$l+=5) { - my $fam_listen = $lres[$l]; - my $lsockaddr = $lres[$l+3]; - if (@rres) { - # collect all combinations whith the same family in lres and rres - for( my $r=0;$r<@rres;$r+=5 ) { - next if $rres[0] != $fam_listen; # must be same family - push @flr,[ $fam_listen,$lsockaddr,$rres[$r+3] ]; - } - } else { - # collect only the binding side - push @flr,[ $fam_listen,$lsockaddr ]; - } - } + if (@rres) { + # collect all combinations whith the same family in lres and rres + # the order we search should be defined by the order of @rres, + # not @lres! + for( my $r=0;$r<@rres;$r+=5 ) { + for( my $l=0;$l<@lres;$l+=5) { + my $fam_listen = $lres[$l]; + next if $rres[$r] != $fam_listen; # must be same family + push @flr,[ $fam_listen,$lres[$l+3],$rres[$r+3] ]; + } + } + } else { + for( my $l=0;$l<@lres;$l+=5) { + my $fam_listen = $lres[$l]; + my $lsockaddr = $lres[$l+3]; + # collect only the binding side + push @flr,[ $fam_listen,$lsockaddr ]; + } + } # try to bind and maybe connect # if multihomed try all combinations until success diff -ru IO-Socket-INET6-2.61/t/io_multihomed6.t IO-Socket-INET6-2.61.new/t/io_multihomed6.t --- IO-Socket-INET6-2.61/t/io_multihomed6.t 2010-03-25 09:45:16.000000000 +0100 +++ IO-Socket-INET6-2.61.new/t/io_multihomed6.t 2010-05-20 21:24:16.000000000 +0200 @@ -1,9 +1,11 @@ #!./perl +use strict; +use warnings; BEGIN { unless(grep /blib/, @INC) { chdir 't' if -d 't'; - @INC = '../lib'; + unshift @INC,'../lib'; } } @@ -25,79 +27,118 @@ $reason = 'IO extension unavailable'; } if ($reason) { - print "1..0 # Skip: $reason\n"; + print "1..0 # SKIP $reason\n"; exit 0; } } if ($^O eq 'MSWin32') { - print "1..0 # Skip: accept() fails for IPv6 under MSWin32\n"; + print "1..0 # SKIP accept() fails for IPv6 under MSWin32\n"; exit 0; } } -$| = 1; +use IO::Socket::INET6; -print "1..5\n"; +$| = 1; +print "1..8\n"; eval { $SIG{ALRM} = sub { die; }; alarm 60; }; -# Okey: -# To check the Multihome strategy, let's try the next : -# Open a IPv4 server on a given port. -# then, try a client on unspecified family -AF_UNSPEC- -# The multihomed socket will try then firstly IPv6, fail, -# and then IPv4. -package main; - -use IO::Socket::INET6; - -$listen = IO::Socket::INET6->new(Listen => 2, - # 8080 is a commonly used port - # so we're using a more obscure port - # instead. - LocalPort => 28083, - Family => AF_INET, - Proto => 'tcp', - Timeout => 5, - ) or die "$@"; +# find out if the host prefers inet or inet6 by offering +# both and checking where it connects +my ($port,@srv); +for my $addr ( '127.0.0.1','::1' ) { + push @srv, IO::Socket::INET6->new( + Listen => 2, + LocalAddr => $addr, + LocalPort => $port, + ) or die "listen on $addr port $port: $!"; + $port ||= $srv[-1]->sockport; +} print "ok 1\n"; -$port = $listen->sockport; - -if($pid = fork()) { - - $sock = $listen->accept() or die "$!"; - print "ok 2\n"; - - print $sock->getline(); - print $sock "ok 4\n"; +if (my $pid = fork()) { + my $vec = ''; + vec($vec,fileno($_),1) = 1 for(@srv); + select($vec,undef,undef,5) or die $!; + + # connected to first, not second + my ($first,$second) = vec($vec,fileno($srv[0]),1) ? @srv[0,1]:@srv[1,0]; + my $cl = $first->accept or die $!; + + # listener should not work for next connect + # so it needs to try second + close($first); + + # make sure established connection works + my $fam0 = ( $cl->sockdomain == AF_INET ) ? 'inet':'inet6'; + print $cl "ok 2 # $fam0\n"; + print $cl->getline(); # ok 3 + close($cl); + + # ... ok 4 comes when client fails to connect to first + + # wait for connect on second and make sure it works + $vec = ''; + vec($vec,fileno($second),1) = 1; + if ( select($vec,undef,undef,5)) { + my $cl2 = $second->accept or die $!; + my $fam1 = ( $cl2->sockdomain == AF_INET ) ? 'inet':'inet6'; + print $cl2 "ok 5 # $fam1\n"; + print $cl2->getline(); # ok 6 + close($cl2); + + # should be different families + print "not " if $fam0 eq $fam1; + print "ok 7\n"; + } waitpid($pid,0); + print "ok 8\n"; - $sock->close; - - print "ok 5\n"; - -} elsif(defined $pid) { - - $sock = IO::Socket::INET6->new(PeerPort => $port, - Proto => 'tcp', - PeerAddr => 'localhost', - MultiHomed => 1, - Timeout => 1, - ) or die "$@"; - - print $sock "ok 3\n"; - sleep(1); # race condition - print $sock->getline(); - - $sock->close; +} elsif (defined $pid) { + close($_) for (@srv); + # should work because server is listening on inet and inet6 + my $cl = IO::Socket::INET6->new( + PeerPort => $port, + PeerAddr => 'localhost', + Timeout => 5, + ) or die "$@"; + + print $cl->getline(); # ok 2 + print $cl "ok 3\n"; + close($cl); + + # this should not work because listener is closed + if ( $cl = IO::Socket::INET6->new( + PeerPort => $port, + PeerAddr => 'localhost', + Timeout => 5, + )) { + print "not ok 4\n"; + exit + } + print "ok 4\n"; + # but same thing with multihoming should work because server + # is still listening on the other family + $cl = IO::Socket::INET6->new( + PeerPort => $port, + PeerAddr => 'localhost', + Timeout => 5, + MultiHomed => 1, + ) or do { + print "not ok 5\n"; + exit + }; + print $cl->getline(); # ok 5 + print $cl "ok 6\n"; exit; + } else { - die; + die $!; # fork failed }
Thanks for the patch! I applied it after reviewing it and correcting these things: 1. Make sure that one does not use tabs (\t) for indentation but rather 4-ws indentation. 2. print $socket "Message" should be print {$socket} "Message" - see PBP. Regards, -- Shlomi Fish
From: paul [...] city-fan.org
On Thu May 20 16:55:13 2010, SHLOMIF wrote: Show quoted text
> Thanks for the patch! I applied it after reviewing it and correcting > these things: > > 1. Make sure that one does not use tabs (\t) for indentation but rather > 4-ws indentation. > > 2. print $socket "Message" should be print {$socket} "Message" - see PBP. > > Regards, > > -- Shlomi Fish
I've built this release successfully for every Fedora Linux release and also Red Hat Enterprise Linux 3, 4, 5, and 6(beta) - except that is for Fedora 10 (i386 and x86_64), where I get this failure: Use of uninitialized value in print at t/io_multihomed6.t line 140. t/io_multihomed6.t .... 1..8 ok 1 ok 2 # inet ok 3 ok 4 ok 8 Failed 3/8 subtests ... Test Summary Report ------------------- t/io_multihomed6.t (Wstat: 0 Tests: 5 Failed: 0) Parse errors: Tests out of sequence. Found (8) but expected (5) Bad plan. You planned 8 tests but ran 5 That's with perl 5.10.0. And it's not just me; see also this cpantesters report: http://www.cpantesters.org/cpan/report/07294053-b19f-3f77-b713-d32bba55d77f That's on perl 5.13.0.
The test t/io_multihomed6.t assumes that localhost resolves so 127.0.0.1 and ::1. Looks like that on these systems this is not the case, e.g. getaddrinfo gives only 127.0.0.1, not ::1. Attached patch fixes the test in that it skips the test, if localhost does not resolv to both 127.0.0.1 and ::1. Thanks for reporting the problem. Regards, Steffen Show quoted text
> I've built this release successfully for every Fedora Linux release and > also Red Hat Enterprise Linux 3, 4, 5, and 6(beta) - except that is for > Fedora 10 (i386 and x86_64), where I get this failure: > > Use of uninitialized value in print at t/io_multihomed6.t line 140. > t/io_multihomed6.t .... > 1..8 > ok 1 > ok 2 # inet > ok 3 > ok 4 > ok 8 > Failed 3/8 subtests
Subject: io-socket-inet6-t-io_multihomed6.patch
Only in IO-Socket-INET6-2.62.new/: blib Only in IO-Socket-INET6-2.62.new/: Makefile Only in IO-Socket-INET6-2.62.new/: pm_to_blib diff -ur IO-Socket-INET6-2.62/t/io_multihomed6.t IO-Socket-INET6-2.62.new/t/io_multihomed6.t --- IO-Socket-INET6-2.62/t/io_multihomed6.t 2010-05-20 22:42:31.000000000 +0200 +++ IO-Socket-INET6-2.62.new/t/io_multihomed6.t 2010-05-21 12:31:30.000000000 +0200 @@ -38,6 +38,24 @@ } } +# check that localhost resolves to 127.0.0.1 and ::1 +# otherwise the test will not work +use Socket; +use Socket6; +my %addr; +my @r = getaddrinfo('localhost',1); +while (@r) { + my ($fam,$addr) = (splice(@r,0,5))[0,3]; + $addr = $fam == AF_INET + ? (unpack_sockaddr_in($addr))[1] + : (unpack_sockaddr_in6($addr))[1]; + $addr{inet_ntop($fam,$addr)}++; +} +if (! $addr{'127.0.0.1'} || ! $addr{'::1'}) { + print "1..0 # SKIP localhost does not resolve to both 127.0.0.1 and ::1\n"; + exit 0; +} + use IO::Socket::INET6; $| = 1;
From: paul [...] city-fan.org
On Fri May 21 06:38:05 2010, SULLR wrote: Show quoted text
> > The test t/io_multihomed6.t assumes that localhost resolves so 127.0.0.1 > and ::1. Looks like that on these systems this is not the case, e.g. > getaddrinfo gives only 127.0.0.1, not ::1. > > Attached patch fixes the test in that it skips the test, if localhost > does not resolv to both 127.0.0.1 and ::1.
Thanks; that's fixed Fedora 10 but breaks with earlier perls: t/io_multihomed6......Possible unintended interpolation of @srv in string at t/io_multihomed6.t line 50. Possible unintended interpolation of @srv in string at t/io_multihomed6.t line 50. Global symbol "$port" requires explicit package name at t/io_multihomed6.t line 50. Global symbol "@srv" requires explicit package name at t/io_multihomed6.t line 50. Global symbol "@srv" requires explicit package name at t/io_multihomed6.t line 50. Global symbol "$port" requires explicit package name at t/io_multihomed6.t line 50. Global symbol "$port" requires explicit package name at t/io_multihomed6.t line 50. Global symbol "$port" requires explicit package name at t/io_multihomed6.t line 50. Global symbol "@srv" requires explicit package name at t/io_multihomed6.t line 50. syntax error at t/io_multihomed6.t line 50, near "->sockport;" Unmatched right curly bracket at t/io_multihomed6.t line 51, within pattern syntax error at t/io_multihomed6.t line 51, near "; } print "ok 1\n"; if (my " t/io_multihomed6.t has too many errors. dubious Test returned status 2 (wstat 512, 0x200)
Hi! On Fri May 21 11:41:09 2010, paul@city-fan.org wrote: Show quoted text
> On Fri May 21 06:38:05 2010, SULLR wrote:
> > > > The test t/io_multihomed6.t assumes that localhost resolves so 127.0.0.1 > > and ::1. Looks like that on these systems this is not the case, e.g. > > getaddrinfo gives only 127.0.0.1, not ::1. > > > > Attached patch fixes the test in that it skips the test, if localhost > > does not resolv to both 127.0.0.1 and ::1.
> > Thanks; that's fixed Fedora 10 but breaks with earlier perls: >
I've tried to apply a modify version of the patch, and the test script in question ( "t/io_multihomed6.t") works fine. Which earlier perls do you refer to? I'm now building perl-5.8.9 and will try it with that. But any information would be welcome. Regards, -- Shlomi Fish
RT-Send-CC: paul [...] city-fan.org
On Sun May 23 14:28:01 2010, SHLOMIF wrote: Show quoted text
> Hi! > > On Fri May 21 11:41:09 2010, paul@city-fan.org wrote:
> > On Fri May 21 06:38:05 2010, SULLR wrote:
> > > > > > The test t/io_multihomed6.t assumes that localhost resolves so
127.0.0.1 Show quoted text
> > > and ::1. Looks like that on these systems this is not the case, e.g. > > > getaddrinfo gives only 127.0.0.1, not ::1. > > > > > > Attached patch fixes the test in that it skips the test, if localhost > > > does not resolv to both 127.0.0.1 and ::1.
> > > > Thanks; that's fixed Fedora 10 but breaks with earlier perls: > >
> > I've tried to apply a modify version of the patch, and the test script > in question ( "t/io_multihomed6.t") works fine. Which earlier perls do > you refer to? I'm now building perl-5.8.9 and will try it with that. But > any information would be welcome. >
Hi! I've now tried it with perl-5.8.9 and t/io_multihomed6.t works fine - how earlier must I go? Regards, -- Shlomi Fish
From: paul [...] city-fan.org
On Mon May 24 05:04:34 2010, SHLOMIF wrote: Show quoted text
> On Sun May 23 14:28:01 2010, SHLOMIF wrote:
> > Hi! > > > > On Fri May 21 11:41:09 2010, paul@city-fan.org wrote:
> > > On Fri May 21 06:38:05 2010, SULLR wrote:
> > > > > > > > The test t/io_multihomed6.t assumes that localhost resolves so
> 127.0.0.1
> > > > and ::1. Looks like that on these systems this is not the case, e.g. > > > > getaddrinfo gives only 127.0.0.1, not ::1. > > > > > > > > Attached patch fixes the test in that it skips the test, if
localhost Show quoted text
> > > > does not resolv to both 127.0.0.1 and ::1.
> > > > > > Thanks; that's fixed Fedora 10 but breaks with earlier perls: > > >
> > > > I've tried to apply a modify version of the patch, and the test script > > in question ( "t/io_multihomed6.t") works fine. Which earlier perls do > > you refer to? I'm now building perl-5.8.9 and will try it with that. But > > any information would be welcome. > >
> > Hi! > > I've now tried it with perl-5.8.9 and t/io_multihomed6.t works fine - > how earlier must I go?
It breaks with the same symptoms on 5.8.8 and earlier. It's a similar issue to that in RT#54656, and is resolved by the addition of parentheses around the first operand of the ternary operator, as in the attached amended patch. However, I'm still getting problems at runtime with 5.8.3 and earlier: t/io_multihomed6......Use of uninitialized value in subroutine entry at t/io_multihomed6.t line 49. Bad arg length for Socket6::unpack_sockaddr_in6, length is 0, should be 28 at t/io_multihomed6.t line 49. dubious Test returned status 255 (wstat 65280, 0xff00) Scalar found where operator expected at (eval 152) line 1, near "'int' $__val" (Missing operator before $__val?) I'm seeing this same error with 5.8.0 and 5.8.3.
Subject: IO-Socket-INET6-2.62-t-io_multihomed6.patch
diff -ur IO-Socket-INET6-2.62/t/io_multihomed6.t IO-Socket-INET6-2.62.new/t/io_multihomed6.t --- IO-Socket-INET6-2.62/t/io_multihomed6.t 2010-05-20 22:42:31.000000000 +0200 +++ IO-Socket-INET6-2.62.new/t/io_multihomed6.t 2010-05-21 12:31:30.000000000 +0200 @@ -38,6 +38,24 @@ } } +# check that localhost resolves to 127.0.0.1 and ::1 +# otherwise the test will not work +use Socket; +use Socket6; +my %addr; +my @r = getaddrinfo('localhost',1); +while (@r) { + my ($fam,$addr) = (splice(@r,0,5))[0,3]; + $addr = ( $fam == AF_INET ) + ? (unpack_sockaddr_in($addr))[1] + : (unpack_sockaddr_in6($addr))[1]; + $addr{inet_ntop($fam,$addr)}++; +} +if (! $addr{'127.0.0.1'} || ! $addr{'::1'}) { + print "1..0 # SKIP localhost does not resolve to both 127.0.0.1 and ::1\n"; + exit 0; +} + use IO::Socket::INET6; $| = 1;
RT-Send-CC: paul [...] city-fan.org
On Mon May 24 08:39:56 2010, paul@city-fan.org wrote: Show quoted text
> On Mon May 24 05:04:34 2010, SHLOMIF wrote:
> > On Sun May 23 14:28:01 2010, SHLOMIF wrote:
> > > Hi! > > > > > > On Fri May 21 11:41:09 2010, paul@city-fan.org wrote:
> > > > On Fri May 21 06:38:05 2010, SULLR wrote:
> > > > > > > > > > The test t/io_multihomed6.t assumes that localhost resolves so
> > 127.0.0.1
> > > > > and ::1. Looks like that on these systems this is not the
case, e.g. Show quoted text
> > > > > getaddrinfo gives only 127.0.0.1, not ::1. > > > > > > > > > > Attached patch fixes the test in that it skips the test, if
> localhost
> > > > > does not resolv to both 127.0.0.1 and ::1.
> > > > > > > > Thanks; that's fixed Fedora 10 but breaks with earlier perls: > > > >
> > > > > > I've tried to apply a modify version of the patch, and the test script > > > in question ( "t/io_multihomed6.t") works fine. Which earlier perls do > > > you refer to? I'm now building perl-5.8.9 and will try it with
that. But Show quoted text
> > > any information would be welcome. > > >
> > > > Hi! > > > > I've now tried it with perl-5.8.9 and t/io_multihomed6.t works fine - > > how earlier must I go?
> > It breaks with the same symptoms on 5.8.8 and earlier. It's a similar > issue to that in RT#54656, and is resolved by the addition of > parentheses around the first operand of the ternary operator, as in the > attached amended patch.
Thanks! I already had a similar bracketing solution in place in the repository due to style issues. Show quoted text
> > However, I'm still getting problems at runtime with 5.8.3 and earlier: > > t/io_multihomed6......Use of uninitialized value in subroutine entry at > t/io_multihomed6.t line 49. > Bad arg length for Socket6::unpack_sockaddr_in6, length is 0, should be > 28 at t/io_multihomed6.t line 49. > dubious > Test returned status 255 (wstat 65280, 0xff00) > Scalar found where operator expected at (eval 152) line 1, near "'int' > $__val" > (Missing operator before $__val?) > > I'm seeing this same error with 5.8.0 and 5.8.3.
I'll try to test and correct that, though perl-5.8.7 and below are really ancient and supporting them is not a high priority. Regards, -- Shlomi Fish
On Mon May 24 10:27:09 2010, SHLOMIF wrote: Show quoted text
> On Mon May 24 08:39:56 2010, paul@city-fan.org wrote:
> > On Mon May 24 05:04:34 2010, SHLOMIF wrote:
> > > On Sun May 23 14:28:01 2010, SHLOMIF wrote:
> > > > Hi! > > > > > > > > On Fri May 21 11:41:09 2010, paul@city-fan.org wrote:
> > > > > On Fri May 21 06:38:05 2010, SULLR wrote:
> > > > > > > > > > > > The test t/io_multihomed6.t assumes that localhost resolves so
> > > 127.0.0.1
> > > > > > and ::1. Looks like that on these systems this is not the
> case, e.g.
> > > > > > getaddrinfo gives only 127.0.0.1, not ::1. > > > > > > > > > > > > Attached patch fixes the test in that it skips the test, if
> > localhost
> > > > > > does not resolv to both 127.0.0.1 and ::1.
> > > > > > > > > > Thanks; that's fixed Fedora 10 but breaks with earlier perls: > > > > >
> > > > > > > > I've tried to apply a modify version of the patch, and the test
script Show quoted text
> > > > in question ( "t/io_multihomed6.t") works fine. Which earlier
perls do Show quoted text
> > > > you refer to? I'm now building perl-5.8.9 and will try it with
> that. But
> > > > any information would be welcome. > > > >
> > > > > > Hi! > > > > > > I've now tried it with perl-5.8.9 and t/io_multihomed6.t works fine - > > > how earlier must I go?
> > > > It breaks with the same symptoms on 5.8.8 and earlier. It's a similar > > issue to that in RT#54656, and is resolved by the addition of > > parentheses around the first operand of the ternary operator, as in the > > attached amended patch.
> > Thanks! > > I already had a similar bracketing solution in place in the repository > due to style issues. >
> > > > However, I'm still getting problems at runtime with 5.8.3 and earlier: > > > > t/io_multihomed6......Use of uninitialized value in subroutine entry at > > t/io_multihomed6.t line 49. > > Bad arg length for Socket6::unpack_sockaddr_in6, length is 0, should be > > 28 at t/io_multihomed6.t line 49. > > dubious > > Test returned status 255 (wstat 65280, 0xff00) > > Scalar found where operator expected at (eval 152) line 1, near "'int' > > $__val" > > (Missing operator before $__val?) > > > > I'm seeing this same error with 5.8.0 and 5.8.3.
> > I'll try to test and correct that, though perl-5.8.7 and below are > really ancient and supporting them is not a high priority. >
After some time of getting perl-5.8.0 to build on a recent Mandriva Linux Cooker, the test appears to work fine: [quote] shlomi[inet6]:$module$ ~/apps/perl/5.8.0-debug/bin/perl -Ilib t/io_multihomed6.t 1..8 ok 1 ok 2 # inet6 ok 3 ok 4 ok 5 # inet ok 6 ok 7 ok 8 [/quote] Where did you run into that problem with perl-5.8.0? Where there any vendor patches? Can you provide a patch against the svn repository: http://svn.berlios.de/svnroot/repos/web-cpan/IO-Socket-INET6/trunk/ Regards, -- Shlomi Fish
From: paul [...] city-fan.org
On Mon May 24 11:23:19 2010, SHLOMIF wrote: Show quoted text
> After some time of getting perl-5.8.0 to build on a recent Mandriva > Linux Cooker, the test appears to work fine: > > [quote] > shlomi[inet6]:$module$ ~/apps/perl/5.8.0-debug/bin/perl -Ilib > t/io_multihomed6.t > 1..8 > ok 1 > ok 2 # inet6 > ok 3 > ok 4 > ok 5 # inet > ok 6 > ok 7 > ok 8 > [/quote] > > Where did you run into that problem with perl-5.8.0? Where there any > vendor patches? Can you provide a patch against the svn repository: > > http://svn.berlios.de/svnroot/repos/web-cpan/IO-Socket-INET6/trunk/ > > Regards, > > -- Shlomi Fish
I'm doing the builds in chroots, installing old distributions into the chroot and building RPM packages that way. The problematic builds are for Red Hat Linux 9, Fedora Core 1 and Red Hat Enterprise Linux 3. The former two of these are "dead" and the latter will join them in around 6 months but I'll see what I can do to debug the issue. It's possible that it's a side effect of my build system as well as possibly being a peculiarity of the perl builds (which were more heavily patched back then than they are now). Paul.
From: batailic [...] gmail.com
There is a simple solution to this, just add the following to /etc/hosts: # For loopbacking. 127.0.0.1 localhost ::1 localhost I your host support inet6 it should work, otherwise what is the point of installing IO::Socket::INET6 ;)
On Mon May 24 15:56:41 2010, paul@city-fan.org wrote: Show quoted text
> On Mon May 24 11:23:19 2010, SHLOMIF wrote:
> > After some time of getting perl-5.8.0 to build on a recent Mandriva > > Linux Cooker, the test appears to work fine: > > > > [quote] > > shlomi[inet6]:$module$ ~/apps/perl/5.8.0-debug/bin/perl -Ilib > > t/io_multihomed6.t > > 1..8 > > ok 1 > > ok 2 # inet6 > > ok 3 > > ok 4 > > ok 5 # inet > > ok 6 > > ok 7 > > ok 8 > > [/quote] > > > > Where did you run into that problem with perl-5.8.0? Where there any > > vendor patches? Can you provide a patch against the svn repository: > > > > http://svn.berlios.de/svnroot/repos/web-cpan/IO-Socket-INET6/trunk/ > > > > Regards, > > > > -- Shlomi Fish
> > I'm doing the builds in chroots, installing old distributions into the > chroot and building RPM packages that way. The problematic builds are > for Red Hat Linux 9, Fedora Core 1 and Red Hat Enterprise Linux 3. The > former two of these are "dead" and the latter will join them in around 6 > months but I'll see what I can do to debug the issue. It's possible that > it's a side effect of my build system as well as possibly being a > peculiarity of the perl builds (which were more heavily patched back > then than they are now). >
Well, I'm closing this bug because it appears to be fixed. I'll upload a new version to CPAN soon. Please open a new bug if you have a more concrete problem (hopefully with a fix). Regards, -- Shlomi Fish Show quoted text
> Paul.