diff options
author | Igor Sysoev <igor@sysoev.ru> | 2010-12-13 11:06:01 +0000 |
---|---|---|
committer | Jonathan Kolb <jon@b0g.us> | 2010-12-13 11:06:01 +0000 |
commit | 487d8fc7628cac7beb9240e6f1d9ebf53a1f30d7 (patch) | |
tree | 7daf46ec00cf8ef94572d39bcdcb40f9e16ea66b | |
parent | 12368999b3ed45cde5e4cea8ea985d4444dcd932 (diff) | |
download | nginx-487d8fc7628cac7beb9240e6f1d9ebf53a1f30d7.tar.gz |
Changes with nginx 0.9.3 13 Dec 2010v0.9.3
*) Bugfix: if there was a single server for given IPv6 address:port
pair, then captures in regular expressions in a "server_name"
directive did not work.
*) Bugfix: nginx could not be built on Solaris; the bug had appeared in
0.9.0.
-rw-r--r-- | CHANGES | 16 | ||||
-rw-r--r-- | CHANGES.ru | 10 | ||||
-rwxr-xr-x | auto/unix | 46 | ||||
-rw-r--r-- | src/core/nginx.h | 4 | ||||
-rw-r--r-- | src/core/ngx_log.c | 4 | ||||
-rw-r--r-- | src/http/modules/perl/nginx.pm | 2 | ||||
-rw-r--r-- | src/http/ngx_http.c | 10 | ||||
-rw-r--r-- | src/os/unix/ngx_process_cycle.c | 5 |
8 files changed, 76 insertions, 21 deletions
@@ -1,4 +1,14 @@ +Changes with nginx 0.9.3 13 Dec 2010 + + *) Bugfix: if there was a single server for given IPv6 address:port + pair, then captures in regular expressions in a "server_name" + directive did not work. + + *) Bugfix: nginx could not be built on Solaris; the bug had appeared in + 0.9.0. + + Changes with nginx 0.9.2 06 Dec 2010 *) Feature: the "If-Unmodified-Since" client request header line @@ -7,8 +17,8 @@ Changes with nginx 0.9.2 06 Dec 2010 *) Workaround: fallback to accept() syscall if accept4() was not implemented; the issue had appeared in 0.9.0. - *) Bugfix: nginx could not be built on Cygwin; the issue had appeared - in 0.9.0. + *) Bugfix: nginx could not be built on Cygwin; the bug had appeared in + 0.9.0. *) Bugfix: for OpenSSL vulnerability CVE-2010-4180. Thanks to Maxim Dounin. @@ -1255,7 +1265,7 @@ Changes with nginx 0.7.44 23 Mar 2009 *) Bugfix: the "try_files" directive might test incorrectly directories. - *) Bugfix: if there is the single server for given address:port pair, + *) Bugfix: if there was a single server for given address:port pair, then captures in regular expressions in a "server_name" directive did not work. diff --git a/CHANGES.ru b/CHANGES.ru index 65cf5440f..d90b5cae3 100644 --- a/CHANGES.ru +++ b/CHANGES.ru @@ -1,4 +1,14 @@ +Изменения в nginx 0.9.3 13.12.2010 + + *) Исправление: если для пары адрес:порт описан только один сервер, то + выделения в регулярных выражениях в директиве server_name не + работали. + + *) Исправление: nginx не собирался под Solaris; ошибка появилась в + 0.9.0. + + Изменения в nginx 0.9.2 06.12.2010 *) Добавление: поддержка строки "If-Unmodified-Since" в заголовке @@ -119,16 +119,42 @@ ngx_feature_test='printf("%d", sys_nerr);' . auto/feature -# Cygiwn defines _sys_nerr -ngx_feature="_sys_nerr" -ngx_feature_name="NGX_SYS_NERR" -ngx_feature_run=value -ngx_feature_incs='#include <errno.h> - #include <stdio.h>' -ngx_feature_path= -ngx_feature_libs= -ngx_feature_test='printf("%d", _sys_nerr);' -. auto/feature +if [ $ngx_found = no ]; then + + # Cygiwn defines _sys_nerr + ngx_feature="_sys_nerr" + ngx_feature_name="NGX_SYS_NERR" + ngx_feature_run=value + ngx_feature_incs='#include <errno.h> + #include <stdio.h>' + ngx_feature_path= + ngx_feature_libs= + ngx_feature_test='printf("%d", _sys_nerr);' + . auto/feature +fi + + +if [ $ngx_found = no ]; then + + # Solaris has no sys_nerr + ngx_feature='maximum errno' + ngx_feature_name=NGX_SYS_NERR + ngx_feature_run=value + ngx_feature_incs='#include <errno.h> + #include <stdio.h>' + ngx_feature_path= + ngx_feature_libs= + ngx_feature_test='int n; + for (n = 1; n < 1000; n++) { + errno = 0; + strerror(n); + if (errno == EINVAL) { + printf("%d", n); + return 0; + } + }' + . auto/feature +fi ngx_feature="localtime_r()" diff --git a/src/core/nginx.h b/src/core/nginx.h index 27effb3c5..babeacf6b 100644 --- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,8 +8,8 @@ #define _NGINX_H_INCLUDED_ -#define nginx_version 9002 -#define NGINX_VERSION "0.9.2" +#define nginx_version 9003 +#define NGINX_VERSION "0.9.3" #define NGINX_VER "nginx/" NGINX_VERSION #define NGINX_VAR "NGINX" diff --git a/src/core/ngx_log.c b/src/core/ngx_log.c index ec0430355..528546ba1 100644 --- a/src/core/ngx_log.c +++ b/src/core/ngx_log.c @@ -148,9 +148,9 @@ ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err, return; } - msg -= (7 + err_levels[level].len + 4); + msg -= (7 + err_levels[level].len + 3); - (void) ngx_sprintf(msg, "nginx: [%V]: ", &err_levels[level]); + (void) ngx_sprintf(msg, "nginx: [%V] ", &err_levels[level]); (void) ngx_write_console(ngx_stderr, msg, p - msg); } diff --git a/src/http/modules/perl/nginx.pm b/src/http/modules/perl/nginx.pm index a08eebd7d..36429d8ae 100644 --- a/src/http/modules/perl/nginx.pm +++ b/src/http/modules/perl/nginx.pm @@ -48,7 +48,7 @@ our @EXPORT = qw( HTTP_INSUFFICIENT_STORAGE ); -our $VERSION = '0.9.2'; +our $VERSION = '0.9.3'; require XSLoader; XSLoader::load('nginx', $VERSION); diff --git a/src/http/ngx_http.c b/src/http/ngx_http.c index 4ecd50ce8..5ca9fed3c 100644 --- a/src/http/ngx_http.c +++ b/src/http/ngx_http.c @@ -1502,7 +1502,7 @@ ngx_http_server_names(ngx_conf_t *cf, ngx_http_core_main_conf_t *cmcf, } if (rc == NGX_BUSY) { - ngx_log_error(NGX_LOG_WARN, cf->log, 0, + ngx_log_error(NGX_LOG_WARN, cf->log, 0, "conflicting server name \"%V\" on %s, ignored", &name[n].name, addr->opt.addr); } @@ -1870,8 +1870,12 @@ ngx_http_add_addrs6(ngx_conf_t *cf, ngx_http_port_t *hport, if (addr[i].hash.buckets == NULL && (addr[i].wc_head == NULL || addr[i].wc_head->hash.buckets == NULL) - && (addr[i].wc_head == NULL - || addr[i].wc_head->hash.buckets == NULL)) + && (addr[i].wc_tail == NULL + || addr[i].wc_tail->hash.buckets == NULL) +#if (NGX_PCRE) + && addr[i].nregex == 0 +#endif + ) { continue; } diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c index 605102558..3ff0f75c6 100644 --- a/src/os/unix/ngx_process_cycle.c +++ b/src/os/unix/ngx_process_cycle.c @@ -291,6 +291,11 @@ ngx_single_process_cycle(ngx_cycle_t *cycle) { ngx_uint_t i; + if (ngx_set_environment(cycle, NULL) == NULL) { + /* fatal */ + exit(2); + } + for (i = 0; ngx_modules[i]; i++) { if (ngx_modules[i]->init_process) { if (ngx_modules[i]->init_process(cycle) == NGX_ERROR) { |