4 unless(grep /blib/, @INC) {
14 if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bSocket\b/) {
15 $reason = 'Socket extension unavailable';
17 elsif ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bIO\b/) {
18 $reason = 'IO extension unavailable';
23 ! defined($pid) and die "Fork failed!";
25 defined waitpid($pid, 0);
28 $reason = "no fork: $@";
31 print "1..0 # Skip: $reason\n";
41 $SIG{ALRM} = sub { die; };
46 require IO::Socket::INET;
47 @ISA=qw(IO::Socket::INET);
49 use Socket qw(inet_aton inet_ntoa unpack_sockaddr_in);
53 my($sock,$addr_str, $multi) = @_;
54 #print "_get_addr($sock, $addr_str, $multi)\n";
56 print "not " unless $multi;
60 # private IP-addresses which I hope does not work anywhere :-)
61 inet_aton("10.250.230.10"),
62 inet_aton("10.250.230.12"),
63 inet_aton("127.0.0.1") # loopback
71 my($port, $addr) = unpack_sockaddr_in($_[0]);
72 $addr = inet_ntoa($addr);
73 #print "connect($self, $port, $addr)\n";
74 if($addr eq "10.250.230.10") {
78 if($addr eq "10.250.230.12") {
83 $self->SUPER::connect(@_);
92 $listen = IO::Socket::INET->new(Listen => 2,
99 $port = $listen->sockport;
103 $sock = $listen->accept() or die "$!";
106 print $sock->getline();
107 print $sock "ok 7\n";
115 } elsif(defined $pid) {
117 $sock = Multi->new(PeerPort => $port,
119 PeerAddr => 'localhost',
124 print $sock "ok 6\n";
125 sleep(1); # race condition
126 print $sock->getline();