comparison src/os/unix/ngx_recv.c @ 4:4b2dafa26fe2 NGINX_0_1_2

nginx 0.1.2 *) 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; bug 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; bug 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 <http://sysoev.ru>
date Thu, 21 Oct 2004 00:00:00 +0400
parents f0b350454894
children 6f8b0dc0f8dd
comparison
equal deleted inserted replaced
3:8beaf7b3241f 4:4b2dafa26fe2
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;