Mercurial > hg > nginx
changeset 463:1f31dc6d33a3 release-0.1.6
nginx-0.1.6-RELEASE import
*) Bugfix: some location directive combinations with the regular
expressions caused the wrong configuration choose.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 11 Nov 2004 20:58:09 +0000 |
parents | ee5b8168154c |
children | 068e10cadfd3 |
files | docs/xml/nginx/changes.xml src/core/nginx.h src/http/ngx_http_core_module.c |
diffstat | 3 files changed, 27 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/docs/xml/nginx/changes.xml +++ b/docs/xml/nginx/changes.xml @@ -6,6 +6,22 @@ title="nginx"> +<changes ver="0.1.6" date="11.11.2004"> + +<change type="bugfix"> +<para lang="ru"> +при некоторых комбинациях директив location c регулярными выражениями +использовалась конфигурация не из того location. +</para> +<para lang="en"> +some location directive combiations with the regular expressions caused +the wrong configuration choose. +</para> +</change> + +</changes> + + <changes ver="0.1.5" date="11.11.2004"> <change type="bugfix"> @@ -22,11 +38,11 @@ alerts. <change type="bugfix"> <para lang="ru"> в режиме прокси без использования sendfile на Solaris возникала -ошибка "writev() failed (22: Invalid argument)". На других платформах, -не поддерживающих sendfile, процесс зацикливался. +ошибка "writev() failed <nobr>(22: Invalid argument)".</nobr> +На других платформах, не поддерживающих sendfile, процесс зацикливался. </para> <para lang="en"> -there were the "writev() failed (22: Invalid argument)" errors on +there were the "writev() failed <nobr>(22: Invalid argument)"</nobr> errors on Solaris in proxy mode without sendfile. On other platforms that do not support sendfile at all the process got caught in an endless loop. </para>
--- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,7 +8,7 @@ #define _NGINX_H_INCLUDED_ -#define NGINX_VER "nginx/0.1.5" +#define NGINX_VER "nginx/0.1.6" #define NGINX_VAR "NGINX" #define NGX_NEWPID_EXT ".newbin"
--- a/src/http/ngx_http_core_module.c +++ b/src/http/ngx_http_core_module.c @@ -992,6 +992,11 @@ static int ngx_cmp_locations(const void return 1; } + if (!first->regex && second->regex) { + /* shift the regex matches to the end */ + return -1; + } + if (first->regex || second->regex) { /* do not sort the regex matches */ return 0; @@ -1061,8 +1066,7 @@ static char *ngx_location_block(ngx_conf if (cf->args->nelts == 3) { if (value[1].len == 1 && value[1].data[0] == '=') { - clcf->name.len = value[2].len; - clcf->name.data = value[2].data; + clcf->name = value[2]; clcf->exact_match = 1; } else if ((value[1].len == 1 && value[1].data[0] == '~') @@ -1098,8 +1102,7 @@ static char *ngx_location_block(ngx_conf } } else { - clcf->name.len = value[1].len; - clcf->name.data = value[1].data; + clcf->name = value[1]; } pclcf = pctx->loc_conf[ngx_http_core_module.ctx_index];