diff src/os/unix/ngx_readv_chain.c @ 328:fb4dfb2ac0fc

nginx-0.0.3-2004-04-28-10:14:50 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 28 Apr 2004 06:14:50 +0000
parents 4b1a3a4acc60
children 6bdf858bff8c
line wrap: on
line diff
--- a/src/os/unix/ngx_readv_chain.c
+++ b/src/os/unix/ngx_readv_chain.c
@@ -173,15 +173,18 @@ ssize_t ngx_readv_chain(ngx_connection_t
     do {
         n = readv(c->fd, (struct iovec *) io.elts, io.nelts);
 
-        if (n >= 0) {
-            if (n < size) {
+        if (n == 0) {
+            rev->ready = 0;
+            rev->eof = 1;
+
+            return n;
+
+        } else if (n > 0) {
+
+            if (n < size && !(ngx_event_flags & NGX_HAVE_GREEDY_EVENT)) {
                 rev->ready = 0;
             }
 
-            if (n == 0) {
-                rev->eof = 1;
-            }
-
             return n;
         }