comparison src/http/ngx_http.c @ 638:692f4d4d7f10 NGINX_1_0_9

nginx 1.0.9 *) Change: now the 0x7F-0x1F characters are escaped as \xXX in an access_log. *) Change: now SIGWINCH signal works only in daemon mode. *) Feature: "proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support the following additional values: X-Accel-Limit-Rate, X-Accel-Buffering, X-Accel-Charset. *) Feature: decrease of memory consumption if SSL is used. *) Feature: accept filters are now supported on NetBSD. *) Feature: the "uwsgi_buffering" and "scgi_buffering" directives. Thanks to Peter Smit. *) Bugfix: a segmentation fault occurred on start or while reconfiguration if the "ssl" directive was used at http level and there was no "ssl_certificate" defined. *) Bugfix: some UTF-8 characters were processed incorrectly. Thanks to Alexey Kuts. *) Bugfix: the ngx_http_rewrite_module directives specified at "server" level were executed twice if no matching locations were defined. *) Bugfix: a socket leak might occurred if "aio sendfile" was used. *) Bugfix: connections with fast clients might be closed after send_timeout if file AIO was used. *) Bugfix: in the ngx_http_autoindex_module. *) Bugfix: the module ngx_http_mp4_module did not support seeking on 32-bit platforms. *) Bugfix: non-cacheable responses might be cached if "proxy_cache_bypass" directive was used. Thanks to John Ferlito. *) Bugfix: cached responses with an empty body were returned incorrectly; the bug had appeared in 0.8.31. *) Bugfix: 201 responses of the ngx_http_dav_module were incorrect; the bug had appeared in 0.8.32. *) Bugfix: in the "return" directive. *) Bugfix: the "ssl_verify_client", "ssl_verify_depth", and "ssl_prefer_server_ciphers" directives might work incorrectly if SNI was used.
author Igor Sysoev <http://sysoev.ru>
date Tue, 01 Nov 2011 00:00:00 +0400
parents 7ea1bba9a4f6
children ad25218fd14b
comparison
equal deleted inserted replaced
637:ea7441793bba 638:692f4d4d7f10
1224 #if (NGX_HTTP_SSL) 1224 #if (NGX_HTTP_SSL)
1225 ngx_uint_t ssl; 1225 ngx_uint_t ssl;
1226 #endif 1226 #endif
1227 1227
1228 /* 1228 /*
1229 * we can not compare whole sockaddr struct's as kernel 1229 * we cannot compare whole sockaddr struct's as kernel
1230 * may fill some fields in inherited sockaddr struct's 1230 * may fill some fields in inherited sockaddr struct's
1231 */ 1231 */
1232 1232
1233 sa = &lsopt->u.sockaddr; 1233 sa = &lsopt->u.sockaddr;
1234 1234
1279 1279
1280 if (lsopt->set) { 1280 if (lsopt->set) {
1281 1281
1282 if (addr[i].opt.set) { 1282 if (addr[i].opt.set) {
1283 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, 1283 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
1284 "a duplicate listen options for %s", addr[i].opt.addr); 1284 "duplicate listen options for %s", addr[i].opt.addr);
1285 return NGX_ERROR; 1285 return NGX_ERROR;
1286 } 1286 }
1287 1287
1288 addr[i].opt = *lsopt; 1288 addr[i].opt = *lsopt;
1289 } 1289 }
1745 ls->log.data = &ls->addr_text; 1745 ls->log.data = &ls->addr_text;
1746 ls->log.handler = ngx_accept_log_error; 1746 ls->log.handler = ngx_accept_log_error;
1747 1747
1748 #if (NGX_WIN32) 1748 #if (NGX_WIN32)
1749 { 1749 {
1750 ngx_iocp_conf_t *iocpcf; 1750 ngx_iocp_conf_t *iocpcf = NULL;
1751 1751
1752 iocpcf = ngx_event_get_conf(cf->cycle->conf_ctx, ngx_iocp_module); 1752 if (ngx_get_conf(cf->cycle->conf_ctx, ngx_events_module)) {
1753 if (iocpcf->acceptex_read) { 1753 iocpcf = ngx_event_get_conf(cf->cycle->conf_ctx, ngx_iocp_module);
1754 }
1755 if (iocpcf && iocpcf->acceptex_read) {
1754 ls->post_accept_buffer_size = cscf->client_header_buffer_size; 1756 ls->post_accept_buffer_size = cscf->client_header_buffer_size;
1755 } 1757 }
1756 } 1758 }
1757 #endif 1759 #endif
1758 1760