Mercurial > hg > nginx
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 } |