From 2948e0bde4eb0485569b1f3510975019a89a444f Mon Sep 17 00:00:00 2001 From: Jarkko Hietaniemi Date: Sat, 29 Dec 2001 15:05:08 +0000 Subject: [PATCH] socketpair tweaks from Nicholas Clark. p4raw-id: //depot/perl@13921 --- ext/Socket/socketpair.t | 4 ++-- util.c | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ext/Socket/socketpair.t b/ext/Socket/socketpair.t index c31e4df..653e1b7 100644 --- a/ext/Socket/socketpair.t +++ b/ext/Socket/socketpair.t @@ -15,7 +15,7 @@ use Socket; use Test::More; use strict; use warnings; -use Errno 'EPIPE'; +use Errno qw(EPIPE ESHUTDOWN); my $skip_reason; @@ -89,7 +89,7 @@ $SIG{PIPE} = 'IGNORE'; } SKIP: { # This may need skipping on some OSes - ok ($! == EPIPE, '$! should be EPIPE') + ok (($! == EPIPE or $! == ESHUTDOWN), '$! should be EPIPE or ESHUTDOWN') or printf "\$\!=%d(%s)\n", $!, $!; } diff --git a/util.c b/util.c index 6e50628..9607d46 100644 --- a/util.c +++ b/util.c @@ -4127,7 +4127,7 @@ S_socketpair_udp (int fd[2]) { int Perl_my_socketpair (int family, int type, int protocol, int fd[2]) { /* Stevens says that family must be AF_LOCAL, protocol 0. - I'm going to enforce that, then ignore it, and use TCP. */ + I'm going to enforce that, then ignore it, and use TCP (or UDP). */ int listener = -1; int connector = -1; int acceptor = -1; @@ -4143,8 +4143,10 @@ Perl_my_socketpair (int family, int type, int protocol, int fd[2]) { errno = EAFNOSUPPORT; return -1; } - if (!fd) - return EINVAL; + if (!fd) { + errno = EINVAL; + return -1; + } if (type == SOCK_DGRAM) return S_socketpair_udp (fd); -- 2.7.4