summaryrefslogtreecommitdiffhomepage
path: root/src/core/ngx_hash.h
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-06-11 19:49:22 +0000
committerIgor Sysoev <igor@sysoev.ru>2007-06-11 19:49:22 +0000
commit9d8a75c5256ada429fdeff93584044eca6cf1a56 (patch)
tree98226bea23d49242292bd5ee4ec0c969d07099b6 /src/core/ngx_hash.h
parentad39e5c7464bebda27c1ccb85fa4872265a399d0 (diff)
downloadnginx-9d8a75c5256ada429fdeff93584044eca6cf1a56.tar.gz
nginx-9d8a75c5256ada429fdeff93584044eca6cf1a56.tar.bz2
the "www.example.*" wildcard hash support
Diffstat (limited to 'src/core/ngx_hash.h')
-rw-r--r--src/core/ngx_hash.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/core/ngx_hash.h b/src/core/ngx_hash.h
index 543532452..95e04046f 100644
--- a/src/core/ngx_hash.h
+++ b/src/core/ngx_hash.h
@@ -42,6 +42,13 @@ typedef ngx_uint_t (*ngx_hash_key_pt) (u_char *data, size_t len);
typedef struct {
+ ngx_hash_t hash;
+ ngx_hash_wildcard_t *wc_head;
+ ngx_hash_wildcard_t *wc_tail;
+} ngx_hash_combined_t;
+
+
+typedef struct {
ngx_hash_t *hash;
ngx_hash_key_pt key;
@@ -73,8 +80,11 @@ typedef struct {
ngx_array_t keys;
ngx_array_t *keys_hash;
- ngx_array_t dns_wildcards;
- ngx_array_t *dns_wildcards_hash;
+ ngx_array_t dns_wc_head;
+ ngx_array_t *dns_wc_head_hash;
+
+ ngx_array_t dns_wc_tail;
+ ngx_array_t *dns_wc_tail_hash;
} ngx_hash_keys_arrays_t;
@@ -87,8 +97,10 @@ typedef struct {
void *ngx_hash_find(ngx_hash_t *hash, ngx_uint_t key, u_char *name, size_t len);
-void *ngx_hash_find_wildcard(ngx_hash_wildcard_t *hwc, u_char *name,
- size_t len);
+void *ngx_hash_find_wc_head(ngx_hash_wildcard_t *hwc, u_char *name, size_t len);
+void *ngx_hash_find_wc_tail(ngx_hash_wildcard_t *hwc, u_char *name, size_t len);
+void *ngx_hash_find_combined(ngx_hash_combined_t *hash, ngx_uint_t key,
+ u_char *name, size_t len);
ngx_int_t ngx_hash_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names,
ngx_uint_t nelts);