diff src/core/ngx_hash.h @ 1253:8ef04207c84f

the "www.example.*" wildcard hash support
author Igor Sysoev <igor@sysoev.ru>
date Mon, 11 Jun 2007 19:49:22 +0000
parents 3e80929ea5af
children 7a7c9e9024dd
line wrap: on
line diff
--- 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
 
 
 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);