mirror of
https://github.com/nginx/nginx.git
synced 2025-06-27 17:22:48 +08:00
nginx-0.3.30-RELEASE import
*) 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.
This commit is contained in:
parent
2a74c506c7
commit
cce886c71d
@ -9,6 +9,39 @@
|
|||||||
<title lang="en">nginx changelog</title>
|
<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">
|
<changes ver="0.3.29" date="20.02.2006">
|
||||||
|
|
||||||
<change type="feature">
|
<change type="feature">
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#define _NGINX_H_INCLUDED_
|
#define _NGINX_H_INCLUDED_
|
||||||
|
|
||||||
|
|
||||||
#define NGINX_VER "nginx/0.3.29"
|
#define NGINX_VER "nginx/0.3.30"
|
||||||
|
|
||||||
#define NGINX_VAR "NGINX"
|
#define NGINX_VAR "NGINX"
|
||||||
#define NGX_OLDPID_EXT ".oldbin"
|
#define NGX_OLDPID_EXT ".oldbin"
|
||||||
|
@ -14,6 +14,39 @@
|
|||||||
static ngx_inline void ngx_cpuid(uint32_t i, uint32_t *buf);
|
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
|
static ngx_inline void
|
||||||
ngx_cpuid(uint32_t i, uint32_t *buf)
|
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 */
|
/* auto detect the L2 cache line size of modern and widespread CPUs */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -59,7 +59,7 @@ ngx_event_accept(ngx_event_t *ev)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ngx_log_error((err == NGX_ECONNABORTED) ? NGX_LOG_CRIT:
|
ngx_log_error((err == NGX_ECONNABORTED) ? NGX_LOG_ERR:
|
||||||
NGX_LOG_ALERT,
|
NGX_LOG_ALERT,
|
||||||
ev->log, err, "accept() failed");
|
ev->log, err, "accept() failed");
|
||||||
|
|
||||||
|
@ -47,7 +47,9 @@ ngx_http_perl_sv2str(pTHX_ ngx_http_request_t *r, ngx_str_t *s, SV *sv)
|
|||||||
static ngx_int_t
|
static ngx_int_t
|
||||||
ngx_http_perl_output(ngx_http_request_t *r, ngx_buf_t *b)
|
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;
|
ngx_http_perl_ctx_t *ctx;
|
||||||
|
|
||||||
ctx = ngx_http_get_module_ctx(r, ngx_http_perl_module);
|
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;
|
return NGX_OK;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
out.buf = b;
|
out.buf = b;
|
||||||
out.next = NULL;
|
out.next = NULL;
|
||||||
|
@ -34,8 +34,11 @@ typedef struct {
|
|||||||
} ngx_http_perl_variable_t;
|
} ngx_http_perl_variable_t;
|
||||||
|
|
||||||
|
|
||||||
|
#if (NGX_HTTP_SSI)
|
||||||
static ngx_int_t ngx_http_perl_ssi(ngx_http_request_t *r,
|
static ngx_int_t ngx_http_perl_ssi(ngx_http_request_t *r,
|
||||||
ngx_http_ssi_ctx_t *ssi_ctx, ngx_str_t **params);
|
ngx_http_ssi_ctx_t *ssi_ctx, ngx_str_t **params);
|
||||||
|
#endif
|
||||||
|
|
||||||
static ngx_int_t
|
static ngx_int_t
|
||||||
ngx_http_perl_get_interpreter(ngx_http_perl_main_conf_t *pmcf,
|
ngx_http_perl_get_interpreter(ngx_http_perl_main_conf_t *pmcf,
|
||||||
PerlInterpreter **perl, ngx_log_t *log);
|
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_SUB 0
|
||||||
#define NGX_HTTP_PERL_SSI_ARG 1
|
#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 }
|
{ ngx_null_string, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static ngx_http_ssi_command_t ngx_http_perl_ssi_command = {
|
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
|
ngx_string("perl"), ngx_http_perl_ssi, ngx_http_perl_ssi_params, 0, 1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
ngx_http_perl_xs_init(pTHX)
|
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
|
static ngx_int_t
|
||||||
ngx_http_perl_ssi(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ssi_ctx,
|
ngx_http_perl_ssi(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ssi_ctx,
|
||||||
ngx_str_t **params)
|
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;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static ngx_int_t
|
static ngx_int_t
|
||||||
ngx_http_perl_get_interpreter(ngx_http_perl_main_conf_t *pmcf,
|
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
|
static ngx_int_t
|
||||||
ngx_http_perl_preconfiguration(ngx_conf_t *cf)
|
ngx_http_perl_preconfiguration(ngx_conf_t *cf)
|
||||||
{
|
{
|
||||||
|
#if (NGX_HTTP_SSI)
|
||||||
ngx_int_t rc;
|
ngx_int_t rc;
|
||||||
ngx_http_ssi_main_conf_t *smcf;
|
ngx_http_ssi_main_conf_t *smcf;
|
||||||
|
|
||||||
@ -780,6 +791,7 @@ ngx_http_perl_preconfiguration(ngx_conf_t *cf)
|
|||||||
|
|
||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return NGX_OK;
|
return NGX_OK;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,9 @@ typedef struct {
|
|||||||
ngx_str_t redirect_uri;
|
ngx_str_t redirect_uri;
|
||||||
ngx_str_t redirect_args;
|
ngx_str_t redirect_args;
|
||||||
|
|
||||||
|
#if (NGX_HTTP_SSI)
|
||||||
ngx_http_ssi_ctx_t *ssi;
|
ngx_http_ssi_ctx_t *ssi;
|
||||||
|
#endif
|
||||||
} ngx_http_perl_ctx_t;
|
} ngx_http_perl_ctx_t;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user