nginx-0.0.3-2004-04-28-10:14:50 import
diff --git a/src/os/unix/ngx_recv.c b/src/os/unix/ngx_recv.c
index 6345350..04b594f 100644
--- a/src/os/unix/ngx_recv.c
+++ b/src/os/unix/ngx_recv.c
@@ -126,13 +126,17 @@
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;