From 2f8aaaf5e425f2285e028e35a52d0766067ab3fd Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Tue, 22 Sep 2009 16:04:13 +0000 Subject: 27286: Made movefd() return the targetfd on success. Added a little more error checking in the callers of movefd(). --- Src/Modules/socket.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'Src/Modules/socket.c') diff --git a/Src/Modules/socket.c b/Src/Modules/socket.c index 3f47636bc..ad7eb5884 100644 --- a/Src/Modules/socket.c +++ b/Src/Modules/socket.c @@ -120,10 +120,7 @@ bin_zsocket(char *nam, char **args, Options ops, UNUSED(int func)) } if (targetfd) { - if (redup(sfd, targetfd) == -1) - sfd = -1; - else - sfd = targetfd; + sfd = redup(sfd, targetfd); } else { /* move the fd since no one will want to read from it */ @@ -205,8 +202,11 @@ bin_zsocket(char *nam, char **args, Options ops, UNUSED(int func)) } if (targetfd) { - redup(rfd, targetfd); - sfd = targetfd; + sfd = redup(rfd, targetfd); + if (sfd < 0) { + zerrnam(nam, "could not duplicate socket fd to %d: %e", targetfd, errno); + return 1; + } } else { sfd = rfd; @@ -242,8 +242,11 @@ bin_zsocket(char *nam, char **args, Options ops, UNUSED(int func)) else { if (targetfd) { - redup(sfd, targetfd); - sfd = targetfd; + sfd = redup(sfd, targetfd); + if (sfd < 0) { + zerrnam(nam, "could not duplicate socket fd to %d: %e", targetfd, errno); + return 1; + } } setiparam("REPLY", sfd); -- cgit 1.4.1