diff --git a/src/http/ngx_http.h b/src/http/ngx_http.h index f974081ea..bf70c16a8 100644 --- a/src/http/ngx_http.h +++ b/src/http/ngx_http.h @@ -27,11 +27,11 @@ typedef u_char *(*ngx_http_log_handler_pt)(ngx_http_request_t *r, #include +#include #include #include #include #include -#include #include #include diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index cab1f5262..93a519b77 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -292,6 +292,9 @@ ngx_http_init_connection(ngx_connection_t *c) } } + /* the default server configuration for the address:port */ + hc->conf_ctx = hc->addr_conf->default_server->ctx; + ctx = ngx_palloc(c->pool, sizeof(ngx_http_log_ctx_t)); if (ctx == NULL) { ngx_http_close_connection(c); @@ -399,12 +402,9 @@ ngx_http_init_request(ngx_event_t *rev) r->connection = c; - /* the default server configuration for the address:port */ - cscf = hc->addr_conf->default_server; - - r->main_conf = cscf->ctx->main_conf; - r->srv_conf = cscf->ctx->srv_conf; - r->loc_conf = cscf->ctx->loc_conf; + r->main_conf = hc->conf_ctx->main_conf; + r->srv_conf = hc->conf_ctx->srv_conf; + r->loc_conf = hc->conf_ctx->loc_conf; rev->handler = ngx_http_process_request_line; r->read_event_handler = ngx_http_block_reading; @@ -449,6 +449,8 @@ ngx_http_init_request(ngx_event_t *rev) ngx_http_set_connection_log(r->connection, clcf->error_log); + cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module); + if (c->buffer == NULL) { c->buffer = ngx_create_temp_buf(c->pool, cscf->client_header_buffer_size); @@ -689,6 +691,8 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *ssl_conn, int *ad, void *arg) return SSL_TLSEXT_ERR_NOACK; } + hc->conf_ctx = cscf->ctx; + r->srv_conf = cscf->ctx->srv_conf; r->loc_conf = cscf->ctx->loc_conf; diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h index 7ceea6225..a2df0c6f2 100644 --- a/src/http/ngx_http_request.h +++ b/src/http/ngx_http_request.h @@ -293,6 +293,7 @@ typedef struct ngx_http_addr_conf_s ngx_http_addr_conf_t; typedef struct { ngx_http_addr_conf_t *addr_conf; + ngx_http_conf_ctx_t *conf_ctx; ngx_http_request_t *request;