comparison src/http/ngx_http_request.c @ 358:9121a0a91f47 NGINX_0_6_23

nginx 0.6.23 *) Change: the "off" parameter in the "ssl_session_cache" directive; now this is default parameter. *) Change: the "open_file_cache_retest" directive was renamed to the "open_file_cache_valid". *) Feature: the "open_file_cache_min_uses" directive. *) Feature: the ngx_http_gzip_static_module. *) Feature: the "gzip_disable" directive. *) Feature: the "memcached_pass" directive may be used inside the "if" block. *) Bugfix: a segmentation fault occurred in worker process, if the "memcached_pass" and "if" directives were used in the same location. *) Bugfix: if a "satisfy_any on" directive was used and not all access and auth modules directives were set, then other given access and auth directives were not tested; *) Bugfix: regex parameters in a "valid_referers" directive were not inherited from previous level. *) Bugfix: a "post_action" directive did run if a request was completed with 499 status code. *) Bugfix: optimization of 16K buffer usage in a SSL connection. Thanks to Ben Maurer. *) Bugfix: the STARTTLS in SMTP mode did not work. Thanks to Oleg Motienko. *) Bugfix: in HTTPS mode requests might fail with the "bad write retry" error; bug appeared in 0.5.13.
author Igor Sysoev <http://sysoev.ru>
date Thu, 27 Dec 2007 00:00:00 +0300
parents b743d290eb3b
children 54fad6c4b555
comparison
equal deleted inserted replaced
357:16d557a75356 358:9121a0a91f47
1593 1593
1594 if (r != r->main && r->post_subrequest) { 1594 if (r != r->main && r->post_subrequest) {
1595 rc = r->post_subrequest->handler(r, r->post_subrequest->data, rc); 1595 rc = r->post_subrequest->handler(r, r->post_subrequest->data, rc);
1596 } 1596 }
1597 1597
1598 if (rc == NGX_ERROR || rc == NGX_HTTP_REQUEST_TIME_OUT || c->error) { 1598 if (rc == NGX_ERROR
1599 || rc == NGX_HTTP_REQUEST_TIME_OUT
1600 || rc == NGX_HTTP_CLIENT_CLOSED_REQUEST
1601 || c->error)
1602 {
1599 if (rc > 0 && r->headers_out.status == 0) { 1603 if (rc > 0 && r->headers_out.status == 0) {
1600 r->headers_out.status = rc; 1604 r->headers_out.status = rc;
1601 } 1605 }
1602 1606
1603 if (ngx_http_post_action(r) == NGX_OK) { 1607 if (ngx_http_post_action(r) == NGX_OK) {
1675 if (rc == NGX_AGAIN) { 1679 if (rc == NGX_AGAIN) {
1676 r->fast_subrequest = 0; 1680 r->fast_subrequest = 0;
1677 } 1681 }
1678 1682
1679 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, 1683 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
1680 "http fast subrequest: \"%V?%V\" done", 1684 "http fast subrequest: \"%V?%V\" done",
1681 &r->uri, &r->args); 1685 &r->uri, &r->args);
1682 return; 1686 return;
1683 } 1687 }
1684 1688
1685 if (rc != NGX_AGAIN) { 1689 if (rc != NGX_AGAIN) {
1686 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0, 1690 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c->log, 0,
2109 hc->busy[i] = NULL; 2113 hc->busy[i] = NULL;
2110 } 2114 }
2111 2115
2112 hc->nbusy = 0; 2116 hc->nbusy = 0;
2113 } 2117 }
2118
2119 #if (NGX_HTTP_SSL)
2120 if (c->ssl) {
2121 ngx_ssl_free_buffer(c);
2122 }
2123 #endif
2114 2124
2115 rev->handler = ngx_http_keepalive_handler; 2125 rev->handler = ngx_http_keepalive_handler;
2116 2126
2117 if (wev->active && (ngx_event_flags & NGX_USE_LEVEL_EVENT)) { 2127 if (wev->active && (ngx_event_flags & NGX_USE_LEVEL_EVENT)) {
2118 if (ngx_del_event(wev, NGX_WRITE_EVENT, 0) == NGX_ERROR) { 2128 if (ngx_del_event(wev, NGX_WRITE_EVENT, 0) == NGX_ERROR) {