changeset 1782:db07cb9d1cbc

regex valid_referers were not inherited
author Igor Sysoev <igor@sysoev.ru>
date Thu, 27 Dec 2007 12:13:11 +0000
parents bfb66d7c2b42
children cfb879757a43
files src/http/modules/ngx_http_referer_module.c
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/modules/ngx_http_referer_module.c
+++ b/src/http/modules/ngx_http_referer_module.c
@@ -242,6 +242,10 @@ ngx_http_referer_create_conf(ngx_conf_t 
         return NGX_CONF_ERROR;
     }
 
+#if (NGX_PCRE)
+    conf->regex = NGX_CONF_UNSET_PTR;
+#endif
+
     conf->no_referer = NGX_CONF_UNSET;
     conf->blocked_referer = NGX_CONF_UNSET;
 
@@ -260,6 +264,7 @@ ngx_http_referer_merge_conf(ngx_conf_t *
     if (conf->keys == NULL) {
         conf->hash = prev->hash;
 
+        ngx_conf_merge_ptr_value(conf->regex, prev->regex, NULL);
         ngx_conf_merge_value(conf->no_referer, prev->no_referer, 0);
         ngx_conf_merge_value(conf->blocked_referer, prev->blocked_referer, 0);
 
@@ -335,6 +340,8 @@ ngx_http_referer_merge_conf(ngx_conf_t *
         conf->hash.wc_tail = (ngx_hash_wildcard_t *) hash.hash;
     }
 
+    ngx_conf_merge_ptr_value(conf->regex, prev->regex, NULL);
+
     if (conf->no_referer == NGX_CONF_UNSET) {
         conf->no_referer = 0;
     }
@@ -513,7 +520,7 @@ ngx_http_add_regex_referer(ngx_conf_t *c
     ngx_http_referer_regex_t  *rr;
     u_char                     errstr[NGX_MAX_CONF_ERRSTR];
 
-    if (rlcf->regex == NULL) {
+    if (rlcf->regex == NGX_CONF_UNSET_PTR) {
         rlcf->regex = ngx_array_create(cf->pool, 2,
                                        sizeof(ngx_http_referer_regex_t));
         if (rlcf->regex == NULL) {