diff options
author | Brian Havard <bjh@apache.org> | 2002-05-08 08:33:10 +0000 |
---|---|---|
committer | Brian Havard <bjh@apache.org> | 2002-05-08 08:33:10 +0000 |
commit | be5af4dfd50d1ba2b33c3e185352e770fe06a29e (patch) | |
tree | faf96b4a0c304844529c35f0b43cecfdefe00e76 /network_io/os2 | |
parent | 16178ac846446bd4b543dfbd02785e2b4d23eeb4 (diff) | |
download | apr-be5af4dfd50d1ba2b33c3e185352e770fe06a29e.tar.gz |
OS/2: Fix apr_recv() when timeout == 0.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@63371 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'network_io/os2')
-rw-r--r-- | network_io/os2/sendrecv.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/network_io/os2/sendrecv.c b/network_io/os2/sendrecv.c index 527ed8593..a059fb3b0 100644 --- a/network_io/os2/sendrecv.c +++ b/network_io/os2/sendrecv.c @@ -104,7 +104,7 @@ APR_DECLARE(apr_status_t) apr_recv(apr_socket_t *sock, char *buf, apr_size_t *le int fds, err = 0; do { - if (!sock->nonblock || err == SOCEWOULDBLOCK) { + if (!sock->nonblock || (err == SOCEWOULDBLOCK && sock->timeout != 0)) { fds = sock->socketdes; rv = select(&fds, 1, 0, 0, sock->timeout >= 0 ? sock->timeout/1000 : -1); @@ -124,7 +124,7 @@ APR_DECLARE(apr_status_t) apr_recv(apr_socket_t *sock, char *buf, apr_size_t *le rv = recv(sock->socketdes, buf, (*len), 0); err = rv < 0 ? sock_errno() : 0; - } while (err == SOCEINTR || err == SOCEWOULDBLOCK); + } while (err == SOCEINTR || (err == SOCEWOULDBLOCK && sock->timeout != 0)); if (err) { *len = 0; |