comparison src/http/modules/ngx_http_referer_module.c @ 3335:616ff375a68f stable-0.7

r3117, r3123, r3229 merge: server name related merges: *) If .domain.com, .sub.domain.com, and .domain-some.com were defined, then .sub.domain.com was matched by .domain.com: wildcard names hash was built incorrectly due to sorting order issue of "." vs "-". They were sorted as com.domain com.domain-some com.domain.sub while they should be sorted as com.domain com.domain.sub com.domain-some for correct hash building *) test space between "~" and regex in server_name and invalid_referers *) do not run regex for empty host name since regex always fails in this case, the bug had been introduced in r2196
author Igor Sysoev <igor@sysoev.ru>
date Mon, 16 Nov 2009 15:00:13 +0000
parents 2efa8d2fcde1
children 3031b5931864
comparison
equal deleted inserted replaced
3334:52af73f2def5 3335:616ff375a68f
504 #if (NGX_PCRE) 504 #if (NGX_PCRE)
505 ngx_str_t err; 505 ngx_str_t err;
506 ngx_regex_elt_t *re; 506 ngx_regex_elt_t *re;
507 u_char errstr[NGX_MAX_CONF_ERRSTR]; 507 u_char errstr[NGX_MAX_CONF_ERRSTR];
508 508
509 if (name->len == 1) {
510 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "empty regex in \"%V\"", name);
511 return NGX_CONF_ERROR;
512 }
513
509 if (rlcf->regex == NGX_CONF_UNSET_PTR) { 514 if (rlcf->regex == NGX_CONF_UNSET_PTR) {
510 rlcf->regex = ngx_array_create(cf->pool, 2, sizeof(ngx_regex_elt_t)); 515 rlcf->regex = ngx_array_create(cf->pool, 2, sizeof(ngx_regex_elt_t));
511 if (rlcf->regex == NULL) { 516 if (rlcf->regex == NULL) {
512 return NGX_CONF_ERROR; 517 return NGX_CONF_ERROR;
513 } 518 }
560 ngx_hash_key_t *first, *second; 565 ngx_hash_key_t *first, *second;
561 566
562 first = (ngx_hash_key_t *) one; 567 first = (ngx_hash_key_t *) one;
563 second = (ngx_hash_key_t *) two; 568 second = (ngx_hash_key_t *) two;
564 569
565 return ngx_strcmp(first->key.data, second->key.data); 570 return ngx_dns_strcmp(first->key.data, second->key.data);
566 } 571 }