diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-12-26 17:07:48 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-12-26 17:07:48 +0000 |
commit | 305a9d83cfba0d0330bd12af4ca56943b10e958e (patch) | |
tree | 8dc3ead91f77a4ae8953f289f57ff49b4ce9c9f1 /src/http/ngx_http_core_module.h | |
parent | f9cbecc16a9851e8403bf7dae96feebf63b1ac3e (diff) | |
download | nginx-release-0.3.18.tar.gz nginx-release-0.3.18.zip |
nginx-0.3.18-RELEASE importrelease-0.3.18
*) Feature: the "server_names" directive supports the ".domain.tld"
names.
*) Feature: the "server_names" directive uses the hash for the
"*.domain.tld" names and more effective hash for usual names.
*) Change: the "server_names_hash_max_size" and
"server_names_hash_bucket_size" directives.
*) Change: the "server_names_hash" and "server_names_hash_threshold"
directives were canceled.
*) Feature: the "valid_referers" directive uses the hash site names.
*) Change: now the "valid_referers" directive checks the site names
only without the URI part.
*) Bugfix: some ".domain.tld" names incorrectly processed by the
ngx_http_map_module.
*) Bugfix: segmentation fault was occurred if configuration file did
not exist; the bug had appeared in 0.3.12.
*) Bugfix: on 64-bit platforms segmentation fault may occurred on
start; the bug had appeared in 0.3.16.
Diffstat (limited to 'src/http/ngx_http_core_module.h')
-rw-r--r-- | src/http/ngx_http_core_module.h | 54 |
1 files changed, 31 insertions, 23 deletions
diff --git a/src/http/ngx_http_core_module.h b/src/http/ngx_http_core_module.h index 0d8ae74c3..1652f3560 100644 --- a/src/http/ngx_http_core_module.h +++ b/src/http/ngx_http_core_module.h @@ -73,10 +73,8 @@ typedef struct { ngx_hash0_t headers_in_hash; ngx_hash0_t variables_hash; - ngx_uint_t server_names_hash; - ngx_uint_t server_names_hash_threshold; - - size_t max_server_name_len; + ngx_uint_t server_names_hash_max_size; + ngx_uint_t server_names_hash_bucket_size; ngx_array_t variables; /* ngx_http_variable_t */ ngx_array_t all_variables; /* ngx_http_variable_t */ @@ -99,6 +97,8 @@ typedef struct { /* server ctx */ ngx_http_conf_ctx_t *ctx; + ngx_str_t server_name; + size_t connection_pool_size; size_t request_pool_size; size_t client_header_buffer_size; @@ -115,45 +115,53 @@ typedef struct { /* list of structures to find core_srv_conf quickly at run time */ + +typedef struct { + in_addr_t addr; + /* the default server configuration for this address:port */ + ngx_http_core_srv_conf_t *core_srv_conf; + ngx_http_virtual_names_t *virtual_names; +} ngx_http_in_addr_t; + + typedef struct { in_port_t port; ngx_str_t port_text; - ngx_array_t addrs; /* array of ngx_http_in_addr_t */ + ngx_http_in_addr_t *addrs; + ngx_uint_t naddrs; } ngx_http_in_port_t; -struct ngx_http_in_addr_s { +typedef struct { + in_port_t port; + ngx_array_t addrs; /* array of ngx_http_conf_in_addr_t */ +} ngx_http_conf_in_port_t; + + +typedef struct { in_addr_t addr; - ngx_array_t names; /* array of ngx_http_server_name_t */ - ngx_array_t *hash; /* hash of ngx_http_server_name_t */ - ngx_array_t wildcards; /* array of ngx_http_server_name_t */ + ngx_hash_t hash; + ngx_hash_wildcard_t *dns_wildcards; + + ngx_array_t names; /* array of ngx_http_server_name_t */ /* the default server configuration for this address:port */ ngx_http_core_srv_conf_t *core_srv_conf; - ngx_http_listen_conf_t conf; -}; + unsigned default_server:1; + unsigned bind:1; + + ngx_http_listen_conf_t *listen_conf; +} ngx_http_conf_in_addr_t; typedef struct { ngx_str_t name; ngx_http_core_srv_conf_t *core_srv_conf; /* virtual name server conf */ - - ngx_uint_t wildcard; /* unsigned wildcard:1 */ } ngx_http_server_name_t; -#define ngx_http_server_names_hash_key(key, name, len, prime) \ - { \ - ngx_uint_t n0; \ - for (key = 0, n0 = 0; n0 < len; n0++) { \ - key += name[n0]; \ - } \ - key %= prime; \ - } - - typedef struct { ngx_int_t status; ngx_int_t overwrite; |