Mercurial > hg > nginx-quic
comparison src/http/ngx_http_core_module.c @ 1618:fbf94b8341bf stable-0.5
r1386, r1388, r1389, r1580, r1581 merge:
regex in server_name and valid_referers
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 07 Nov 2007 13:46:29 +0000 |
parents | cacb565c554e |
children | 20a0f2880d45 |
comparison
equal
deleted
inserted
replaced
1617:cacb565c554e | 1618:fbf94b8341bf |
---|---|
2270 sn = ngx_array_push(&conf->server_names); | 2270 sn = ngx_array_push(&conf->server_names); |
2271 if (sn == NULL) { | 2271 if (sn == NULL) { |
2272 return NGX_CONF_ERROR; | 2272 return NGX_CONF_ERROR; |
2273 } | 2273 } |
2274 | 2274 |
2275 #if (NGX_PCRE) | |
2276 sn->regex = NULL; | |
2277 #endif | |
2278 sn->core_srv_conf = conf; | |
2275 sn->name.len = conf->server_name.len; | 2279 sn->name.len = conf->server_name.len; |
2276 sn->name.data = conf->server_name.data; | 2280 sn->name.data = conf->server_name.data; |
2277 sn->core_srv_conf = conf; | |
2278 } | 2281 } |
2279 | 2282 |
2280 ngx_conf_merge_size_value(conf->connection_pool_size, | 2283 ngx_conf_merge_size_value(conf->connection_pool_size, |
2281 prev->connection_pool_size, 256); | 2284 prev->connection_pool_size, 256); |
2282 ngx_conf_merge_size_value(conf->request_pool_size, | 2285 ngx_conf_merge_size_value(conf->request_pool_size, |
2717 | 2720 |
2718 u_char ch; | 2721 u_char ch; |
2719 ngx_str_t *value, name; | 2722 ngx_str_t *value, name; |
2720 ngx_uint_t i; | 2723 ngx_uint_t i; |
2721 ngx_http_server_name_t *sn; | 2724 ngx_http_server_name_t *sn; |
2725 #if (NGX_PCRE) | |
2726 ngx_str_t err; | |
2727 u_char errstr[NGX_MAX_CONF_ERRSTR]; | |
2728 #endif | |
2722 | 2729 |
2723 value = cf->args->elts; | 2730 value = cf->args->elts; |
2724 | 2731 |
2725 ch = value[1].data[0]; | 2732 ch = value[1].data[0]; |
2726 | 2733 |
2727 if (cscf->server_name.data == NULL && value[1].len) { | 2734 if (cscf->server_name.data == NULL && value[1].len) { |
2728 if (ngx_strchr(value[1].data, '*')) { | 2735 if (ngx_strchr(value[1].data, '*')) { |
2729 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | 2736 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
2730 "first server name \"%V\" must not be wildcard", | 2737 "first server name \"%V\" must not be wildcard", |
2731 &value[1]); | 2738 &value[1]); |
2739 return NGX_CONF_ERROR; | |
2740 } | |
2741 | |
2742 if (value[1].data[0] == '~') { | |
2743 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
2744 "first server name \"%V\" " | |
2745 "must not be regular expression", &value[1]); | |
2732 return NGX_CONF_ERROR; | 2746 return NGX_CONF_ERROR; |
2733 } | 2747 } |
2734 | 2748 |
2735 name = value[1]; | 2749 name = value[1]; |
2736 | 2750 |
2773 sn = ngx_array_push(&cscf->server_names); | 2787 sn = ngx_array_push(&cscf->server_names); |
2774 if (sn == NULL) { | 2788 if (sn == NULL) { |
2775 return NGX_CONF_ERROR; | 2789 return NGX_CONF_ERROR; |
2776 } | 2790 } |
2777 | 2791 |
2792 #if (NGX_PCRE) | |
2793 sn->regex = NULL; | |
2794 #endif | |
2795 sn->core_srv_conf = cscf; | |
2778 sn->name.len = value[i].len; | 2796 sn->name.len = value[i].len; |
2779 sn->name.data = value[i].data; | 2797 sn->name.data = value[i].data; |
2780 sn->core_srv_conf = cscf; | 2798 |
2799 if (value[i].data[0] != '~') { | |
2800 continue; | |
2801 } | |
2802 | |
2803 #if (NGX_PCRE) | |
2804 err.len = NGX_MAX_CONF_ERRSTR; | |
2805 err.data = errstr; | |
2806 | |
2807 value[i].len--; | |
2808 value[i].data++; | |
2809 | |
2810 sn->regex = ngx_regex_compile(&value[i], NGX_REGEX_CASELESS, cf->pool, | |
2811 &err); | |
2812 | |
2813 if (sn->regex == NULL) { | |
2814 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "%s", err.data); | |
2815 return NGX_CONF_ERROR; | |
2816 } | |
2817 | |
2818 sn->name.len = value[i].len; | |
2819 sn->name.data = value[i].data; | |
2820 | |
2821 #else | |
2822 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
2823 "the using of the regex \"%V\" " | |
2824 "requires PCRE library", &value[i]); | |
2825 | |
2826 return NGX_CONF_ERROR; | |
2827 #endif | |
2781 } | 2828 } |
2782 | 2829 |
2783 return NGX_CONF_OK; | 2830 return NGX_CONF_OK; |
2784 } | 2831 } |
2785 | 2832 |