backout r2535: virtual names is a property of address:port pair, but is not a property of server configuration
diff --git a/src/http/ngx_http.c b/src/http/ngx_http.c index ed766bc..5cd0ee1 100644 --- a/src/http/ngx_http.c +++ b/src/http/ngx_http.c
@@ -1825,7 +1825,7 @@ return NGX_ERROR; } - addrs[i].conf.core_srv_conf->virtual_names = vn; + addrs[i].conf.virtual_names = vn; vn->names.hash = addr[i].hash; vn->names.wc_head = addr[i].wc_head; @@ -1882,7 +1882,7 @@ return NGX_ERROR; } - addrs6[i].conf.core_srv_conf->virtual_names = vn; + addrs6[i].conf.virtual_names = vn; vn->names.hash = addr[i].hash; vn->names.wc_head = addr[i].wc_head;
diff --git a/src/http/ngx_http_core_module.h b/src/http/ngx_http_core_module.h index 571b5b7..e1692fd 100644 --- a/src/http/ngx_http_core_module.h +++ b/src/http/ngx_http_core_module.h
@@ -153,8 +153,6 @@ /* server ctx */ ngx_http_conf_ctx_t *ctx; - ngx_http_virtual_names_t *virtual_names; - ngx_str_t server_name; size_t connection_pool_size; @@ -180,6 +178,8 @@ /* the default server configuration for this address:port */ ngx_http_core_srv_conf_t *core_srv_conf; + ngx_http_virtual_names_t *virtual_names; + #if (NGX_HTTP_SSL) ngx_uint_t ssl; /* unsigned ssl:1; */ #endif
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index 17d867a..31ab640 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c
@@ -372,6 +372,8 @@ } } + r->virtual_names = addr_conf->virtual_names; + /* the default server configuration for the address:port */ cscf = addr_conf->core_srv_conf; @@ -1609,15 +1611,11 @@ { u_char *server; ngx_uint_t hash; - ngx_http_virtual_names_t *vn; ngx_http_core_loc_conf_t *clcf; ngx_http_core_srv_conf_t *cscf; u_char buf[32]; - cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module); - vn = cscf->virtual_names; - - if (vn == NULL) { + if (r->virtual_names == NULL) { return NGX_DECLINED; } @@ -1633,7 +1631,7 @@ hash = ngx_hash_strlow(server, host, len); - cscf = ngx_hash_find_combined(&vn->names, hash, server, len); + cscf = ngx_hash_find_combined(&r->virtual_names->names, hash, server, len); if (cscf) { goto found; @@ -1641,7 +1639,7 @@ #if (NGX_PCRE) - if (vn->nregex) { + if (r->virtual_names->nregex) { size_t ncaptures; ngx_int_t n; ngx_uint_t i; @@ -1653,9 +1651,9 @@ ncaptures = 0; - sn = vn->regex; + sn = r->virtual_names->regex; - for (i = 0; i < vn->nregex; i++) { + for (i = 0; i < r->virtual_names->nregex; i++) { if (sn[i].captures && r->captures == NULL) {
diff --git a/src/http/ngx_http_request.h b/src/http/ngx_http_request.h index ee87669..23a8846 100644 --- a/src/http/ngx_http_request.h +++ b/src/http/ngx_http_request.h
@@ -387,6 +387,8 @@ ngx_http_post_subrequest_t *post_subrequest; ngx_http_posted_request_t *posted_requests; + ngx_http_virtual_names_t *virtual_names; + ngx_int_t phase_handler; ngx_http_handler_pt content_handler; ngx_uint_t access_code;