manoj 99/10/25 22:29:40
Modified: src/os/unix iol_socket.c Log: Fix bugs in the big fat macro. Revision Changes Path 1.9 +4 -3 apache-2.0/src/os/unix/iol_socket.c Index: iol_socket.c =================================================================== RCS file: /home/cvs/apache-2.0/src/os/unix/iol_socket.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -u -r1.8 -r1.9 --- iol_socket.c 1999/10/25 21:01:08 1.8 +++ iol_socket.c 1999/10/26 05:29:40 1.9 @@ -148,6 +148,7 @@ rv = select(iol->fd + 1, selread, selwrite, NULL, iol->timeout < 0 ? NULL : &tv); \ } while (rv == -1 && errno == EINTR); \ if (!FD_ISSET(iol->fd, &fdset)) { \ + *nbytes = 0; \ return APR_ETIMEDOUT; \ } \ do { \ @@ -190,12 +191,12 @@ do { \ rv = syscall(iol->fd, arg1, arg2); \ } while (rv == -1 && errno == EINTR); \ - if ((errno == EWOULDBLOCK || errno == EAGAIN) && iol->timeout != 0) { \ - return unix_##name##_timeout(viol, arg1, arg2, nbytes); \ - } \ if (rv >= 0) { \ *nbytes = rv; \ return APR_SUCCESS; \ + } \ + if ((errno == EWOULDBLOCK || errno == EAGAIN) && iol->timeout != 0) { \ + return unix_##name##_timeout(viol, arg1, arg2, nbytes); \ } \ return errno; \ }