diff src/os/unix/ngx_recv.c @ 148:5afee0074707

nginx-0.0.1-2003-10-17-00:19:16 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 16 Oct 2003 20:19:16 +0000
parents ef8c87afcfc5
children fb61ba77beba
line wrap: on
line diff
--- a/src/os/unix/ngx_recv.c
+++ b/src/os/unix/ngx_recv.c
@@ -22,8 +22,8 @@ ssize_t ngx_unix_recv(ngx_connection_t *
 
         if (rev->available == 0) {
             if (rev->eof) {
+                rev->ready = 0;
                 if (rev->error) {
-                    rev->ready = 0;
                     ngx_set_socket_errno(rev->error);
                     return ngx_unix_recv_error(rev, rev->error);
                 }
@@ -44,7 +44,10 @@ ssize_t ngx_unix_recv(ngx_connection_t *
             if (ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) {
                 rev->available -= n;
                 if (rev->available <= 0) {
-                    rev->ready = 0;
+                    if (!rev->eof) {
+                        rev->ready = 0;
+                    }
+
                     if (rev->available < 0) {
                         rev->available = 0;
                     }