4 require($ENV{PERL_CORE} ? '../../t/test.pl' : './t/test.pl');
7 my $can_fork = $Config{d_fork} ||
8 (($^O eq 'MSWin32' || $^O eq 'NetWare') and
9 $Config{useithreads} and
10 $Config{ccflags} =~ /-DPERL_IMPLICIT_SYS/
13 if ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bSocket\b/) {
14 $reason = 'Socket extension unavailable';
16 elsif ($ENV{PERL_CORE} and $Config{'extensions'} !~ /\bIO\b/) {
17 $reason = 'IO extension unavailable';
22 skip_all($reason) if $reason;
31 require IO::Socket::INET;
32 @ISA=qw(IO::Socket::INET);
34 use Socket qw(inet_aton inet_ntoa unpack_sockaddr_in);
38 my($sock,$addr_str, $multi) = @_;
39 #print "_get_addr($sock, $addr_str, $multi)\n";
41 print "not " unless $multi;
45 # private IP-addresses which I hope does not work anywhere :-)
46 inet_aton("10.250.230.10"),
47 inet_aton("10.250.230.12"),
48 inet_aton("127.0.0.1") # loopback
56 my($port, $addr) = unpack_sockaddr_in($_[0]);
57 $addr = inet_ntoa($addr);
58 #print "connect($self, $port, $addr)\n";
59 if($addr eq "10.250.230.10") {
63 if($addr eq "10.250.230.12") {
68 $self->SUPER::connect(@_);
77 $listen = IO::Socket::INET->new(LocalAddr => 'localhost',
85 $port = $listen->sockport;
89 $sock = $listen->accept() or die "$!";
92 print $sock->getline();
101 } elsif(defined $pid) {
103 $sock = Multi->new(PeerPort => $port,
105 PeerAddr => 'localhost',
110 print $sock "ok 6\n";
111 sleep(1); # race condition
112 print $sock->getline();