<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/http, branch release-1.8.1</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>SSL: only select SPDY using NPN if "spdy" is enabled.</title>
<updated>2015-11-05T12:01:09+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2015-11-05T12:01:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=43e9607fdf44d66a870db798f1e13031c7511679'/>
<id>43e9607fdf44d66a870db798f1e13031c7511679</id>
<content type='text'>
OpenSSL doesn't check if the negotiated protocol has been announced.
As a result, the client might force using SPDY even if it wasn't
enabled in configuration.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OpenSSL doesn't check if the negotiated protocol has been announced.
As a result, the client might force using SPDY even if it wasn't
enabled in configuration.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: fixed cache send error handling.</title>
<updated>2015-09-03T12:09:21+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2015-09-03T12:09:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=9faac47113dcaec81f0427b16d27752f984fda1a'/>
<id>9faac47113dcaec81f0427b16d27752f984fda1a</id>
<content type='text'>
The value of NGX_ERROR, returned from filter handlers, was treated as a generic
upstream error and changed to NGX_HTTP_INTERNAL_SERVER_ERROR before calling
ngx_http_finalize_request().  This resulted in "header already sent" alert
if header was already sent in filter handlers.

The problem appeared in 54e9b83d00f0 (1.7.5).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The value of NGX_ERROR, returned from filter handlers, was treated as a generic
upstream error and changed to NGX_HTTP_INTERNAL_SERVER_ERROR before calling
ngx_http_finalize_request().  This resulted in "header already sent" alert
if header was already sent in filter handlers.

The problem appeared in 54e9b83d00f0 (1.7.5).
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed wrong URI after try_files in nested location (ticket #97).</title>
<updated>2015-08-16T07:51:34+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2015-08-16T07:51:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=df30660f4daee72e3e44018a2830c83c5c531def'/>
<id>df30660f4daee72e3e44018a2830c83c5c531def</id>
<content type='text'>
The following configuration with alias, nested location and try_files
resulted in wrong file being used.  Request "/foo/test.gif" tried to
use "/tmp//foo/test.gif" instead of "/tmp/test.gif":

    location /foo/ {
        alias /tmp/;
        location ~ gif {
            try_files $uri =405;
        }
    }

Additionally, rev. c985d90a8d1f introduced a regression if
the "/tmp//foo/test.gif" file was found (ticket #768).  Resulting URI
was set to "gif?/foo/test.gif", as the code used clcf-&gt;name of current
location ("location ~ gif") instead of parent one ("location /foo/").

Fix is to use r-&gt;uri instead of clcf-&gt;name in all cases in the
ngx_http_core_try_files_phase() function.  It is expected to be
already matched and identical to the clcf-&gt;name of the right
location.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The following configuration with alias, nested location and try_files
resulted in wrong file being used.  Request "/foo/test.gif" tried to
use "/tmp//foo/test.gif" instead of "/tmp/test.gif":

    location /foo/ {
        alias /tmp/;
        location ~ gif {
            try_files $uri =405;
        }
    }

Additionally, rev. c985d90a8d1f introduced a regression if
the "/tmp//foo/test.gif" file was found (ticket #768).  Resulting URI
was set to "gif?/foo/test.gif", as the code used clcf-&gt;name of current
location ("location ~ gif") instead of parent one ("location /foo/").

Fix is to use r-&gt;uri instead of clcf-&gt;name in all cases in the
ngx_http_core_try_files_phase() function.  It is expected to be
already matched and identical to the clcf-&gt;name of the right
location.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed segfault with try_files introduced by c985d90a8d1f.</title>
<updated>2015-08-16T07:51:16+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2015-08-16T07:51:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f178835bfa2f59c59186c9ffa967d412df7f2339'/>
<id>f178835bfa2f59c59186c9ffa967d412df7f2339</id>
<content type='text'>
If alias was used in a location given by a regular expression,
nginx used to do wrong thing in try_files if a location name (i.e.,
regular expression) was an exact prefix of URI.  The following
configuration triggered a segmentation fault on a request to "/mail":

    location ~ /mail {
        alias /path/to/directory;
        try_files $uri =404;
    }

Reported by Per Hansson.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If alias was used in a location given by a regular expression,
nginx used to do wrong thing in try_files if a location name (i.e.,
regular expression) was an exact prefix of URI.  The following
configuration triggered a segmentation fault on a request to "/mail":

    location ~ /mail {
        alias /path/to/directory;
        try_files $uri =404;
    }

Reported by Per Hansson.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge proxy_protocol setting of listen directives.</title>
<updated>2015-04-24T07:54:06+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2015-04-24T07:54:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=9a31e9faab61ed6c01b81f45639f4ec1315caa85'/>
<id>9a31e9faab61ed6c01b81f45639f4ec1315caa85</id>
<content type='text'>
It's now enough to specify proxy_protocol option in one listen directive to
enable it in all servers listening on the same address/port.  Previously,
the setting from the first directive was always used.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's now enough to specify proxy_protocol option in one listen directive to
enable it in all servers listening on the same address/port.  Previously,
the setting from the first directive was always used.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: abbreviated SSL handshake may interact badly with Nagle.</title>
<updated>2015-04-06T21:07:04+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2015-04-06T21:07:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=8c82b7512758eececa878993e03ca7d4a470c00d'/>
<id>8c82b7512758eececa878993e03ca7d4a470c00d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Request body: always flush buffers if request buffering is off.</title>
<updated>2015-04-06T16:20:36+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2015-04-06T16:20:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=3f72e18908bd71d20bca6923163ce8b5b194285d'/>
<id>3f72e18908bd71d20bca6923163ce8b5b194285d</id>
<content type='text'>
This fixes unbuffered proxying to SSL backends, since it prevents
ngx_ssl_send_chain() from accumulation of request body in the SSL
buffer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes unbuffered proxying to SSL backends, since it prevents
ngx_ssl_send_chain() from accumulation of request body in the SSL
buffer.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: added support for reading of the header in thread pools.</title>
<updated>2015-04-01T00:49:17+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2015-04-01T00:49:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=355a793b895f3695df4e69f0637328db43f704a5'/>
<id>355a793b895f3695df4e69f0637328db43f704a5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed invalid access to complex value defined as an empty string.</title>
<updated>2015-03-31T14:45:50+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2015-03-31T14:45:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=99bf1b56ece3acd8cc5a0811de8098c828b151c8'/>
<id>99bf1b56ece3acd8cc5a0811de8098c828b151c8</id>
<content type='text'>
Found by Valgrind.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Found by Valgrind.
</pre>
</div>
</content>
</entry>
<entry>
<title>SPDY: always push pending data.</title>
<updated>2015-03-23T18:04:13+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2015-03-23T18:04:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=0e853129ac857bef8d8553a0f90156bb7bd22fb3'/>
<id>0e853129ac857bef8d8553a0f90156bb7bd22fb3</id>
<content type='text'>
This helps to avoid suboptimal behavior when a client waits for a control
frame or more data to increase window size, but the frames have been delayed
in the socket buffer.

The delays can be caused by bad interaction between Nagle's algorithm on
nginx side and delayed ACK on the client side or by TCP_CORK/TCP_NOPUSH
if SPDY was working without SSL and sendfile() was used.

The pushing code is now very similar to ngx_http_set_keepalive().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This helps to avoid suboptimal behavior when a client waits for a control
frame or more data to increase window size, but the frames have been delayed
in the socket buffer.

The delays can be caused by bad interaction between Nagle's algorithm on
nginx side and delayed ACK on the client side or by TCP_CORK/TCP_NOPUSH
if SPDY was working without SSL and sendfile() was used.

The pushing code is now very similar to ngx_http_set_keepalive().
</pre>
</div>
</content>
</entry>
</feed>
