comparison src/os/unix/ngx_recv.c @ 354:583decdb82a4 NGINX_0_6_21

nginx 0.6.21 *) Change: if variable values used in a "proxy_pass" directive contain IP-addresses only, then a "resolver" directive is not mandatory. resolver *) Bugfix: a segmentation fault might occur in worker process if a "proxy_pass" directive with URI-part was used; bug appeared in 0.6.19. *) Bugfix: if resolver was used on platform that does not support kqueue, then nginx issued an alert "name is out of response". Thanks to Andrei Nigmatulin. *) Bugfix: if the $server_protocol was used in FastCGI parameters and a request line length was near to the "client_header_buffer_size" directive value, then nginx issued an alert "fastcgi: the request record is too big". *) Bugfix: if a plain text HTTP/0.9 version request was made to HTTPS server, then nginx returned usual response.
author Igor Sysoev <http://sysoev.ru>
date Mon, 03 Dec 2007 00:00:00 +0300
parents fae16d0c5bf4
children a39aab45a53f
comparison
equal deleted inserted replaced
353:4a470d9e2ea5 354:583decdb82a4
9 #include <ngx_event.h> 9 #include <ngx_event.h>
10 10
11 11
12 #if (NGX_HAVE_KQUEUE) 12 #if (NGX_HAVE_KQUEUE)
13 13
14 ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size) 14 ssize_t
15 ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size)
15 { 16 {
16 ssize_t n; 17 ssize_t n;
17 ngx_err_t err; 18 ngx_err_t err;
18 ngx_event_t *rev; 19 ngx_event_t *rev;
19 20
75 /* 76 /*
76 * on FreeBSD recv() may return 0 on closed socket 77 * on FreeBSD recv() may return 0 on closed socket
77 * even if kqueue reported about available data 78 * even if kqueue reported about available data
78 */ 79 */
79 80
80 #if 0
81 ngx_log_error(NGX_LOG_ALERT, c->log, 0,
82 "recv() returned 0 while kevent() reported "
83 "%d available bytes", rev->available);
84 #endif
85
86 rev->eof = 1; 81 rev->eof = 1;
87 rev->available = 0; 82 rev->available = 0;
88 } 83 }
89 84
90 return n; 85 return n;
124 return n; 119 return n;
125 } 120 }
126 121
127 #else /* ! NGX_HAVE_KQUEUE */ 122 #else /* ! NGX_HAVE_KQUEUE */
128 123
129 ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size) 124 ssize_t
125 ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size)
130 { 126 {
131 ssize_t n; 127 ssize_t n;
132 ngx_err_t err; 128 ngx_err_t err;
133 ngx_event_t *rev; 129 ngx_event_t *rev;
134 130