summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-12-29 15:05:08 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-12-29 15:05:08 +0000
commit2948e0bde4eb0485569b1f3510975019a89a444f (patch)
tree3017079ea210026ca013eb83067b3a445667e9e7
parenta98face1fc078a6f6814326da72119f5bfb89dce (diff)
downloadperl-2948e0bde4eb0485569b1f3510975019a89a444f.tar.gz
socketpair tweaks from Nicholas Clark.
p4raw-id: //depot/perl@13921
-rw-r--r--ext/Socket/socketpair.t4
-rw-r--r--util.c8
2 files changed, 7 insertions, 5 deletions
diff --git a/ext/Socket/socketpair.t b/ext/Socket/socketpair.t
index c31e4df877..653e1b78c9 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 6e506289a6..9607d46fc4 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);