<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/http/modules, branch release-1.11.5</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Realip: fixed duplicate processing on redirects (ticket #1098).</title>
<updated>2016-10-06T20:16:05+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2016-10-06T20:16:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=52892835ef16ea15a77e2407099e0de0dfcc8a28'/>
<id>52892835ef16ea15a77e2407099e0de0dfcc8a28</id>
<content type='text'>
Duplicate processing was possible if the address set by realip was
listed in set_realip_from, and there was an internal redirect so module
context was cleared.  This resulted in exactly the same address being set,
so this wasn't a problem before the $realip_remote_addr variable was
introduced, though now results in incorrect $realip_remote_addr being
picked.

Fix is to use ngx_http_realip_get_module_ctx() to look up module context
even if it was cleared.  Additionally, the order of checks was switched to
check the configuration first as it looks more effective.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Duplicate processing was possible if the address set by realip was
listed in set_realip_from, and there was an internal redirect so module
context was cleared.  This resulted in exactly the same address being set,
so this wasn't a problem before the $realip_remote_addr variable was
introduced, though now results in incorrect $realip_remote_addr being
picked.

Fix is to use ngx_http_realip_get_module_ctx() to look up module context
even if it was cleared.  Additionally, the order of checks was switched to
check the configuration first as it looks more effective.
</pre>
</div>
</content>
</entry>
<entry>
<title>Addition filter: set last_in_chain flag when clearing last_buf.</title>
<updated>2016-10-03T18:03:27+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2016-10-03T18:03:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=967ebbec321b1daa6632ab843b2dd2346a9fa8d0'/>
<id>967ebbec321b1daa6632ab843b2dd2346a9fa8d0</id>
<content type='text'>
When the last_buf flag is cleared for add_after_body to append more data from a
subrequest, other filters may still have buffered data, which should be flushed
at this point.  For example, the sub_filter may have a partial match buffered,
which will only be flushed after the subrequest is done, ending up with
interleaved data in output.

Setting last_in_chain instead of last_buf flushes the data and fixes the order
of output buffers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the last_buf flag is cleared for add_after_body to append more data from a
subrequest, other filters may still have buffered data, which should be flushed
at this point.  For example, the sub_filter may have a partial match buffered,
which will only be flushed after the subrequest is done, ending up with
interleaved data in output.

Setting last_in_chain instead of last_buf flushes the data and fixes the order
of output buffers.
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not set last_buf flag in subrequests.</title>
<updated>2016-10-03T17:48:51+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2016-10-03T17:48:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f3bbd1c87f0bc97367603c3254c1465d3c622d1f'/>
<id>f3bbd1c87f0bc97367603c3254c1465d3c622d1f</id>
<content type='text'>
The last_buf flag should only be set in the last buffer of the main request.
Otherwise, several last_buf flags can appear in output.  This can, for example,
break the chunked filter, which will include several final chunks in output.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The last_buf flag should only be set in the last buffer of the main request.
Otherwise, several last_buf flags can appear in output.  This can, for example,
break the chunked filter, which will include several final chunks in output.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: max_conns.</title>
<updated>2016-09-22T16:32:47+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2016-09-22T16:32:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f674f32c09c9938d5f2b19509166e5c5e28a9e3c'/>
<id>f674f32c09c9938d5f2b19509166e5c5e28a9e3c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: removed the quick recovery mechanism.</title>
<updated>2016-09-22T16:32:45+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2016-09-22T16:32:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=fd9e74f656b3a7683424304da3bc859988407acf'/>
<id>fd9e74f656b3a7683424304da3bc859988407acf</id>
<content type='text'>
Its usefulness it questionable, and it interacts badly with max_conns.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Its usefulness it questionable, and it interacts badly with max_conns.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: style.</title>
<updated>2016-09-22T16:31:08+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2016-09-22T16:31:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=017cf96c9b3d29f6a95423d22cdea63587c3d67e'/>
<id>017cf96c9b3d29f6a95423d22cdea63587c3d67e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Perl: pass additional linker options to perl module.</title>
<updated>2016-09-20T19:11:23+00:00</updated>
<author>
<name>Konstantin Pavlov</name>
<email>thresh@nginx.com</email>
</author>
<published>2016-09-20T19:11:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=c8526aca2529ee0095afc3016a2f4106a9aeefdf'/>
<id>c8526aca2529ee0095afc3016a2f4106a9aeefdf</id>
<content type='text'>
Previously flags passed by --with-ld-opt were not used when building perl
module, which meant hardening flags provided by package build systems were not
applied.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously flags passed by --with-ld-opt were not used when building perl
module, which meant hardening flags provided by package build systems were not
applied.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream hash: fixed missing upstream name initialization.</title>
<updated>2016-09-16T12:13:24+00:00</updated>
<author>
<name>Vladimir Homutov</name>
<email>vl@nginx.com</email>
</author>
<published>2016-09-16T12:13:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f8a9d528df92c7634088e575e5c3d63a1d4ab8ea'/>
<id>f8a9d528df92c7634088e575e5c3d63a1d4ab8ea</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Realip: fixed uninitialized memory access.</title>
<updated>2016-09-01T11:33:51+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2016-09-01T11:33:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=c6ba4aae38af53a378a57fd196fe32ccb3b4131d'/>
<id>c6ba4aae38af53a378a57fd196fe32ccb3b4131d</id>
<content type='text'>
Previously, the realip module could be left with uninitialized context after an
error in the ngx_http_realip_set_addr() function.  That context could be later
accessed by $realip_remote_addr and $realip_remote_port variable handlers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, the realip module could be left with uninitialized context after an
error in the ngx_http_realip_set_addr() function.  That context could be later
accessed by $realip_remote_addr and $realip_remote_port variable handlers.
</pre>
</div>
</content>
</entry>
<entry>
<title>Geo: fixed indentation.</title>
<updated>2016-08-25T09:59:39+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2016-08-25T09:59:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=78031177f41a8686f0402b3ec7240870bca314af'/>
<id>78031177f41a8686f0402b3ec7240870bca314af</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
