diff options
author | Igor Sysoev <igor@sysoev.ru> | 2004-04-28 06:14:50 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2004-04-28 06:14:50 +0000 |
commit | 4cec79fb6a3138aeeee400b9c32f23a22cf2dac8 (patch) | |
tree | 71ef80d2e71fdc81e756862eed80ae2c42288f53 /src/os/unix/ngx_recv.c | |
parent | a30a028f14b18d7c12892d2fe79f457b4a67dd29 (diff) | |
download | nginx-4cec79fb6a3138aeeee400b9c32f23a22cf2dac8.tar.gz nginx-4cec79fb6a3138aeeee400b9c32f23a22cf2dac8.zip |
nginx-0.0.3-2004-04-28-10:14:50 import
Diffstat (limited to 'src/os/unix/ngx_recv.c')
-rw-r--r-- | src/os/unix/ngx_recv.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/os/unix/ngx_recv.c b/src/os/unix/ngx_recv.c index 63453503c..04b594f6e 100644 --- a/src/os/unix/ngx_recv.c +++ b/src/os/unix/ngx_recv.c @@ -126,13 +126,17 @@ ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size) ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0, "recv: fd:%d %d of %d", c->fd, n, size); - if (n >= 0) { - if ((size_t) n < size) { - rev->ready = 0; - } + if (n == 0) { + rev->ready = 0; + rev->eof = 1; + return n; - if (n == 0) { - rev->eof = 1; + } else if (n > 0) { + + if ((size_t) n < size + && !(ngx_event_flags & NGX_HAVE_GREEDY_EVENT)) + { + rev->ready = 0; } return n; |