Codebase list libio-socket-ip-perl / 2f50ceb
Imported Upstream version 0.12 gregor herrmann 11 years ago
6 changed file(s) with 29 addition(s) and 15 deletion(s). Raw diff Collapse all Expand all
00 Revision history for IO-Socket-IP
1
2 0.12 CHANGES:
3 * Ensure that all instances have a defined fileno after construction,
4 even in non-blocking mode (RT77726)
15
26 0.11 CHANGES:
37 * Ignore unrecognised constructor arguments rather than complaining
2828 "provides" : {
2929 "IO::Socket::IP" : {
3030 "file" : "lib/IO/Socket/IP.pm",
31 "version" : "0.11"
31 "version" : "0.12"
3232 }
3333 },
3434 "release_status" : "stable",
3737 "http://dev.perl.org/licenses/"
3838 ]
3939 },
40 "version" : "0.11"
40 "version" : "0.12"
4141 }
1313 provides:
1414 IO::Socket::IP:
1515 file: lib/IO/Socket/IP.pm
16 version: 0.11
16 version: 0.12
1717 requires:
1818 IO::Socket: 0
1919 Socket: 1.97
2020 resources:
2121 license: http://dev.perl.org/licenses/
22 version: 0.11
22 version: 0.12
88 use warnings;
99 use base qw( IO::Socket );
1010
11 our $VERSION = '0.11';
11 our $VERSION = '0.12';
1212
1313 use Carp;
1414
519519
520520 ${*$self}{io_socket_ip_errors} = [ undef, undef, undef ];
521521
522 if( $blocking ) {
523 $self->setup or return undef;
524 }
522 # ->setup is allowed to return false in nonblocking mode
523 $self->setup or !$blocking or return undef;
524
525525 return $self;
526526 }
527527
593593
594594 return CORE::connect( $self, $_[0] ) if @_;
595595
596 $! = 0, return 1 if $self->fileno and defined $self->peername;
597
598 if( $self->fileno ) {
599 # A connect has just failed, get its error value
600 ${*$self}{io_socket_ip_errors}[0] = $self->getsockopt( SOL_SOCKET, SO_ERROR );
596 if( defined $self->fileno ) {
597 # A connect call may have just finished. It succeeded if we have a peername
598 $! = 0, return 1 if defined $self->peername;
599
600 # If not, it may have just failed. Get its error value
601 my $errno = ${*$self}{io_socket_ip_errors}[0] = $self->getsockopt( SOL_SOCKET, SO_ERROR );
602
603 # If errno is 0 then it hasn't failed yet, so keep polling
604 $! = EINPROGRESS, return 0 if !$errno;
601605 }
602606
603607 return $self->setup;
00 #!/usr/bin/perl -w
11
22 use strict;
3 use Test::More tests => 8;
3 use Test::More tests => 9;
44
55 use IO::Socket::IP;
66
2222
2323 ok( defined $socket, 'IO::Socket::IP->new( Blocking => 0 ) constructs a socket' ) or
2424 diag( " error was $@" );
25
26 ok( defined $socket->fileno, '$socket has a fileno immediately after construction' );
2527
2628 while( !$socket->connect and ( $! == EINPROGRESS || $! == EWOULDBLOCK ) ) {
2729 my $wvec = '';
00 #!/usr/bin/perl -w
11
22 use strict;
3 use Test::More tests => 10;
3 use Test::More tests => 12;
44
55 use IO::Socket::IP;
66
2828
2929 ok( defined $socket, "defined \$socket for $test_host:$test_good_port" ) or
3030 diag( " error was $@" );
31
32 ok( defined $socket->fileno, '$socket has fileno' );
3133
3234 # This and test is required to placate a warning IO::Socket would otherwise
3335 # throw; https://rt.cpan.org/Ticket/Display.html?id=63052
7173 ok( defined $socket, "defined \$socket for $test_host:$test_bad_port" ) or
7274 diag( " error was $@" );
7375
76 ok( defined $socket->fileno, '$socket has fileno' );
77
7478 ok( not( $socket->opened and $socket->connected ), '$socket not yet connected' );
7579
7680 my $selectcount = 0;