comparison src/http/modules/ngx_http_referer_module.c @ 1782:db07cb9d1cbc

regex valid_referers were not inherited
author Igor Sysoev <igor@sysoev.ru>
date Thu, 27 Dec 2007 12:13:11 +0000
parents e584e946e198
children 0673b54f34f7
comparison
equal deleted inserted replaced
1781:bfb66d7c2b42 1782:db07cb9d1cbc
240 conf = ngx_pcalloc(cf->pool, sizeof(ngx_http_referer_conf_t)); 240 conf = ngx_pcalloc(cf->pool, sizeof(ngx_http_referer_conf_t));
241 if (conf == NULL) { 241 if (conf == NULL) {
242 return NGX_CONF_ERROR; 242 return NGX_CONF_ERROR;
243 } 243 }
244 244
245 #if (NGX_PCRE)
246 conf->regex = NGX_CONF_UNSET_PTR;
247 #endif
248
245 conf->no_referer = NGX_CONF_UNSET; 249 conf->no_referer = NGX_CONF_UNSET;
246 conf->blocked_referer = NGX_CONF_UNSET; 250 conf->blocked_referer = NGX_CONF_UNSET;
247 251
248 return conf; 252 return conf;
249 } 253 }
258 ngx_hash_init_t hash; 262 ngx_hash_init_t hash;
259 263
260 if (conf->keys == NULL) { 264 if (conf->keys == NULL) {
261 conf->hash = prev->hash; 265 conf->hash = prev->hash;
262 266
267 ngx_conf_merge_ptr_value(conf->regex, prev->regex, NULL);
263 ngx_conf_merge_value(conf->no_referer, prev->no_referer, 0); 268 ngx_conf_merge_value(conf->no_referer, prev->no_referer, 0);
264 ngx_conf_merge_value(conf->blocked_referer, prev->blocked_referer, 0); 269 ngx_conf_merge_value(conf->blocked_referer, prev->blocked_referer, 0);
265 270
266 return NGX_CONF_OK; 271 return NGX_CONF_OK;
267 } 272 }
333 } 338 }
334 339
335 conf->hash.wc_tail = (ngx_hash_wildcard_t *) hash.hash; 340 conf->hash.wc_tail = (ngx_hash_wildcard_t *) hash.hash;
336 } 341 }
337 342
343 ngx_conf_merge_ptr_value(conf->regex, prev->regex, NULL);
344
338 if (conf->no_referer == NGX_CONF_UNSET) { 345 if (conf->no_referer == NGX_CONF_UNSET) {
339 conf->no_referer = 0; 346 conf->no_referer = 0;
340 } 347 }
341 348
342 if (conf->blocked_referer == NGX_CONF_UNSET) { 349 if (conf->blocked_referer == NGX_CONF_UNSET) {
511 #if (NGX_PCRE) 518 #if (NGX_PCRE)
512 ngx_str_t err; 519 ngx_str_t err;
513 ngx_http_referer_regex_t *rr; 520 ngx_http_referer_regex_t *rr;
514 u_char errstr[NGX_MAX_CONF_ERRSTR]; 521 u_char errstr[NGX_MAX_CONF_ERRSTR];
515 522
516 if (rlcf->regex == NULL) { 523 if (rlcf->regex == NGX_CONF_UNSET_PTR) {
517 rlcf->regex = ngx_array_create(cf->pool, 2, 524 rlcf->regex = ngx_array_create(cf->pool, 2,
518 sizeof(ngx_http_referer_regex_t)); 525 sizeof(ngx_http_referer_regex_t));
519 if (rlcf->regex == NULL) { 526 if (rlcf->regex == NULL) {
520 return NGX_CONF_ERROR; 527 return NGX_CONF_ERROR;
521 } 528 }