diff options
-rw-r--r-- | source3/lib/wb_reqtrans.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/source3/lib/wb_reqtrans.c b/source3/lib/wb_reqtrans.c index 16d71fe03e..038e5bda17 100644 --- a/source3/lib/wb_reqtrans.c +++ b/source3/lib/wb_reqtrans.c @@ -342,6 +342,7 @@ static bool closed_fd(int fd) { struct timeval tv; fd_set r_fds; + int selret; if (fd == -1) { return true; @@ -351,12 +352,14 @@ static bool closed_fd(int fd) FD_SET(fd, &r_fds); ZERO_STRUCT(tv); - if ((select(fd+1, &r_fds, NULL, NULL, &tv) == -1) - || FD_ISSET(fd, &r_fds)) { + selret = select(fd+1, &r_fds, NULL, NULL, &tv); + if (selret == -1) { return true; } - - return false; + if (selret == 0) { + return false; + } + return (FD_ISSET(fd, &r_fds)); } struct wb_simple_trans_state { |