aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/event/ngx_event.c3
-rw-r--r--src/http/ngx_http_request.c1
-rw-r--r--src/http/ngx_http_special_response.c14
3 files changed, 13 insertions, 5 deletions
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index 18fa6b6ef..87747c3eb 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -220,7 +220,8 @@ static ngx_int_t ngx_event_process_init(ngx_cycle_t *cycle)
ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
ecf = ngx_event_get_conf(cycle->conf_ctx, ngx_event_core_module);
- if (ccf->worker_processes > 1 && ecf->accept_mutex) {
+ if (ngx_accept_mutex_ptr && ccf->worker_processes > 1 && ecf->accept_mutex)
+ {
ngx_accept_mutex = ngx_accept_mutex_ptr;
ngx_accept_mutex_held = 1;
ngx_accept_mutex_delay = ecf->accept_mutex_delay;
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index d5496e227..a8c4aeed2 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -871,6 +871,7 @@ static ngx_int_t ngx_http_process_request_header(ngx_http_request_t *r)
{
r->srv_conf = name[i].core_srv_conf->ctx->srv_conf;
r->loc_conf = name[i].core_srv_conf->ctx->loc_conf;
+ r->server_name = &name[i].name;
clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
r->connection->log->file = clcf->err_log->file;
diff --git a/src/http/ngx_http_special_response.c b/src/http/ngx_http_special_response.c
index ba8796925..55f4bb3ac 100644
--- a/src/http/ngx_http_special_response.c
+++ b/src/http/ngx_http_special_response.c
@@ -240,8 +240,15 @@ int ngx_http_special_response_handler(ngx_http_request_t *r, int error)
if (error_pages[err].len) {
r->headers_out.content_length_n = error_pages[err].len
- + sizeof(error_tail) - 1
- + sizeof(msie_stub) - 1;
+ + sizeof(error_tail) - 1;
+
+ if (clcf->msie_padding
+ && r->http_version >= NGX_HTTP_VERSION_10
+ && error >= NGX_HTTP_BAD_REQUEST
+ && error != NGX_HTTP_REQUEST_URI_TOO_LARGE)
+ {
+ r->headers_out.content_length_n += sizeof(msie_stub) - 1;
+ }
if (!(r->headers_out.content_type =
ngx_http_add_header(&r->headers_out, ngx_http_headers_out)))
@@ -300,8 +307,7 @@ int ngx_http_special_response_handler(ngx_http_request_t *r, int error)
if (clcf->msie_padding
&& r->http_version >= NGX_HTTP_VERSION_10
&& error >= NGX_HTTP_BAD_REQUEST
- && error != NGX_HTTP_REQUEST_URI_TOO_LARGE
- )
+ && error != NGX_HTTP_REQUEST_URI_TOO_LARGE)
{
if (!(h = ngx_calloc_hunk(r->pool))) {
return NGX_ERROR;