<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/http, branch release-1.7.3</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Upstream: p-&gt;downstream_error instead of closing connection.</title>
<updated>2014-07-04T16:47:16+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-07-04T16:47:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=4a75e1a63c5cf3d278c7d7e50e012391b44b5e3c'/>
<id>4a75e1a63c5cf3d278c7d7e50e012391b44b5e3c</id>
<content type='text'>
Previously, nginx closed client connection in cases when a response body
from upstream was needed to be cached or stored but shouldn't be sent to
the client.  While this is normal for HTTP, it is unacceptable for SPDY.

Fix is to use instead the p-&gt;downstream_error flag to prevent nginx from
sending anything downstream.  To make this work, the event pipe code was
modified to properly cache empty responses with the flag set.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, nginx closed client connection in cases when a response body
from upstream was needed to be cached or stored but shouldn't be sent to
the client.  While this is normal for HTTP, it is unacceptable for SPDY.

Fix is to use instead the p-&gt;downstream_error flag to prevent nginx from
sending anything downstream.  To make this work, the event pipe code was
modified to properly cache empty responses with the flag set.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: fixed handling of write event after sending request.</title>
<updated>2014-07-01T16:52:08+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2014-07-01T16:52:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=3c2b5e88abbe6ff7e65b95708894208dd2828288'/>
<id>3c2b5e88abbe6ff7e65b95708894208dd2828288</id>
<content type='text'>
The ngx_http_upstream_dummy_handler() must be set regardless of
the read event state.  This prevents possible additional call of
ngx_http_upstream_send_request_handler().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ngx_http_upstream_dummy_handler() must be set regardless of
the read event state.  This prevents possible additional call of
ngx_http_upstream_send_request_handler().
</pre>
</div>
</content>
</entry>
<entry>
<title>SSL: the "ssl_password_file" directive.</title>
<updated>2014-06-16T15:43:25+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2014-06-16T15:43:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=9f8785ae5e5d99d6476af1a8efda321c1b92733e'/>
<id>9f8785ae5e5d99d6476af1a8efda321c1b92733e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed wrong sizeof() in ngx_http_init_locations().</title>
<updated>2014-06-25T23:34:13+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-06-25T23:34:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=25250a20d2827954d427222f1f4b1e26c8729d7f'/>
<id>25250a20d2827954d427222f1f4b1e26c8729d7f</id>
<content type='text'>
There is no real difference on all known platforms, but it's still wrong.

Found by Coverity (CID 400876).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is no real difference on all known platforms, but it's still wrong.

Found by Coverity (CID 400876).
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: cache revalidation using If-None-Match.</title>
<updated>2014-06-25T22:35:01+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-06-25T22:35:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=46ac5c760c0d460cbbd8e23a1154326569559e3d'/>
<id>46ac5c760c0d460cbbd8e23a1154326569559e3d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: ETag now saved into cache header.</title>
<updated>2014-06-25T22:28:23+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-06-25T22:28:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=b8129616776a6973b314f71901420ad6d38aa579'/>
<id>b8129616776a6973b314f71901420ad6d38aa579</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: version in cache files.</title>
<updated>2014-06-25T22:27:21+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-06-25T22:27:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=c2e49a4196749676ccea31ae645c5d3eb4408520'/>
<id>c2e49a4196749676ccea31ae645c5d3eb4408520</id>
<content type='text'>
This allows to change the structure of cache files without spamming logs
with false alerts.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows to change the structure of cache files without spamming logs
with false alerts.
</pre>
</div>
</content>
</entry>
<entry>
<title>Entity tags: explicit flag to skip not modified filter.</title>
<updated>2014-06-25T22:27:11+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-06-25T22:27:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=8f9fb9570efceb1ff2376289628cf03b8e4bea76'/>
<id>8f9fb9570efceb1ff2376289628cf03b8e4bea76</id>
<content type='text'>
Previously, last_modified_time was tested against -1 to check if the
not modified filter should be skipped.  Notably, this prevented nginx
from additional If-Modified-Since (et al.) checks on proxied responses.
Such behaviour is suboptimal in some cases though, as checks are always
skipped on responses from a cache with ETag only (without Last-Modified),
resulting in If-None-Match being ignored in such cases.  Additionally,
it was not possible to return 412 from the If-Unmodified-Since if last
modification time was not known for some reason.

This change introduces explicit r-&gt;disable_not_modified flag instead,
which is set by ngx_http_upstream_process_headers().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, last_modified_time was tested against -1 to check if the
not modified filter should be skipped.  Notably, this prevented nginx
from additional If-Modified-Since (et al.) checks on proxied responses.
Such behaviour is suboptimal in some cases though, as checks are always
skipped on responses from a cache with ETag only (without Last-Modified),
resulting in If-None-Match being ignored in such cases.  Additionally,
it was not possible to return 412 from the If-Unmodified-Since if last
modification time was not known for some reason.

This change introduces explicit r-&gt;disable_not_modified flag instead,
which is set by ngx_http_upstream_process_headers().
</pre>
</div>
</content>
</entry>
<entry>
<title>Entity tags: weak comparison for If-None-Match.</title>
<updated>2014-06-25T22:21:20+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-06-25T22:21:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=feb1649049e777b11ccddad703e8e36e7821d529'/>
<id>feb1649049e777b11ccddad703e8e36e7821d529</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Entity tags: downgrade strong etags to weak ones as needed.</title>
<updated>2014-06-25T22:21:01+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-06-25T22:21:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=def16742a1ec22ece8279185eb2b798eb5ffa031'/>
<id>def16742a1ec22ece8279185eb2b798eb5ffa031</id>
<content type='text'>
See http://mailman.nginx.org/pipermail/nginx-devel/2013-November/004523.html.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See http://mailman.nginx.org/pipermail/nginx-devel/2013-November/004523.html.
</pre>
</div>
</content>
</entry>
</feed>
