<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Nginx Forum - Nginx Development</title>
<description>Nginx development mailing list [read only]</description><link>http://forum.nginx.org/list.php?29</link><lastBuildDate>Wed, 22 May 2013 11:55:27 -0400</lastBuildDate>
<generator>Phorum 5.2.16</generator>
<item>
<guid>http://forum.nginx.org/read.php?29,239405,239405#msg-239405</guid>
<title>[PATCH] Style: cleanup. (1 reply)</title><link>http://forum.nginx.org/read.php?29,239405,239405#msg-239405</link><description><![CDATA[# HG changeset patch<br /># User Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /># Date 1369183181 25200<br /># Node ID 8f2e7bd395bae3c496639ba48d4683b2a6b796d5<br /># Parent 1d68b502088c9d6e6603e9699354e36d03d77f9c<br />Style: cleanup.<br /><br />Remove unnecessary references to HTTP from non-HTTP modules<br />and replace SSL * with ngx_ssl_conn_t.<br /><br />diff -r 1d68b502088c -r 8f2e7bd395ba src/core/ngx_conf_file.h<br />--- a/src/core/ngx_conf_file.h Tue May 21 21:47:50 2013 +0400<br />+++ b/src/core/ngx_conf_file.h Tue May 21 17:39:41 2013 -0700<br />@@ -5,8 +5,8 @@<br />*/<br /><br /><br />-#ifndef _NGX_HTTP_CONF_FILE_H_INCLUDED_<br />-#define _NGX_HTTP_CONF_FILE_H_INCLUDED_<br />+#ifndef _NGX_CONF_FILE_H_INCLUDED_<br />+#define _NGX_CONF_FILE_H_INCLUDED_<br /><br /><br />#include &lt;ngx_config.h&gt;<br />@@ -337,4 +337,4 @@<br />extern ngx_module_t *ngx_modules[];<br /><br /><br />-#endif /* _NGX_HTTP_CONF_FILE_H_INCLUDED_ */<br />+#endif /* _NGX_CONF_FILE_H_INCLUDED_ */<br />diff -r 1d68b502088c -r 8f2e7bd395ba src/event/ngx_event_openssl.c<br />--- a/src/event/ngx_event_openssl.c Tue May 21 21:47:50 2013 +0400<br />+++ b/src/event/ngx_event_openssl.c Tue May 21 17:39:41 2013 -0700<br />@@ -15,7 +15,7 @@<br />} ngx_openssl_conf_t;<br /><br /><br />-static int ngx_http_ssl_verify_callback(int ok, X509_STORE_CTX *x509_store);<br />+static int ngx_ssl_verify_callback(int ok, X509_STORE_CTX *x509_store);<br />static void ngx_ssl_info_callback(const ngx_ssl_conn_t *ssl_conn, int where,<br />int ret);<br />static void ngx_ssl_handshake_handler(ngx_event_t *ev);<br />@@ -342,7 +342,7 @@<br />{<br />STACK_OF(X509_NAME) *list;<br /><br />- SSL_CTX_set_verify(ssl-&gt;ctx, SSL_VERIFY_PEER,<br />ngx_http_ssl_verify_callback);<br />+ SSL_CTX_set_verify(ssl-&gt;ctx, SSL_VERIFY_PEER, ngx_ssl_verify_callback);<br /><br />SSL_CTX_set_verify_depth(ssl-&gt;ctx, depth);<br /><br />@@ -457,7 +457,7 @@<br /><br /><br />static int<br />-ngx_http_ssl_verify_callback(int ok, X509_STORE_CTX *x509_store)<br />+ngx_ssl_verify_callback(int ok, X509_STORE_CTX *x509_store)<br />{<br />#if (NGX_DEBUG)<br />char *subject, *issuer;<br />@@ -517,7 +517,7 @@<br /><br /><br />RSA *<br />-ngx_ssl_rsa512_key_callback(SSL *ssl, int is_export, int key_length)<br />+ngx_ssl_rsa512_key_callback(ngx_ssl_conn_t *ssl, int is_export, int key_length)<br />{<br />static RSA *key;<br /><br />diff -r 1d68b502088c -r 8f2e7bd395ba src/event/ngx_event_openssl.h<br />--- a/src/event/ngx_event_openssl.h Tue May 21 21:47:50 2013 +0400<br />+++ b/src/event/ngx_event_openssl.h Tue May 21 17:39:41 2013 -0700<br />@@ -109,7 +109,8 @@<br />ngx_str_t *file, ngx_str_t *responder, ngx_uint_t verify);<br />ngx_int_t ngx_ssl_stapling_resolver(ngx_conf_t *cf, ngx_ssl_t *ssl,<br />ngx_resolver_t *resolver, ngx_msec_t resolver_timeout);<br />-RSA *ngx_ssl_rsa512_key_callback(SSL *ssl, int is_export, int key_length);<br />+RSA *ngx_ssl_rsa512_key_callback(ngx_ssl_conn_t *ssl, int is_export,<br />+ int key_length);<br />ngx_int_t ngx_ssl_dhparam(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *file);<br />ngx_int_t ngx_ssl_ecdh_curve(ngx_conf_t *cf, ngx_ssl_t *ssl, ngx_str_t *name);<br />ngx_int_t ngx_ssl_session_cache(ngx_ssl_t *ssl, ngx_str_t *sess_ctx,<br />diff -r 1d68b502088c -r 8f2e7bd395ba src/mail/ngx_mail_ssl_module.c<br />--- a/src/mail/ngx_mail_ssl_module.c Tue May 21 21:47:50 2013 +0400<br />+++ b/src/mail/ngx_mail_ssl_module.c Tue May 21 17:39:41 2013 -0700<br />@@ -25,7 +25,7 @@<br />void *conf);<br /><br /><br />-static ngx_conf_enum_t ngx_http_starttls_state[] = {<br />+static ngx_conf_enum_t ngx_mail_starttls_state[] = {<br />{ ngx_string(&quot;off&quot;), NGX_MAIL_STARTTLS_OFF },<br />{ ngx_string(&quot;on&quot;), NGX_MAIL_STARTTLS_ON },<br />{ ngx_string(&quot;only&quot;), NGX_MAIL_STARTTLS_ONLY },<br />@@ -58,7 +58,7 @@<br />ngx_mail_ssl_starttls,<br />NGX_MAIL_SRV_CONF_OFFSET,<br />offsetof(ngx_mail_ssl_conf_t, starttls),<br />- ngx_http_starttls_state },<br />+ ngx_mail_starttls_state },<br /><br />{ ngx_string(&quot;ssl_certificate&quot;),<br />NGX_MAIL_MAIN_CONF|NGX_MAIL_SRV_CONF|NGX_CONF_TAKE1,<br />diff -r 1d68b502088c -r 8f2e7bd395ba src/os/unix/ngx_linux_sendfile_chain.c<br />--- a/src/os/unix/ngx_linux_sendfile_chain.c Tue May 21 21:47:50 2013 +0400<br />+++ b/src/os/unix/ngx_linux_sendfile_chain.c Tue May 21 17:39:41 2013 -0700<br />@@ -181,7 +181,7 @@<br />} else {<br />c-&gt;tcp_nodelay = NGX_TCP_NODELAY_UNSET;<br /><br />- ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c-&gt;log, 0,<br />+ ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c-&gt;log, 0,<br />&quot;no tcp_nodelay&quot;);<br />}<br />}<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Piotr Sikora</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 21:52:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239402,239402#msg-239402</guid>
<title>[PATCH] Making $invalid_referer accessible in Perl (and Lua) (no replies)</title><link>http://forum.nginx.org/read.php?29,239402,239402#msg-239402</link><description><![CDATA[Hello!<br /><br />The $invalid_referer variable is always created with the<br />NGX_HTTP_VAR_NOHASH flag in ngx_http_referer_module, which<br />unfortunately prohibits its use in embedded dynamic languages like<br />Perl and Lua (through the ngx_http_get_variable function).<br /><br />Below attaches a patch that removes this flag.<br /><br />This issue was originally reported by Fry-kun.<br /><br />Thanks!<br />-agentzh<br /><br />--- nginx-1.5.0/src/http/modules/ngx_http_referer_module.c 2013-05-06<br />03:27:10.000000000 -0700<br />+++ nginx-1.5.0-patched/src/http/modules/ngx_http_referer_module.c<br />2013-05-21 16:04:49.340286168 -0700<br />@@ -396,8 +396,7 @@ ngx_http_valid_referers(ngx_conf_t *cf,<br /><br />ngx_str_set(&amp;name, &quot;invalid_referer&quot;);<br /><br />- var = ngx_http_add_variable(cf, &amp;name,<br />- NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOHASH);<br />+ var = ngx_http_add_variable(cf, &amp;name, NGX_HTTP_VAR_CHANGEABLE);<br />if (var == NULL) {<br />return NGX_CONF_ERROR;<br />}<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>agentzh</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 19:30:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239401,239401#msg-239401</guid>
<title>[PATCH] SNI: add $ssl_servername variable. (no replies)</title><link>http://forum.nginx.org/read.php?29,239401,239401#msg-239401</link><description><![CDATA[# HG changeset patch<br /># User Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /># Date 1369177341 25200<br /># Node ID 4d617cb445673c8e3c43d75c240a7d401b394ee8<br /># Parent 8646199ded31a725bea599aeafc581f9c969872d<br />SNI: add $ssl_servername variable.<br /><br />Signed-off-by: Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /><br />diff -r 8646199ded31 -r 4d617cb44567 src/event/ngx_event_openssl.c<br />--- a/src/event/ngx_event_openssl.c Tue May 21 16:02:10 2013 -0700<br />+++ b/src/event/ngx_event_openssl.c Tue May 21 16:02:21 2013 -0700<br />@@ -2221,6 +2221,21 @@<br /><br /><br />ngx_int_t<br />+ngx_ssl_get_servername(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s)<br />+{<br />+#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME<br />+ if (c-&gt;ssl-&gt;servername) {<br />+ *s = *c-&gt;ssl-&gt;servername;<br />+ return NGX_OK;<br />+ }<br />+#endif<br />+<br />+ s-&gt;len = 0;<br />+ return NGX_OK;<br />+}<br />+<br />+<br />+ngx_int_t<br />ngx_ssl_get_session_id(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s)<br />{<br />int len;<br />diff -r 8646199ded31 -r 4d617cb44567 src/event/ngx_event_openssl.h<br />--- a/src/event/ngx_event_openssl.h Tue May 21 16:02:10 2013 -0700<br />+++ b/src/event/ngx_event_openssl.h Tue May 21 16:02:21 2013 -0700<br />@@ -146,6 +146,8 @@<br />ngx_str_t *s);<br />ngx_int_t ngx_ssl_get_cipher_name(ngx_connection_t *c, ngx_pool_t *pool,<br />ngx_str_t *s);<br />+ngx_int_t ngx_ssl_get_servername(ngx_connection_t *c, ngx_pool_t *pool,<br />+ ngx_str_t *s);<br />ngx_int_t ngx_ssl_get_session_id(ngx_connection_t *c, ngx_pool_t *pool,<br />ngx_str_t *s);<br />ngx_int_t ngx_ssl_get_raw_certificate(ngx_connection_t *c, ngx_pool_t *pool,<br />diff -r 8646199ded31 -r 4d617cb44567 src/http/modules/ngx_http_ssl_module.c<br />--- a/src/http/modules/ngx_http_ssl_module.c Tue May 21 16:02:10 2013 -0700<br />+++ b/src/http/modules/ngx_http_ssl_module.c Tue May 21 16:02:21 2013 -0700<br />@@ -238,6 +238,9 @@<br />{ ngx_string(&quot;ssl_cipher&quot;), NULL, ngx_http_ssl_static_variable,<br />(uintptr_t) ngx_ssl_get_cipher_name, NGX_HTTP_VAR_CHANGEABLE, 0 },<br /><br />+ { ngx_string(&quot;ssl_servername&quot;), NULL, ngx_http_ssl_variable,<br />+ (uintptr_t) ngx_ssl_get_servername, NGX_HTTP_VAR_CHANGEABLE, 0 },<br />+<br />{ ngx_string(&quot;ssl_session_id&quot;), NULL, ngx_http_ssl_variable,<br />(uintptr_t) ngx_ssl_get_session_id, NGX_HTTP_VAR_CHANGEABLE, 0 },<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Piotr Sikora</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 19:14:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239400,239400#msg-239400</guid>
<title>[PATCH] SNI: store server name in the ngx_ssl_connection_t structure. (no replies)</title><link>http://forum.nginx.org/read.php?29,239400,239400#msg-239400</link><description><![CDATA[# HG changeset patch<br /># User Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /># Date 1369177330 25200<br /># Node ID 8646199ded31a725bea599aeafc581f9c969872d<br /># Parent 4b277448dfd56751c7c88477e78b2ba3cf6ae472<br />SNI: store server name in the ngx_ssl_connection_t structure.<br /><br />SNI server name is a property of the SSL connection and there is<br />no good reason to store it elsewhere.<br /><br />Also, this makes the stored value accessible by non-HTTP modules.<br /><br />Signed-off-by: Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /><br />diff -r 4b277448dfd5 -r 8646199ded31 src/event/ngx_event_openssl.h<br />--- a/src/event/ngx_event_openssl.h Tue May 21 16:01:59 2013 -0700<br />+++ b/src/event/ngx_event_openssl.h Tue May 21 16:02:10 2013 -0700<br />@@ -43,6 +43,13 @@<br />ngx_event_handler_pt saved_read_handler;<br />ngx_event_handler_pt saved_write_handler;<br /><br />+#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME<br />+ ngx_str_t *servername;<br />+#if (NGX_PCRE)<br />+ void *servername_regex;<br />+#endif<br />+#endif<br />+<br />unsigned handshaked:1;<br />unsigned renegotiation:1;<br />unsigned buffer:1;<br />diff -r 4b277448dfd5 -r 8646199ded31 src/http/ngx_http_request.c<br />--- a/src/http/ngx_http_request.c Tue May 21 16:01:59 2013 -0700<br />+++ b/src/http/ngx_http_request.c Tue May 21 16:02:10 2013 -0700<br />@@ -807,12 +807,12 @@<br />return SSL_TLSEXT_ERR_NOACK;<br />}<br /><br />- hc-&gt;ssl_servername = ngx_palloc(c-&gt;pool, sizeof(ngx_str_t));<br />- if (hc-&gt;ssl_servername == NULL) {<br />+ c-&gt;ssl-&gt;servername = ngx_palloc(c-&gt;pool, sizeof(ngx_str_t));<br />+ if (c-&gt;ssl-&gt;servername == NULL) {<br />return SSL_TLSEXT_ERR_NOACK;<br />}<br /><br />- *hc-&gt;ssl_servername = host;<br />+ *c-&gt;ssl-&gt;servername = host;<br /><br />if (rc == NGX_DECLINED || hc-&gt;conf_ctx == cscf-&gt;ctx) {<br />return SSL_TLSEXT_ERR_OK;<br />@@ -1954,23 +1954,24 @@<br />ngx_http_set_virtual_server(ngx_http_request_t *r, ngx_str_t *host)<br />{<br />ngx_int_t rc;<br />+ ngx_connection_t *c;<br />ngx_http_connection_t *hc;<br />ngx_http_core_loc_conf_t *clcf;<br />ngx_http_core_srv_conf_t *cscf;<br /><br />- hc = r-&gt;http_connection;<br />+ c = r-&gt;connection;<br /><br />#if (NGX_HTTP_SSL &amp;&amp; defined SSL_CTRL_SET_TLSEXT_HOSTNAME)<br /><br />- if (hc-&gt;ssl_servername) {<br />- if (hc-&gt;ssl_servername-&gt;len == host-&gt;len<br />- &amp;&amp; ngx_strncmp(hc-&gt;ssl_servername-&gt;data,<br />+ if (c-&gt;ssl &amp;&amp; c-&gt;ssl-&gt;servername) {<br />+ if (c-&gt;ssl-&gt;servername-&gt;len == host-&gt;len<br />+ &amp;&amp; ngx_strncmp(c-&gt;ssl-&gt;servername-&gt;data,<br />host-&gt;data, host-&gt;len) == 0)<br />{<br />#if (NGX_PCRE)<br />- if (hc-&gt;ssl_servername_regex<br />- &amp;&amp; ngx_http_regex_exec(r, hc-&gt;ssl_servername_regex,<br />- hc-&gt;ssl_servername) != NGX_OK)<br />+ if (c-&gt;ssl-&gt;servername_regex<br />+ &amp;&amp; ngx_http_regex_exec(r, c-&gt;ssl-&gt;servername_regex,<br />+ c-&gt;ssl-&gt;servername) != NGX_OK)<br />{<br />ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);<br />return NGX_ERROR;<br />@@ -1982,8 +1983,9 @@<br /><br />#endif<br /><br />- rc = ngx_http_find_virtual_server(r-&gt;connection,<br />- hc-&gt;addr_conf-&gt;virtual_names,<br />+ hc = r-&gt;http_connection;<br />+<br />+ rc = ngx_http_find_virtual_server(c, hc-&gt;addr_conf-&gt;virtual_names,<br />host, r, &amp;cscf);<br /><br />if (rc == NGX_ERROR) {<br />@@ -1993,7 +1995,7 @@<br /><br />#if (NGX_HTTP_SSL &amp;&amp; defined SSL_CTRL_SET_TLSEXT_HOSTNAME)<br /><br />- if (hc-&gt;ssl_servername) {<br />+ if (c-&gt;ssl &amp;&amp; c-&gt;ssl-&gt;servername) {<br />ngx_http_ssl_srv_conf_t *sscf;<br /><br />if (rc == NGX_DECLINED) {<br />@@ -2004,7 +2006,7 @@<br />sscf = ngx_http_get_module_srv_conf(cscf-&gt;ctx, ngx_http_ssl_module);<br /><br />if (sscf-&gt;verify) {<br />- ngx_log_error(NGX_LOG_INFO, r-&gt;connection-&gt;log, 0,<br />+ ngx_log_error(NGX_LOG_INFO, c-&gt;log, 0,<br />&quot;client attempted to request the server name &quot;<br />&quot;different from that one was negotiated&quot;);<br />ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);<br />@@ -2023,7 +2025,7 @@<br /><br />clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);<br /><br />- ngx_http_set_connection_log(r-&gt;connection, clcf-&gt;error_log);<br />+ ngx_http_set_connection_log(c, clcf-&gt;error_log);<br /><br />return NGX_OK;<br />}<br />@@ -2060,8 +2062,7 @@<br /><br />#if (NGX_HTTP_SSL &amp;&amp; defined SSL_CTRL_SET_TLSEXT_HOSTNAME)<br /><br />- if (r == NULL) {<br />- ngx_http_connection_t *hc;<br />+ if (r == NULL &amp;&amp; c-&gt;ssl) {<br /><br />for (i = 0; i &lt; virtual_names-&gt;nregex; i++) {<br /><br />@@ -2072,8 +2073,7 @@<br />}<br /><br />if (n &gt;= 0) {<br />- hc = c-&gt;data;<br />- hc-&gt;ssl_servername_regex = sn[i].regex;<br />+ c-&gt;ssl-&gt;servername_regex = sn[i].regex;<br /><br />*cscfp = sn[i].server;<br />return NGX_OK;<br />diff -r 4b277448dfd5 -r 8646199ded31 src/http/ngx_http_request.h<br />--- a/src/http/ngx_http_request.h Tue May 21 16:01:59 2013 -0700<br />+++ b/src/http/ngx_http_request.h Tue May 21 16:02:10 2013 -0700<br />@@ -295,13 +295,6 @@<br />ngx_http_addr_conf_t *addr_conf;<br />ngx_http_conf_ctx_t *conf_ctx;<br /><br />-#if (NGX_HTTP_SSL &amp;&amp; defined SSL_CTRL_SET_TLSEXT_HOSTNAME)<br />- ngx_str_t *ssl_servername;<br />-#if (NGX_PCRE)<br />- ngx_http_regex_t *ssl_servername_regex;<br />-#endif<br />-#endif<br />-<br />ngx_buf_t **busy;<br />ngx_int_t nbusy;<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Piotr Sikora</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 19:14:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239399,239399#msg-239399</guid>
<title>[PATCH] SNI: better server name handling. (no replies)</title><link>http://forum.nginx.org/read.php?29,239399,239399#msg-239399</link><description><![CDATA[# HG changeset patch<br /># User Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /># Date 1369177319 25200<br /># Node ID 4b277448dfd56751c7c88477e78b2ba3cf6ae472<br /># Parent 1d68b502088c9d6e6603e9699354e36d03d77f9c<br />SNI: better server name handling.<br /><br />Acknowledge acceptance of SNI server name to the OpenSSL library,<br />which in turn lets the client know that it was accepted (by sending<br />&quot;server_name&quot; TLS extension in the &quot;ServerHello&quot; handshake message,<br />as suggested by RFC4366).<br /><br />Previously, this would happen only in case when requested server name<br />was on the &quot;server_name&quot; list and either: there were multiple virtual<br />servers defined for the same listening port or there was at least one<br />regular expression with captures in the &quot;server_name&quot; directive.<br /><br />As a consequence, this change also:<br />1. Preserves requested SNI server name for future use.<br />2. Avoids unnecessary setting of SSL options if the virtual server<br />didn't change.<br />3. Avoids unnecessary lookup of virtual server later on if requested<br />HTTP server name is the same as requested SNI server name.<br /><br />Signed-off-by: Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /><br />diff -r 1d68b502088c -r 4b277448dfd5 src/http/ngx_http_request.c<br />--- a/src/http/ngx_http_request.c Tue May 21 21:47:50 2013 +0400<br />+++ b/src/http/ngx_http_request.c Tue May 21 16:01:59 2013 -0700<br />@@ -773,6 +773,7 @@<br />ngx_http_ssl_srv_conf_t *sscf;<br />ngx_http_core_loc_conf_t *clcf;<br />ngx_http_core_srv_conf_t *cscf;<br />+ ngx_int_t rc;<br /><br />servername = SSL_get_servername(ssl_conn, TLSEXT_NAMETYPE_host_name);<br /><br />@@ -799,10 +800,10 @@<br /><br />hc = c-&gt;data;<br /><br />- if (ngx_http_find_virtual_server(c, hc-&gt;addr_conf-&gt;virtual_names, &amp;host,<br />- NULL, &amp;cscf)<br />- != NGX_OK)<br />- {<br />+ rc = ngx_http_find_virtual_server(c, hc-&gt;addr_conf-&gt;virtual_names, &amp;host,<br />+ NULL, &amp;cscf);<br />+<br />+ if (rc == NGX_ERROR) {<br />return SSL_TLSEXT_ERR_NOACK;<br />}<br /><br />@@ -813,6 +814,10 @@<br /><br />*hc-&gt;ssl_servername = host;<br /><br />+ if (rc == NGX_DECLINED || hc-&gt;conf_ctx == cscf-&gt;ctx) {<br />+ return SSL_TLSEXT_ERR_OK;<br />+ }<br />+<br />hc-&gt;conf_ctx = cscf-&gt;ctx;<br /><br />clcf = ngx_http_get_module_loc_conf(hc-&gt;conf_ctx, ngx_http_core_module);<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Piotr Sikora</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 19:12:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239397,239397#msg-239397</guid>
<title>HttpAccessModule and unix domain sockets (1 reply)</title><link>http://forum.nginx.org/read.php?29,239397,239397#msg-239397</link><description><![CDATA[Hi all,<br /><br />It seems that when using HttpAccessModule directives to deny requests, they<br />don't seem to work if the server is listening on a unix domain socket. Even<br />when using deny all.<br />Can someone confirm and it's not just me making some stupid mistake ?<br /><br />Now if that is the case, would it be a good idea to add this functionality<br />to the module ? Maybe add a new parameter like &quot;deny unix&quot; or something ?<br />Or was this left out on purpose for a reason or another ?<br /><br />Thank you.<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Sorin Manole</dc:creator>
<category>Nginx Development</category><pubDate>Wed, 22 May 2013 09:50:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239395,239395#msg-239395</guid>
<title>[nginx] Upstream: fixed fail_timeout and max_fails &gt; 1. (no replies)</title><link>http://forum.nginx.org/read.php?29,239395,239395#msg-239395</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/1d68b502088c<br />branches:<br />changeset: 5220:1d68b502088c<br />user: Maxim Dounin &lt;mdounin@mdounin.ru&gt;<br />date: Tue May 21 21:47:50 2013 +0400<br />description:<br />Upstream: fixed fail_timeout and max_fails &gt; 1.<br /><br />Due to peer-&gt;checked always set since rev. c90801720a0c (1.3.0)<br />by round-robin and least_conn balancers (ip_hash not affected),<br />the code in ngx_http_upstream_free_round_robin_peer() function<br />incorrectly reset peer-&gt;fails too often.<br /><br />Reported by Dmitry Popov,<br />http://mailman.nginx.org/pipermail/nginx-devel/2013-May/003720.html<br /><br />diffstat:<br /><br />src/http/modules/ngx_http_upstream_least_conn_module.c | 5 ++++-<br />src/http/ngx_http_upstream_round_robin.c | 5 ++++-<br />2 files changed, 8 insertions(+), 2 deletions(-)<br /><br />diffs (30 lines):<br /><br />diff --git a/src/http/modules/ngx_http_upstream_least_conn_module.c b/src/http/modules/ngx_http_upstream_least_conn_module.c<br />--- a/src/http/modules/ngx_http_upstream_least_conn_module.c<br />+++ b/src/http/modules/ngx_http_upstream_least_conn_module.c<br />@@ -282,7 +282,10 @@ ngx_http_upstream_get_least_conn_peer(ng<br />}<br /><br />best-&gt;current_weight -= total;<br />- best-&gt;checked = now;<br />+<br />+ if (now - best-&gt;checked &gt; best-&gt;fail_timeout) {<br />+ best-&gt;checked = now;<br />+ }<br /><br />pc-&gt;sockaddr = best-&gt;sockaddr;<br />pc-&gt;socklen = best-&gt;socklen;<br />diff --git a/src/http/ngx_http_upstream_round_robin.c b/src/http/ngx_http_upstream_round_robin.c<br />--- a/src/http/ngx_http_upstream_round_robin.c<br />+++ b/src/http/ngx_http_upstream_round_robin.c<br />@@ -523,7 +523,10 @@ ngx_http_upstream_get_peer(ngx_http_upst<br />rrp-&gt;tried[n] |= m;<br /><br />best-&gt;current_weight -= total;<br />- best-&gt;checked = now;<br />+<br />+ if (now - best-&gt;checked &gt; best-&gt;fail_timeout) {<br />+ best-&gt;checked = now;<br />+ }<br /><br />return best;<br />}<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Maxim Dounin</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 14:54:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239394,239394#msg-239394</guid>
<title>[nginx] Mail: missing ngx_ssl_ecdh_curve() call. (no replies)</title><link>http://forum.nginx.org/read.php?29,239394,239394#msg-239394</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/32fe021911c9<br />branches:<br />changeset: 5219:32fe021911c9<br />user: F. da Silva &lt;fdasilvayy@gmail.com&gt;<br />date: Fri May 10 16:53:45 2013 +0200<br />description:<br />Mail: missing ngx_ssl_ecdh_curve() call.<br /><br />diffstat:<br /><br />src/mail/ngx_mail_ssl_module.c | 4 ++++<br />1 files changed, 4 insertions(+), 0 deletions(-)<br /><br />diffs (14 lines):<br /><br />diff --git a/src/mail/ngx_mail_ssl_module.c b/src/mail/ngx_mail_ssl_module.c<br />--- a/src/mail/ngx_mail_ssl_module.c<br />+++ b/src/mail/ngx_mail_ssl_module.c<br />@@ -308,6 +308,10 @@ ngx_mail_ssl_merge_conf(ngx_conf_t *cf,<br />return NGX_CONF_ERROR;<br />}<br /><br />+ if (ngx_ssl_ecdh_curve(cf, &amp;conf-&gt;ssl, &amp;conf-&gt;ecdh_curve) != NGX_OK) {<br />+ return NGX_CONF_ERROR;<br />+ }<br />+<br />ngx_conf_merge_value(conf-&gt;builtin_session_cache,<br />prev-&gt;builtin_session_cache, NGX_SSL_NONE_SCACHE);<br /><br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Maxim Dounin</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 14:54:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239388,239388#msg-239388</guid>
<title>[nginx] Fixed error logging. (no replies)</title><link>http://forum.nginx.org/read.php?29,239388,239388#msg-239388</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/f026adb935ad<br />branches:<br />changeset: 5218:f026adb935ad<br />user: Sergey Kandaurov &lt;pluknet@nginx.com&gt;<br />date: Tue May 21 17:30:19 2013 +0400<br />description:<br />Fixed error logging.<br /><br />The provided argument list didn't follow a used format string.<br /><br />diffstat:<br /><br />src/http/modules/ngx_http_autoindex_module.c | 2 +-<br />src/http/ngx_http_postpone_filter_module.c | 6 ++----<br />2 files changed, 3 insertions(+), 5 deletions(-)<br /><br />diffs (35 lines):<br /><br />diff -r ddba4e308ecc -r f026adb935ad src/http/modules/ngx_http_autoindex_module.c<br />--- a/src/http/modules/ngx_http_autoindex_module.c Tue May 21 12:54:27 2013 +0400<br />+++ b/src/http/modules/ngx_http_autoindex_module.c Tue May 21 17:30:19 2013 +0400<br />@@ -357,7 +357,7 @@ ngx_http_autoindex_handler(ngx_http_requ<br /><br />if (ngx_close_dir(&amp;dir) == NGX_ERROR) {<br />ngx_log_error(NGX_LOG_ALERT, r-&gt;connection-&gt;log, ngx_errno,<br />- ngx_close_dir_n &quot; \&quot;%s\&quot; failed&quot;, &amp;path);<br />+ ngx_close_dir_n &quot; \&quot;%V\&quot; failed&quot;, &amp;path);<br />}<br /><br />escape_html = ngx_escape_html(NULL, r-&gt;uri.data, r-&gt;uri.len);<br />diff -r ddba4e308ecc -r f026adb935ad src/http/ngx_http_postpone_filter_module.c<br />--- a/src/http/ngx_http_postpone_filter_module.c Tue May 21 12:54:27 2013 +0400<br />+++ b/src/http/ngx_http_postpone_filter_module.c Tue May 21 17:30:19 2013 +0400<br />@@ -70,8 +70,7 @@ ngx_http_postpone_filter(ngx_http_reques<br />#if 0<br />/* TODO: SSI may pass NULL */<br />ngx_log_error(NGX_LOG_ALERT, c-&gt;log, 0,<br />- &quot;http postpone filter NULL inactive request&quot;,<br />- &amp;r-&gt;uri, &amp;r-&gt;args);<br />+ &quot;http postpone filter NULL inactive request&quot;);<br />#endif<br /><br />return NGX_OK;<br />@@ -108,8 +107,7 @@ ngx_http_postpone_filter(ngx_http_reques<br /><br />if (pr-&gt;out == NULL) {<br />ngx_log_error(NGX_LOG_ALERT, c-&gt;log, 0,<br />- &quot;http postpone filter NULL output&quot;,<br />- &amp;r-&gt;uri, &amp;r-&gt;args);<br />+ &quot;http postpone filter NULL output&quot;);<br /><br />} else {<br />ngx_log_debug2(NGX_LOG_DEBUG_HTTP, c-&gt;log, 0,<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Sergey Kandaurov</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 09:36:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239377,239377#msg-239377</guid>
<title>[nginx] Upstream: slightly optimized ngx_http_upstream_process_h... (no replies)</title><link>http://forum.nginx.org/read.php?29,239377,239377#msg-239377</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/ddba4e308ecc<br />branches:<br />changeset: 5217:ddba4e308ecc<br />user: Ruslan Ermilov &lt;ru@nginx.com&gt;<br />date: Tue May 21 12:54:27 2013 +0400<br />description:<br />Upstream: slightly optimized ngx_http_upstream_process_header().<br /><br />diffstat:<br /><br />src/http/ngx_http_upstream.c | 10 +++++-----<br />1 files changed, 5 insertions(+), 5 deletions(-)<br /><br />diffs (20 lines):<br /><br />diff -r 4a40163772a1 -r ddba4e308ecc src/http/ngx_http_upstream.c<br />--- a/src/http/ngx_http_upstream.c Tue May 21 12:54:26 2013 +0400<br />+++ b/src/http/ngx_http_upstream.c Tue May 21 12:54:27 2013 +0400<br />@@ -1709,11 +1709,11 @@ ngx_http_upstream_process_header(ngx_htt<br />ngx_http_upstream_finalize_request(r, u, NGX_ERROR);<br />return;<br />}<br />-<br />- if (u-&gt;length == 0) {<br />- ngx_http_upstream_finalize_request(r, u, 0);<br />- return;<br />- }<br />+ }<br />+<br />+ if (u-&gt;length == 0) {<br />+ ngx_http_upstream_finalize_request(r, u, 0);<br />+ return;<br />}<br /><br />u-&gt;read_event_handler = ngx_http_upstream_process_body_in_memory;<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Ruslan Ermilov</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 05:00:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239376,239376#msg-239376</guid>
<title>[nginx] Upstream: made the assignment more obvious. (no replies)</title><link>http://forum.nginx.org/read.php?29,239376,239376#msg-239376</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/4a40163772a1<br />branches:<br />changeset: 5216:4a40163772a1<br />user: Ruslan Ermilov &lt;ru@nginx.com&gt;<br />date: Tue May 21 12:54:26 2013 +0400<br />description:<br />Upstream: made the assignment more obvious.<br /><br />No functional changes.<br /><br />diffstat:<br /><br />src/http/ngx_http_upstream.c | 2 +-<br />1 files changed, 1 insertions(+), 1 deletions(-)<br /><br />diffs (12 lines):<br /><br />diff -r cfab1e7e4ac2 -r 4a40163772a1 src/http/ngx_http_upstream.c<br />--- a/src/http/ngx_http_upstream.c Thu May 16 15:37:13 2013 -0700<br />+++ b/src/http/ngx_http_upstream.c Tue May 21 12:54:26 2013 +0400<br />@@ -1701,7 +1701,7 @@ ngx_http_upstream_process_header(ngx_htt<br />n = u-&gt;buffer.last - u-&gt;buffer.pos;<br /><br />if (n) {<br />- u-&gt;buffer.last -= n;<br />+ u-&gt;buffer.last = u-&gt;buffer.pos;<br /><br />u-&gt;state-&gt;response_length += n;<br /><br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Ruslan Ermilov</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 05:00:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239369,239369#msg-239369</guid>
<title>unsubscribe (no replies)</title><link>http://forum.nginx.org/read.php?29,239369,239369#msg-239369</link><description><![CDATA[unsubscribe<br /><br /><br /><br /><br />靳春孟<br />---------------------------------------------------------------------------------------------------<br />Confidentiality Notice: The information contained in this e-mail and any accompanying attachment(s)<br />is intended only for the use of the intended recipient and may be confidential and/or privileged of<br />Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of this communication is<br />not the intended recipient, unauthorized use, forwarding, printing, storing, disclosure or copying<br />is strictly prohibited, and may be unlawful.If you have received this communication in error,please<br />immediately notify the sender by return e-mail, and delete the original message and all copies from<br />your system. Thank you.<br />---------------------------------------------------------------------------------------------------<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>靳春孟</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 01:16:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239368,239368#msg-239368</guid>
<title>unsubscribe (no replies)</title><link>http://forum.nginx.org/read.php?29,239368,239368#msg-239368</link><description><![CDATA[unsubscribe<br />---------------------------------------------------------------------------------------------------<br />Confidentiality Notice: The information contained in this e-mail and any accompanying attachment(s)<br />is intended only for the use of the intended recipient and may be confidential and/or privileged of<br />Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of this communication is<br />not the intended recipient, unauthorized use, forwarding, printing, storing, disclosure or copying<br />is strictly prohibited, and may be unlawful.If you have received this communication in error,please<br />immediately notify the sender by return e-mail, and delete the original message and all copies from<br />your system. Thank you.<br />---------------------------------------------------------------------------------------------------<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>靳春孟</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 01:14:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239366,239366#msg-239366</guid>
<title>[PATCH] New variable: $ssl_sni_host (no replies)</title><link>http://forum.nginx.org/read.php?29,239366,239366#msg-239366</link><description><![CDATA[Patch attached adds a new variable, $ssl_sni_host.<br /><br />I would find this quite useful as there is no other way of knowing for sure<br />which host a request is directed at (at the SSL layer), as the HTTP HOST header<br />can be wrong.<br /><br />Possibly somewhat related to: http://trac.nginx.org/nginx/ticket/229<br /><br />I should mention that I don't intend for this to be a drop in replacement for<br />$http_host, though that could very well work with proxy_pass.<br /># HG changeset patch<br /># User Christian Marie &lt;pingu@anchor.net.au&gt;<br /># Date 1369104447 -36000<br /># Tue May 21 12:47:27 2013 +1000<br /># Node ID aad7765348785a6e3958ea7594dc77e67a1119f5<br /># Parent cfab1e7e4ac2f0d17199ee1d49ac4647b63746d3<br />Add new $ssl_sni_host ngx_http_ssl_variable.<br /><br />Useful when using SNI and multiple vhosts or proxy backends, as $http_host can<br />be entirely arbitrary.<br /><br />diff -r cfab1e7e4ac2 -r aad776534878 src/event/ngx_event_openssl.c<br />--- a/src/event/ngx_event_openssl.c Thu May 16 15:37:13 2013 -0700<br />+++ b/src/event/ngx_event_openssl.c Tue May 21 12:47:27 2013 +1000<br />@@ -2496,6 +2496,33 @@<br />}<br /><br /><br />+#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME<br />+ngx_int_t<br />+ngx_ssl_get_sni_host(ngx_connection_t *c, ngx_pool_t *pool, ngx_str_t *s)<br />+{<br />+ const char *host;<br />+<br />+ host = SSL_get_servername(c-&gt;ssl-&gt;connection, TLSEXT_NAMETYPE_host_name);<br />+ if (host == NULL) {<br />+ return NGX_ERROR;<br />+ }<br />+<br />+ s-&gt;len = ngx_strlen(host);<br />+ if (s-&gt;len == 0) {<br />+ return NGX_ERROR;<br />+ }<br />+<br />+ s-&gt;data = ngx_pnalloc(pool, s-&gt;len);<br />+ if(s-&gt;data == NULL) {<br />+ return NGX_ERROR;<br />+ }<br />+<br />+ ngx_memcpy(s-&gt;data, host, s-&gt;len);<br />+ return NGX_OK;<br />+}<br />+#endif<br />+<br />+<br />static void *<br />ngx_openssl_create_conf(ngx_cycle_t *cycle)<br />{<br />diff -r cfab1e7e4ac2 -r aad776534878 src/event/ngx_event_openssl.h<br />--- a/src/event/ngx_event_openssl.h Thu May 16 15:37:13 2013 -0700<br />+++ b/src/event/ngx_event_openssl.h Tue May 21 12:47:27 2013 +1000<br />@@ -153,6 +153,10 @@<br />ngx_str_t *s);<br />ngx_int_t ngx_ssl_get_client_verify(ngx_connection_t *c, ngx_pool_t *pool,<br />ngx_str_t *s);<br />+#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME<br />+ngx_int_t ngx_ssl_get_sni_host(ngx_connection_t *c, ngx_pool_t *pool,<br />+ ngx_str_t *s);<br />+#endif<br /><br /><br />ngx_int_t ngx_ssl_handshake(ngx_connection_t *c);<br />diff -r cfab1e7e4ac2 -r aad776534878 src/http/modules/ngx_http_ssl_module.c<br />--- a/src/http/modules/ngx_http_ssl_module.c Thu May 16 15:37:13 2013 -0700<br />+++ b/src/http/modules/ngx_http_ssl_module.c Tue May 21 12:47:27 2013 +1000<br />@@ -260,6 +260,11 @@<br />{ ngx_string(&quot;ssl_client_verify&quot;), NULL, ngx_http_ssl_variable,<br />(uintptr_t) ngx_ssl_get_client_verify, NGX_HTTP_VAR_CHANGEABLE, 0 },<br /><br />+#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME<br />+ { ngx_string(&quot;ssl_sni_host&quot;), NULL, ngx_http_ssl_variable,<br />+ (uintptr_t) ngx_ssl_get_sni_host, NGX_HTTP_VAR_CHANGEABLE, 0 },<br />+#endif<br />+<br />{ ngx_null_string, NULL, NULL, 0, 0, 0 }<br />};<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Christian Marie</dc:creator>
<category>Nginx Development</category><pubDate>Mon, 20 May 2013 23:10:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239359,239359#msg-239359</guid>
<title>[PATCH] Limit req: pointer init order issue (1 reply)</title><link>http://forum.nginx.org/read.php?29,239359,239359#msg-239359</link><description><![CDATA[Hello,<br /><br />It's a tiny issue as only the next test code about 'shm' is broken.<br /><br />That's my last patch for the moment.<br /><br />Regards.<br />Filipe DA SILVA<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Filipe Da Silva</dc:creator>
<category>Nginx Development</category><pubDate>Mon, 20 May 2013 18:30:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239348,239348#msg-239348</guid>
<title>[PATCH] ngx_mail_ssl_module / ecdh_curve (3 replies)</title><link>http://forum.nginx.org/read.php?29,239348,239348#msg-239348</link><description><![CDATA[Hello ,<br /><br />Please find attach a two lines patch about ecdh_curve setting in<br />mail_ssl_module.<br /><br />This setting is not applied, although it is declared and parsed from<br />nginx.conf file<br /><br />I see this lack in 1.2.0 version too.<br /><br />Rgds,<br />Filipe DA SILVA<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Filipe Da Silva</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 14:54:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239330,239330#msg-239330</guid>
<title>[BUG?]fail_timeout/max_fails: code doesn't do what doc says (5 replies)</title><link>http://forum.nginx.org/read.php?29,239330,239330#msg-239330</link><description><![CDATA[Hi.<br /><br />http://wiki.nginx.org/HttpUpstreamModule says<br />max_fails = NUMBER - number of unsuccessful attempts at communicating with the<br />server within the time period (assigned by parameter fail_timeout) after which<br />it is considered inoperative ...<br />fail_timeout = TIME - the time during which must occur *max_fails* number of<br />unsuccessful attempts at communication with the server that would cause the<br />server to be considered inoperative ...<br /><br />However, as we may see from code (ngx_http_upstream_get_peer and<br />ngx_http_upstream_free_round_robin_peer<br />from src/http/ngx_http_upstream_round_robin.c) the logic is not as described:<br />(simplified code)<br />get_peer:<br />if (fails &gt;= max_fails &amp;&amp; now &lt;= fail_timeout + checked)<br />skip<br />...<br />checked = now<br />free_peer:<br />if (request_failed)<br />fails++<br />accessed = now<br />checked = now<br />else<br />if (accessed &lt; checked)<br />fails = 0<br /><br />1) So, fail_timeout is never used while peer is gaining fails (until<br />fails &gt;= max_fails);<br />2) This algorithm always resets fails count if first request inside new second<br />succeeds; it always increases fails count if first request fails. So, a lot<br />depends on first (inside a second) request; I don't think it's a desired<br />behaviour.<br />3) I'm not sure if &quot;accessed&quot; is a good name for a field that contains last<br />fail timestamp.<br /><br />I don't know where an error is (in doc or code) and I don't know how you (nginx<br />devs) wanted it to work so I don't have any constructive ideas, sorry.<br /><br />--<br />Dmitry Popov<br />Highloadlab<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Dmitry Popov</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 09:56:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239300,239300#msg-239300</guid>
<title>[nginx] OCSP stapling: fix error logging of successful OCSP resp... (no replies)</title><link>http://forum.nginx.org/read.php?29,239300,239300#msg-239300</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/cfab1e7e4ac2<br />branches:<br />changeset: 5215:cfab1e7e4ac2<br />user: Piotr Sikora &lt;piotr@cloudflare.com&gt;<br />date: Thu May 16 15:37:13 2013 -0700<br />description:<br />OCSP stapling: fix error logging of successful OCSP responses.<br /><br />Due to a bad argument list, nginx worker would crash (SIGSEGV) while<br />trying to log the fact that it received OCSP response with &quot;revoked&quot;<br />or &quot;unknown&quot; certificate status.<br /><br />While there, fix similar (but non-crashing) error a few lines above.<br /><br />Signed-off-by: Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /><br />diffstat:<br /><br />src/event/ngx_event_openssl_stapling.c | 5 ++---<br />1 files changed, 2 insertions(+), 3 deletions(-)<br /><br />diffs (21 lines):<br /><br />diff --git a/src/event/ngx_event_openssl_stapling.c b/src/event/ngx_event_openssl_stapling.c<br />--- a/src/event/ngx_event_openssl_stapling.c<br />+++ b/src/event/ngx_event_openssl_stapling.c<br />@@ -611,15 +611,14 @@ ngx_ssl_stapling_ocsp_handler(ngx_ssl_oc<br />!= 1)<br />{<br />ngx_log_error(NGX_LOG_ERR, ctx-&gt;log, 0,<br />- &quot;certificate status not found in the OCSP response&quot;,<br />- n, OCSP_response_status_str(n));<br />+ &quot;certificate status not found in the OCSP response&quot;);<br />goto error;<br />}<br /><br />if (n != V_OCSP_CERTSTATUS_GOOD) {<br />ngx_log_error(NGX_LOG_ERR, ctx-&gt;log, 0,<br />&quot;certificate status \&quot;%s\&quot; in the OCSP response&quot;,<br />- n, OCSP_cert_status_str(n));<br />+ OCSP_cert_status_str(n));<br />goto error;<br />}<br /><br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Maxim Dounin</dc:creator>
<category>Nginx Development</category><pubDate>Fri, 17 May 2013 09:42:05 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239282,239282#msg-239282</guid>
<title>[PATCH] OCSP stapling: better handling of successful OCSP responses. (5 replies)</title><link>http://forum.nginx.org/read.php?29,239282,239282#msg-239282</link><description><![CDATA[changeset: 5216:4fb8fac2b2f5<br />user: Piotr Sikora &lt;piotr@cloudflare.com&gt;<br />date: Thu May 16 15:37:24 2013 -0700<br />files: src/event/ngx_event_openssl_stapling.c<br />description:<br />OCSP stapling: better handling of successful OCSP responses.<br /><br />All successful OCSP responseses, regardless of the certificate status,<br />should be cached and used for OCSP stapling.<br /><br />While there, log the certificate's common name and revocation reason,<br />because certificate status alone isn't very useful information.<br /><br />Signed-off-by: Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /><br /><br />diff -r cfab1e7e4ac2 -r 4fb8fac2b2f5 src/event/ngx_event_openssl_stapling.c<br />--- a/src/event/ngx_event_openssl_stapling.c Thu May 16 15:37:13 2013 -0700<br />+++ b/src/event/ngx_event_openssl_stapling.c Thu May 16 15:37:24 2013 -0700<br />@@ -529,7 +529,7 @@<br />const<br />#endif<br />u_char *p;<br />- int n;<br />+ int n, r, idx;<br />size_t len;<br />ngx_str_t response;<br />X509_STORE *store;<br />@@ -539,6 +539,10 @@<br />OCSP_BASICRESP *basic;<br />ngx_ssl_stapling_t *staple;<br />ASN1_GENERALIZEDTIME *thisupdate, *nextupdate;<br />+ X509_NAME *name;<br />+ X509_NAME_ENTRY *entry;<br />+ ASN1_STRING *str;<br />+ ngx_str_t s;<br /><br />staple = ctx-&gt;data;<br />ocsp = NULL;<br />@@ -606,7 +610,7 @@<br />goto error;<br />}<br /><br />- if (OCSP_resp_find_status(basic, id, &amp;n, NULL, NULL,<br />+ if (OCSP_resp_find_status(basic, id, &amp;n, &amp;r, NULL,<br />&amp;thisupdate, &amp;nextupdate)<br />!= 1)<br />{<br />@@ -615,19 +619,43 @@<br />goto error;<br />}<br /><br />- if (n != V_OCSP_CERTSTATUS_GOOD) {<br />- ngx_log_error(NGX_LOG_ERR, ctx-&gt;log, 0,<br />- &quot;certificate status \&quot;%s\&quot; in the OCSP response&quot;,<br />- OCSP_cert_status_str(n));<br />- goto error;<br />- }<br />-<br />if (OCSP_check_validity(thisupdate, nextupdate, 300, -1) != 1) {<br />ngx_ssl_error(NGX_LOG_ERR, ctx-&gt;log, 0,<br />&quot;OCSP_check_validity() failed&quot;);<br />goto error;<br />}<br /><br />+ if (n != V_OCSP_CERTSTATUS_GOOD) {<br />+ ngx_str_set(&amp;s, &quot;unknown&quot;);<br />+<br />+ if (ctx-&gt;cert) {<br />+ name = X509_get_subject_name(ctx-&gt;cert);<br />+ if (name) {<br />+ idx = X509_NAME_get_index_by_NID(name, NID_commonName, -1);<br />+ if (idx != -1) {<br />+ entry = X509_NAME_get_entry(name, idx);<br />+ if (entry) {<br />+ str = X509_NAME_ENTRY_get_data(entry);<br />+ s.data = ASN1_STRING_data(str);<br />+ s.len = ASN1_STRING_length(str);<br />+ }<br />+ }<br />+ }<br />+ }<br />+<br />+ if (n == V_OCSP_CERTSTATUS_REVOKED &amp;&amp; r != -1) {<br />+ ngx_log_error(NGX_LOG_WARN, ctx-&gt;log, 0,<br />+ &quot;certificate status \&quot;%s\&quot; (reason: \&quot;%s\&quot;) in the &quot;<br />+ &quot;OCSP response for \&quot;%V\&quot;&quot;,<br />+ OCSP_cert_status_str(n), OCSP_crl_reason_str(r), &amp;s);<br />+<br />+ } else {<br />+ ngx_log_error(NGX_LOG_WARN, ctx-&gt;log, 0,<br />+ &quot;certificate status \&quot;%s\&quot; in the OCSP response &quot;<br />+ &quot;for \&quot;%V\&quot;&quot;, OCSP_cert_status_str(n), &amp;s);<br />+ }<br />+ }<br />+<br />OCSP_CERTID_free(id);<br />OCSP_BASICRESP_free(basic);<br />OCSP_RESPONSE_free(ocsp);<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Piotr Sikora</dc:creator>
<category>Nginx Development</category><pubDate>Tue, 21 May 2013 20:20:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239281,239281#msg-239281</guid>
<title>[PATCH] OCSP stapling: fix error logging of successful OCSP responses. (2 replies)</title><link>http://forum.nginx.org/read.php?29,239281,239281#msg-239281</link><description><![CDATA[changeset: 5215:cfab1e7e4ac2<br />user: Piotr Sikora &lt;piotr@cloudflare.com&gt;<br />date: Thu May 16 15:37:13 2013 -0700<br />files: src/event/ngx_event_openssl_stapling.c<br />description:<br />OCSP stapling: fix error logging of successful OCSP responses.<br /><br />Due to a bad argument list, nginx worker would crash (SIGSEGV) while<br />trying to log the fact that it received OCSP response with &quot;revoked&quot;<br />or &quot;unknown&quot; certificate status.<br /><br />While there, fix similar (but non-crashing) error a few lines above.<br /><br />Signed-off-by: Piotr Sikora &lt;piotr@cloudflare.com&gt;<br /><br /><br />diff -r 2220de0521ca -r cfab1e7e4ac2 src/event/ngx_event_openssl_stapling.c<br />--- a/src/event/ngx_event_openssl_stapling.c Thu May 09 10:54:28 2013 +0200<br />+++ b/src/event/ngx_event_openssl_stapling.c Thu May 16 15:37:13 2013 -0700<br />@@ -611,15 +611,14 @@<br />!= 1)<br />{<br />ngx_log_error(NGX_LOG_ERR, ctx-&gt;log, 0,<br />- &quot;certificate status not found in the OCSP response&quot;,<br />- n, OCSP_response_status_str(n));<br />+ &quot;certificate status not found in the OCSP response&quot;);<br />goto error;<br />}<br /><br />if (n != V_OCSP_CERTSTATUS_GOOD) {<br />ngx_log_error(NGX_LOG_ERR, ctx-&gt;log, 0,<br />&quot;certificate status \&quot;%s\&quot; in the OCSP response&quot;,<br />- n, OCSP_cert_status_str(n));<br />+ OCSP_cert_status_str(n));<br />goto error;<br />}<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Piotr Sikora</dc:creator>
<category>Nginx Development</category><pubDate>Fri, 17 May 2013 09:14:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239251,239251#msg-239251</guid>
<title>[nginx] Mail: removed surplus ngx_close_connection() call. (no replies)</title><link>http://forum.nginx.org/read.php?29,239251,239251#msg-239251</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/2220de0521ca<br />branches:<br />changeset: 5214:2220de0521ca<br />user: Filipe Da Silva &lt;fdasilvayy@gmail.com&gt;<br />date: Thu May 09 10:54:28 2013 +0200<br />description:<br />Mail: removed surplus ngx_close_connection() call.<br /><br />It is already called for a peer connection a few lines above.<br /><br />diffstat:<br /><br />src/mail/ngx_mail_auth_http_module.c | 1 -<br />1 files changed, 0 insertions(+), 1 deletions(-)<br /><br />diffs (11 lines):<br /><br />diff -r 822b82191940 -r 2220de0521ca src/mail/ngx_mail_auth_http_module.c<br />--- a/src/mail/ngx_mail_auth_http_module.c Wed May 15 15:04:49 2013 +0400<br />+++ b/src/mail/ngx_mail_auth_http_module.c Thu May 09 10:54:28 2013 +0200<br />@@ -699,7 +699,6 @@ ngx_mail_auth_http_process_headers(ngx_m<br /><br />p = ngx_pnalloc(s-&gt;connection-&gt;pool, ctx-&gt;err.len);<br />if (p == NULL) {<br />- ngx_close_connection(ctx-&gt;peer.connection);<br />ngx_destroy_pool(ctx-&gt;pool);<br />ngx_mail_session_internal_server_error(s);<br />return;<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Valentin Bartenev</dc:creator>
<category>Nginx Development</category><pubDate>Wed, 15 May 2013 16:38:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239224,239224#msg-239224</guid>
<title>[nginx] Upstream keepalive: slightly simplified code. (no replies)</title><link>http://forum.nginx.org/read.php?29,239224,239224#msg-239224</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/822b82191940<br />branches:<br />changeset: 5213:822b82191940<br />user: Ruslan Ermilov &lt;ru@nginx.com&gt;<br />date: Wed May 15 15:04:49 2013 +0400<br />description:<br />Upstream keepalive: slightly simplified code.<br /><br />diffstat:<br /><br />src/http/modules/ngx_http_upstream_keepalive_module.c | 7 ++-----<br />1 files changed, 2 insertions(+), 5 deletions(-)<br /><br />diffs (31 lines):<br /><br />diff -r 09dbd363050a -r 822b82191940 src/http/modules/ngx_http_upstream_keepalive_module.c<br />--- a/src/http/modules/ngx_http_upstream_keepalive_module.c Thu Apr 25 17:41:45 2013 +0400<br />+++ b/src/http/modules/ngx_http_upstream_keepalive_module.c Wed May 15 15:04:49 2013 +0400<br />@@ -81,7 +81,7 @@ static ngx_command_t ngx_http_upstream_<br />{ ngx_string(&quot;keepalive&quot;),<br />NGX_HTTP_UPS_CONF|NGX_CONF_TAKE12,<br />ngx_http_upstream_keepalive,<br />- 0,<br />+ NGX_HTTP_SRV_CONF_OFFSET,<br />0,<br />NULL },<br /><br />@@ -481,7 +481,7 @@ static char *<br />ngx_http_upstream_keepalive(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)<br />{<br />ngx_http_upstream_srv_conf_t *uscf;<br />- ngx_http_upstream_keepalive_srv_conf_t *kcf;<br />+ ngx_http_upstream_keepalive_srv_conf_t *kcf = conf;<br /><br />ngx_int_t n;<br />ngx_str_t *value;<br />@@ -489,9 +489,6 @@ ngx_http_upstream_keepalive(ngx_conf_t *<br /><br />uscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_upstream_module);<br /><br />- kcf = ngx_http_conf_upstream_srv_conf(uscf,<br />- ngx_http_upstream_keepalive_module);<br />-<br />if (kcf-&gt;original_init_upstream) {<br />return &quot;is duplicate&quot;;<br />}<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Ruslan Ermilov</dc:creator>
<category>Nginx Development</category><pubDate>Wed, 15 May 2013 07:06:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239223,239223#msg-239223</guid>
<title>[nginx] Removed vestiges of SVN. (no replies)</title><link>http://forum.nginx.org/read.php?29,239223,239223#msg-239223</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/09dbd363050a<br />branches:<br />changeset: 5212:09dbd363050a<br />user: Ruslan Ermilov &lt;ru@nginx.com&gt;<br />date: Thu Apr 25 17:41:45 2013 +0400<br />description:<br />Removed vestiges of SVN.<br /><br />diffstat:<br /><br />misc/GNUmakefile | 31 ++-----------------------------<br />misc/README | 3 ---<br />2 files changed, 2 insertions(+), 32 deletions(-)<br /><br />diffs (64 lines):<br /><br />diff -r ecd762770729 -r 09dbd363050a misc/GNUmakefile<br />--- a/misc/GNUmakefile Wed May 15 12:23:44 2013 +0400<br />+++ b/misc/GNUmakefile Thu Apr 25 17:41:45 2013 +0400<br />@@ -3,7 +3,6 @@ VER = $(shell grep 'define NGINX_VERSIO<br />| sed -e 's/^.*&quot;\(.*\)&quot;.*/\1/')<br />NGINX = nginx-$(VER)<br />TEMP = tmp<br />-REPO = $(shell svn info | sed -n 's/^Repository Root: //p')<br /><br />OBJS = objs.msvc8<br />OPENSSL = openssl-1.0.1e<br />@@ -38,40 +37,14 @@ release: export<br /><br />export:<br />rm -rf $(TEMP)<br />-<br />- if [ -d .svn ]; then \<br />- svn export -rHEAD . $(TEMP)/$(NGINX); \<br />- else \<br />- hg archive -X '.hg*' $(TEMP)/$(NGINX); \<br />- fi<br />+ hg archive -X '.hg*' $(TEMP)/$(NGINX)<br /><br /><br />RELEASE:<br />- if [ -d .svn ]; then \<br />- $(MAKE) -f misc/GNUmakefile RELEASE.svn; \<br />- else \<br />- $(MAKE) -f misc/GNUmakefile RELEASE.hg; \<br />- fi<br />-<br />- $(MAKE) -f misc/GNUmakefile release<br />-<br />-<br />-RELEASE.hg:<br />hg ci -m nginx-$(VER)-RELEASE<br />hg tag -m &quot;release-$(VER) tag&quot; release-$(VER)<br /><br />-<br />-RELEASE.svn:<br />- test -d $(TEMP) || mkdir -p $(TEMP)<br />-<br />- echo &quot;nginx-$(VER)-RELEASE&quot; &gt; $(TEMP)/message<br />- svn ci -F $(TEMP)/message<br />-<br />- echo &quot;release-$(VER) tag&quot; &gt; $(TEMP)/message<br />- svn copy $(REPO)/trunk $(REPO)/tags/release-$(VER) \<br />- -F $(TEMP)/message<br />-<br />- svn up<br />+ $(MAKE) -f misc/GNUmakefile release<br /><br /><br />win32:<br />diff -r ecd762770729 -r 09dbd363050a misc/README<br />--- a/misc/README Wed May 15 12:23:44 2013 +0400<br />+++ b/misc/README Thu Apr 25 17:41:45 2013 +0400<br />@@ -1,6 +1,3 @@<br />-<br />-GNUmakefile, in svn it is available since 0.4.0 only.<br />-<br /><br />make -f misc/GNUmakefile release<br /><br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Ruslan Ermilov</dc:creator>
<category>Nginx Development</category><pubDate>Wed, 15 May 2013 07:06:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239215,239215#msg-239215</guid>
<title>[nginx] Proxy: clear script engine used to calculate lengths. (no replies)</title><link>http://forum.nginx.org/read.php?29,239215,239215#msg-239215</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/ecd762770729<br />branches:<br />changeset: 5211:ecd762770729<br />user: Maxim Dounin &lt;mdounin@mdounin.ru&gt;<br />date: Wed May 15 12:23:44 2013 +0400<br />description:<br />Proxy: clear script engine used to calculate lengths.<br /><br />Previous code is believed to be safe, but might access uninitialized<br />memory (e.g., e-&gt;quote).<br /><br />diffstat:<br /><br />src/http/modules/ngx_http_proxy_module.c | 2 ++<br />1 files changed, 2 insertions(+), 0 deletions(-)<br /><br />diffs (12 lines):<br /><br />diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c<br />--- a/src/http/modules/ngx_http_proxy_module.c<br />+++ b/src/http/modules/ngx_http_proxy_module.c<br />@@ -993,6 +993,8 @@ ngx_http_proxy_create_request(ngx_http_r<br /><br />len += uri_len;<br /><br />+ ngx_memzero(&amp;le, sizeof(ngx_http_script_engine_t));<br />+<br />ngx_http_script_flush_no_cacheable_variables(r, plcf-&gt;flushes);<br /><br />if (plcf-&gt;body_set_len) {<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Maxim Dounin</dc:creator>
<category>Nginx Development</category><pubDate>Wed, 15 May 2013 05:22:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239145,239145#msg-239145</guid>
<title>[nginx] Fixed lingering_time check. (no replies)</title><link>http://forum.nginx.org/read.php?29,239145,239145#msg-239145</link><description><![CDATA[details: http://hg.nginx.org/nginx/rev/ea2ba6dbe361<br />branches:<br />changeset: 5210:ea2ba6dbe361<br />user: Maxim Dounin &lt;mdounin@mdounin.ru&gt;<br />date: Mon May 13 17:39:45 2013 +0400<br />description:<br />Fixed lingering_time check.<br /><br />There are two significant changes in this patch:<br /><br />1) The &lt;= 0 comparison is done with a signed type. This fixes the case<br />of ngx_time() being larger than r-&gt;lingering_time.<br /><br />2) Calculation of r-&gt;lingering_time - ngx_time() is now always done<br />in the ngx_msec_t type. This ensures the calculation is correct<br />even if time_t is unsigned and differs in size from ngx_msec_t.<br /><br />Thanks to Lanshun Zhou.<br /><br />diffstat:<br /><br />src/http/ngx_http_request.c | 4 ++--<br />src/http/ngx_http_request_body.c | 4 ++--<br />2 files changed, 4 insertions(+), 4 deletions(-)<br /><br />diffs (29 lines):<br /><br />diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c<br />--- a/src/http/ngx_http_request.c<br />+++ b/src/http/ngx_http_request.c<br />@@ -3166,8 +3166,8 @@ ngx_http_lingering_close_handler(ngx_eve<br />return;<br />}<br /><br />- timer = (ngx_msec_t) (r-&gt;lingering_time - ngx_time());<br />- if (timer &lt;= 0) {<br />+ timer = (ngx_msec_t) r-&gt;lingering_time - (ngx_msec_t) ngx_time();<br />+ if ((ngx_msec_int_t) timer &lt;= 0) {<br />ngx_http_close_request(r, 0);<br />return;<br />}<br />diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c<br />--- a/src/http/ngx_http_request_body.c<br />+++ b/src/http/ngx_http_request_body.c<br />@@ -570,9 +570,9 @@ ngx_http_discarded_request_body_handler(<br />}<br /><br />if (r-&gt;lingering_time) {<br />- timer = (ngx_msec_t) (r-&gt;lingering_time - ngx_time());<br />+ timer = (ngx_msec_t) r-&gt;lingering_time - (ngx_msec_t) ngx_time();<br /><br />- if (timer &lt;= 0) {<br />+ if ((ngx_msec_int_t) timer &lt;= 0) {<br />r-&gt;discard_body = 0;<br />r-&gt;lingering_close = 0;<br />ngx_http_finalize_request(r, NGX_ERROR);<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Maxim Dounin</dc:creator>
<category>Nginx Development</category><pubDate>Mon, 13 May 2013 10:26:01 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239139,239139#msg-239139</guid>
<title>[nginx] Upstream: allow to intercept responses with status 300. (no replies)</title><link>http://forum.nginx.org/read.php?29,239139,239139#msg-239139</link><description><![CDATA[details: http://hg.nginx.com/nginx/rev/07e515e65984<br />branches:<br />changeset: 5209:07e515e65984<br />user: Ruslan Ermilov &lt;ru@nginx.com&gt;<br />date: Mon May 13 14:10:22 2013 +0400<br />description:<br />Upstream: allow to intercept responses with status 300.<br /><br />This fixes an omission made in 9e7926763f87 where all 3XX statuses<br />were allowed for &quot;error_page&quot;.<br /><br />diffstat:<br /><br />src/http/ngx_http_upstream.c | 2 +-<br />1 files changed, 1 insertions(+), 1 deletions(-)<br /><br />diffs (12 lines):<br /><br />diff -r a64c8a5da336 -r 07e515e65984 src/http/ngx_http_upstream.c<br />--- a/src/http/ngx_http_upstream.c Thu May 02 03:26:36 2013 -0700<br />+++ b/src/http/ngx_http_upstream.c Mon May 13 14:10:22 2013 +0400<br />@@ -1660,7 +1660,7 @@ ngx_http_upstream_process_header(ngx_htt<br /><br />/* rc == NGX_OK */<br /><br />- if (u-&gt;headers_in.status_n &gt; NGX_HTTP_SPECIAL_RESPONSE) {<br />+ if (u-&gt;headers_in.status_n &gt;= NGX_HTTP_SPECIAL_RESPONSE) {<br /><br />if (r-&gt;subrequest_in_memory) {<br />u-&gt;buffer.last = u-&gt;buffer.pos;<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Ruslan Ermilov</dc:creator>
<category>Nginx Development</category><pubDate>Mon, 13 May 2013 08:46:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239124,239124#msg-239124</guid>
<title>[nginx] Fixed chunk size parsing. (no replies)</title><link>http://forum.nginx.org/read.php?29,239124,239124#msg-239124</link><description><![CDATA[details: http://hg.nginx.com/nginx/rev/abfe9e6e72cb<br />branches: stable-1.2<br />changeset: 5206:abfe9e6e72cb<br />user: Maxim Dounin &lt;mdounin@mdounin.ru&gt;<br />date: Mon May 13 13:19:28 2013 +0400<br />description:<br />Fixed chunk size parsing.<br /><br />diffstat:<br /><br />src/http/modules/ngx_http_proxy_module.c | 4 ++++<br />1 files changed, 4 insertions(+), 0 deletions(-)<br /><br />diffs (14 lines):<br /><br />diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c<br />--- a/src/http/modules/ngx_http_proxy_module.c<br />+++ b/src/http/modules/ngx_http_proxy_module.c<br />@@ -1865,6 +1865,10 @@ data:<br /><br />}<br /><br />+ if (ctx-&gt;size &lt; 0 || ctx-&gt;length &lt; 0) {<br />+ goto invalid;<br />+ }<br />+<br />return rc;<br /><br />done:<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Maxim Dounin</dc:creator>
<category>Nginx Development</category><pubDate>Mon, 13 May 2013 07:30:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239123,239123#msg-239123</guid>
<title>[nginx] release-1.2.9 tag (no replies)</title><link>http://forum.nginx.org/read.php?29,239123,239123#msg-239123</link><description><![CDATA[details: http://hg.nginx.com/nginx/rev/9c3c460f8a05<br />branches: stable-1.2<br />changeset: 5208:9c3c460f8a05<br />user: Maxim Dounin &lt;mdounin@mdounin.ru&gt;<br />date: Mon May 13 14:43:06 2013 +0400<br />description:<br />release-1.2.9 tag<br /><br />diffstat:<br /><br />.hgtags | 1 +<br />1 files changed, 1 insertions(+), 0 deletions(-)<br /><br />diffs (8 lines):<br /><br />diff --git a/.hgtags b/.hgtags<br />--- a/.hgtags<br />+++ b/.hgtags<br />@@ -343,3 +343,4 @@ d763d5c9a13395fb78100f7c2d63c2323541f210<br />eb1043eaedacddb1bbada27822527049b99bde6d release-1.2.6<br />a58e268f6c081f671667c0c929f0c5cec3e80958 release-1.2.7<br />d50f390fa97eb9871622666b40703d497d65925e release-1.2.8<br />+0e80c5bf5e1bb42a6491fea5340a16e51cd37bb8 release-1.2.9<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Maxim Dounin</dc:creator>
<category>Nginx Development</category><pubDate>Mon, 13 May 2013 07:30:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239122,239122#msg-239122</guid>
<title>[nginx] nginx-1.2.9-RELEASE (no replies)</title><link>http://forum.nginx.org/read.php?29,239122,239122#msg-239122</link><description><![CDATA[details: http://hg.nginx.com/nginx/rev/0e80c5bf5e1b<br />branches: stable-1.2<br />changeset: 5207:0e80c5bf5e1b<br />user: Maxim Dounin &lt;mdounin@mdounin.ru&gt;<br />date: Mon May 13 14:41:51 2013 +0400<br />description:<br />nginx-1.2.9-RELEASE<br /><br />diffstat:<br /><br />docs/xml/nginx/changes.xml | 18 ++++++++++++++++++<br />1 files changed, 18 insertions(+), 0 deletions(-)<br /><br />diffs (28 lines):<br /><br />diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml<br />--- a/docs/xml/nginx/changes.xml<br />+++ b/docs/xml/nginx/changes.xml<br />@@ -5,6 +5,24 @@<br />&lt;change_log title=&quot;nginx&quot;&gt;<br /><br /><br />+&lt;changes ver=&quot;1.2.9&quot; date=&quot;13.05.2013&quot;&gt;<br />+<br />+&lt;change type=&quot;security&quot;&gt;<br />+&lt;para lang=&quot;ru&quot;&gt;<br />+содержимое памяти рабочего процесса могло быть отправлено клиенту,<br />+если HTTP-бэкенд возвращал специально созданный ответ (CVE-2013-2070);<br />+ошибка появилась в 1.1.4.<br />+&lt;/para&gt;<br />+&lt;para lang=&quot;en&quot;&gt;<br />+contents of worker process memory might be sent to a client<br />+if HTTP backend returned specially crafted response (CVE-2013-2070);<br />+the bug had appeared in 1.1.4.<br />+&lt;/para&gt;<br />+&lt;/change&gt;<br />+<br />+&lt;/changes&gt;<br />+<br />+<br />&lt;changes ver=&quot;1.2.8&quot; date=&quot;02.04.2013&quot;&gt;<br /><br />&lt;change type=&quot;bugfix&quot;&gt;<br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Maxim Dounin</dc:creator>
<category>Nginx Development</category><pubDate>Mon, 13 May 2013 07:30:00 -0400</pubDate></item>
<item>
<guid>http://forum.nginx.org/read.php?29,239121,239121#msg-239121</guid>
<title>[nginx] Version bump. (2 replies)</title><link>http://forum.nginx.org/read.php?29,239121,239121#msg-239121</link><description><![CDATA[details: http://hg.nginx.com/nginx/rev/6082e0ab3d89<br />branches: stable-1.2<br />changeset: 5205:6082e0ab3d89<br />user: Maxim Dounin &lt;mdounin@mdounin.ru&gt;<br />date: Mon May 13 13:18:31 2013 +0400<br />description:<br />Version bump.<br /><br />diffstat:<br /><br />src/core/nginx.h | 4 ++--<br />src/http/modules/perl/nginx.pm | 2 +-<br />2 files changed, 3 insertions(+), 3 deletions(-)<br /><br />diffs (26 lines):<br /><br />diff --git a/src/core/nginx.h b/src/core/nginx.h<br />--- a/src/core/nginx.h<br />+++ b/src/core/nginx.h<br />@@ -9,8 +9,8 @@<br />#define _NGINX_H_INCLUDED_<br /><br /><br />-#define nginx_version 1002008<br />-#define NGINX_VERSION &quot;1.2.8&quot;<br />+#define nginx_version 1002009<br />+#define NGINX_VERSION &quot;1.2.9&quot;<br />#define NGINX_VER &quot;nginx/&quot; NGINX_VERSION<br /><br />#define NGINX_VAR &quot;NGINX&quot;<br />diff --git a/src/http/modules/perl/nginx.pm b/src/http/modules/perl/nginx.pm<br />--- a/src/http/modules/perl/nginx.pm<br />+++ b/src/http/modules/perl/nginx.pm<br />@@ -50,7 +50,7 @@ our @EXPORT = qw(<br />HTTP_INSUFFICIENT_STORAGE<br />);<br /><br />-our $VERSION = '1.2.8';<br />+our $VERSION = '1.2.9';<br /><br />require XSLoader;<br />XSLoader::load('nginx', $VERSION);<br /><br />_______________________________________________<br />nginx-devel mailing list<br />nginx-devel@nginx.org<br />http://mailman.nginx.org/mailman/listinfo/nginx-devel]]></description>
<dc:creator>Maxim Dounin</dc:creator>
<category>Nginx Development</category><pubDate>Mon, 13 May 2013 08:12:00 -0400</pubDate></item>
</channel>
</rss>