summaryrefslogtreecommitdiff
path: root/network_io/os2
diff options
context:
space:
mode:
authorbjh <bjh@13f79535-47bb-0310-9956-ffa450edef68>2002-05-08 08:33:10 +0000
committerbjh <bjh@13f79535-47bb-0310-9956-ffa450edef68>2002-05-08 08:33:10 +0000
commita9c3e361c9eab4cd6f43b8da67b7c23de63a44f5 (patch)
treefaf96b4a0c304844529c35f0b43cecfdefe00e76 /network_io/os2
parent29e6dd4cea30f67cc19227cab5afc214ebe14391 (diff)
downloadlibapr-a9c3e361c9eab4cd6f43b8da67b7c23de63a44f5.tar.gz
OS/2: Fix apr_recv() when timeout == 0.
git-svn-id: http://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.c4
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;