diff options
author | Igor Sysoev <igor@sysoev.ru> | 2006-02-22 19:41:39 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2006-02-22 19:41:39 +0000 |
commit | cce886c71df5b1de9d9bf57fc26f9d830cb517eb (patch) | |
tree | d25f11e23de1ec0fb0ab74dbf2dc08b29da8c110 | |
parent | 2a74c506c726b1ba06a329f6293540e9ea213326 (diff) | |
download | nginx-cce886c71df5b1de9d9bf57fc26f9d830cb517eb.tar.gz nginx-cce886c71df5b1de9d9bf57fc26f9d830cb517eb.zip |
nginx-0.3.30-RELEASE importrelease-0.3.30
*) Change: the ECONNABORTED error log level was changed to "error" from
"crit".
*) Bugfix: the ngx_http_perl_module could not be build without the
ngx_http_ssi_filter_module.
*) Bugfix: nginx could not be built on i386 platform, if the PIC was
used; the bug had appeared in 0.3.27.
-rw-r--r-- | docs/xml/nginx/changes.xml | 33 | ||||
-rw-r--r-- | src/core/nginx.h | 2 | ||||
-rw-r--r-- | src/core/ngx_cpuinfo.c | 36 | ||||
-rw-r--r-- | src/event/ngx_event_accept.c | 2 | ||||
-rw-r--r-- | src/http/modules/perl/nginx.xs | 5 | ||||
-rw-r--r-- | src/http/modules/perl/ngx_http_perl_module.c | 14 | ||||
-rw-r--r-- | src/http/modules/perl/ngx_http_perl_module.h | 2 |
7 files changed, 90 insertions, 4 deletions
diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml index 0460c930e..08ca5a041 100644 --- a/docs/xml/nginx/changes.xml +++ b/docs/xml/nginx/changes.xml @@ -9,6 +9,39 @@ <title lang="en">nginx changelog</title> +<changes ver="0.3.30" date="22.02.2006"> + +<change type="change"> +<para lang="ru"> +уровень записи в лог ошибки ECONNABORTED изменён на error с уровня crit. +</para> +<para lang="en"> +the ECONNABORTED error log level was changed to "error" from "crit". +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +модуль ngx_http_perl_module не собирался без модуля ngx_http_ssi_filter_module. +</para> +<para lang="en"> +the ngx_http_perl_module could not be build without +the ngx_http_ssi_filter_module. +</para> +</change> + +<change type="bugfix"> +<para lang="ru"> +nginx не собирался на i386 платформе, если использовался PIC. +</para> +<para lang="en"> +nginx could not be built on i386 platform, if the PIC was used. +</para> +</change> + +</changes> + + <changes ver="0.3.29" date="20.02.2006"> <change type="feature"> diff --git a/src/core/nginx.h b/src/core/nginx.h index 01ce1bd93..d0ff27ffc 100644 --- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,7 +8,7 @@ #define _NGINX_H_INCLUDED_ -#define NGINX_VER "nginx/0.3.29" +#define NGINX_VER "nginx/0.3.30" #define NGINX_VAR "NGINX" #define NGX_OLDPID_EXT ".oldbin" diff --git a/src/core/ngx_cpuinfo.c b/src/core/ngx_cpuinfo.c index a939635f8..f905cbc13 100644 --- a/src/core/ngx_cpuinfo.c +++ b/src/core/ngx_cpuinfo.c @@ -14,6 +14,39 @@ static ngx_inline void ngx_cpuid(uint32_t i, uint32_t *buf); +#if ( __i386__ ) + +static ngx_inline void +ngx_cpuid(uint32_t i, uint32_t *buf) +{ + + /* + * we could not use %ebx as output parameter if gcc builds PIC, + * and we could not save %ebx on stack, because %esp is used, + * when the -fomit-frame-pointer optimization is specified. + */ + + __asm__ ( + + " mov %%ebx, %%esi; " + + " cpuid; " + " mov %%eax, %0; " + " mov %%ebx, %1; " + " mov %%edx, %2; " + " mov %%ecx, %3; " + + " mov %%esi, %%ebx; " + + : "=m" (buf[0]), "=m" (buf[1]), "=m" (buf[2]), "=m" (buf[3]) + : "a" (i) + : "ecx", "edx", "esi" ); +} + + +#else /* __amd64__ */ + + static ngx_inline void ngx_cpuid(uint32_t i, uint32_t *buf) { @@ -32,6 +65,9 @@ ngx_cpuid(uint32_t i, uint32_t *buf) } +#endif + + /* auto detect the L2 cache line size of modern and widespread CPUs */ void diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c index a795075d0..287777d28 100644 --- a/src/event/ngx_event_accept.c +++ b/src/event/ngx_event_accept.c @@ -59,7 +59,7 @@ ngx_event_accept(ngx_event_t *ev) return; } - ngx_log_error((err == NGX_ECONNABORTED) ? NGX_LOG_CRIT: + ngx_log_error((err == NGX_ECONNABORTED) ? NGX_LOG_ERR: NGX_LOG_ALERT, ev->log, err, "accept() failed"); diff --git a/src/http/modules/perl/nginx.xs b/src/http/modules/perl/nginx.xs index 2d7ede031..4d57bb63e 100644 --- a/src/http/modules/perl/nginx.xs +++ b/src/http/modules/perl/nginx.xs @@ -47,7 +47,9 @@ ngx_http_perl_sv2str(pTHX_ ngx_http_request_t *r, ngx_str_t *s, SV *sv) static ngx_int_t ngx_http_perl_output(ngx_http_request_t *r, ngx_buf_t *b) { - ngx_chain_t *cl, out; + ngx_chain_t out; +#if (NGX_HTTP_SSI) + ngx_chain_t *cl; ngx_http_perl_ctx_t *ctx; ctx = ngx_http_get_module_ctx(r, ngx_http_perl_module); @@ -65,6 +67,7 @@ ngx_http_perl_output(ngx_http_request_t *r, ngx_buf_t *b) return NGX_OK; } +#endif out.buf = b; out.next = NULL; diff --git a/src/http/modules/perl/ngx_http_perl_module.c b/src/http/modules/perl/ngx_http_perl_module.c index 04f778790..069c21646 100644 --- a/src/http/modules/perl/ngx_http_perl_module.c +++ b/src/http/modules/perl/ngx_http_perl_module.c @@ -34,8 +34,11 @@ typedef struct { } ngx_http_perl_variable_t; +#if (NGX_HTTP_SSI) static ngx_int_t ngx_http_perl_ssi(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ssi_ctx, ngx_str_t **params); +#endif + static ngx_int_t ngx_http_perl_get_interpreter(ngx_http_perl_main_conf_t *pmcf, PerlInterpreter **perl, ngx_log_t *log); @@ -142,6 +145,8 @@ ngx_module_t ngx_http_perl_module = { }; +#if (NGX_HTTP_SSI) + #define NGX_HTTP_PERL_SSI_SUB 0 #define NGX_HTTP_PERL_SSI_ARG 1 @@ -152,11 +157,12 @@ static ngx_http_ssi_param_t ngx_http_perl_ssi_params[] = { { ngx_null_string, 0, 0, 0 } }; - static ngx_http_ssi_command_t ngx_http_perl_ssi_command = { ngx_string("perl"), ngx_http_perl_ssi, ngx_http_perl_ssi_params, 0, 1 }; +#endif + static void ngx_http_perl_xs_init(pTHX) @@ -310,6 +316,8 @@ ngx_http_perl_variable(ngx_http_request_t *r, ngx_http_variable_value_t *v, } +#if (NGX_HTTP_SSI) + static ngx_int_t ngx_http_perl_ssi(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ssi_ctx, ngx_str_t **params) @@ -385,6 +393,8 @@ ngx_http_perl_ssi(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ssi_ctx, return rc; } +#endif + static ngx_int_t ngx_http_perl_get_interpreter(ngx_http_perl_main_conf_t *pmcf, @@ -763,6 +773,7 @@ ngx_http_perl_cleanup_perl(void *data) static ngx_int_t ngx_http_perl_preconfiguration(ngx_conf_t *cf) { +#if (NGX_HTTP_SSI) ngx_int_t rc; ngx_http_ssi_main_conf_t *smcf; @@ -780,6 +791,7 @@ ngx_http_perl_preconfiguration(ngx_conf_t *cf) return NGX_ERROR; } +#endif return NGX_OK; } diff --git a/src/http/modules/perl/ngx_http_perl_module.h b/src/http/modules/perl/ngx_http_perl_module.h index 921917bd0..1bc3852e7 100644 --- a/src/http/modules/perl/ngx_http_perl_module.h +++ b/src/http/modules/perl/ngx_http_perl_module.h @@ -26,7 +26,9 @@ typedef struct { ngx_str_t redirect_uri; ngx_str_t redirect_args; +#if (NGX_HTTP_SSI) ngx_http_ssi_ctx_t *ssi; +#endif } ngx_http_perl_ctx_t; |