comparison src/os/unix/ngx_recv.c @ 455:295d97d70c69 release-0.1.2

nginx-0.1.2-RELEASE import *) Feature: the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS options in configure. *) Feature: the server_name directive supports *.domain.tld. *) Bugfix: the portability improvements. *) Bugfix: if configuration file was set in command line, the reconfiguration was impossible; the bug had appeared in 0.1.1. *) Bugfix: proxy module may get caught in an endless loop when sendfile is not used. *) Bugfix: with sendfile the response was not recoded according to the charset module directives; the bug had appeared in 0.1.1. *) Bugfix: very seldom bug in the kqueue processing. *) Bugfix: the gzip module compressed the proxied responses that was already compressed.
author Igor Sysoev <igor@sysoev.ru>
date Thu, 21 Oct 2004 15:34:38 +0000
parents 42d11f017717
children 2ff194b74f1e
comparison
equal deleted inserted replaced
454:2ff9cff0f469 455:295d97d70c69
17 ngx_err_t err; 17 ngx_err_t err;
18 ngx_event_t *rev; 18 ngx_event_t *rev;
19 19
20 rev = c->read; 20 rev = c->read;
21 21
22 if (ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) { 22 if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
23 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0, 23 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0,
24 "recv: eof:%d, avail:%d, err:%d", 24 "recv: eof:%d, avail:%d, err:%d",
25 rev->pending_eof, rev->available, rev->kq_errno); 25 rev->pending_eof, rev->available, rev->kq_errno);
26 26
27 if (rev->available == 0) { 27 if (rev->available == 0) {
58 58
59 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0, 59 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0,
60 "recv: fd:%d %d of %d", c->fd, n, size); 60 "recv: fd:%d %d of %d", c->fd, n, size);
61 61
62 if (n >= 0) { 62 if (n >= 0) {
63 if (ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) { 63 if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
64 rev->available -= n; 64 rev->available -= n;
65 65
66 /* 66 /*
67 * rev->available can be negative here because some additional 67 * rev->available can be negative here because some additional
68 * bytes can be received between kevent() and recv() 68 * bytes can be received between kevent() and recv()
137 return n; 137 return n;
138 138
139 } else if (n > 0) { 139 } else if (n > 0) {
140 140
141 if ((size_t) n < size 141 if ((size_t) n < size
142 && !(ngx_event_flags & NGX_HAVE_GREEDY_EVENT)) 142 && !(ngx_event_flags & NGX_USE_GREEDY_EVENT))
143 { 143 {
144 rev->ready = 0; 144 rev->ready = 0;
145 } 145 }
146 146
147 return n; 147 return n;