<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/stream, branch release-1.15.8</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Geo: fixed handling of AF_UNIX client addresses (ticket #1684).</title>
<updated>2018-12-14T15:11:06+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2018-12-14T15:11:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ce4a23d144762cfa27c0e4b13f74cada2f7486a8'/>
<id>ce4a23d144762cfa27c0e4b13f74cada2f7486a8</id>
<content type='text'>
Previously, AF_UNIX client addresses were handled as AF_INET, leading
to unexpected results.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, AF_UNIX client addresses were handled as AF_INET, leading
to unexpected results.
</pre>
</div>
</content>
</entry>
<entry>
<title>Negative size buffers detection.</title>
<updated>2018-11-26T15:29:56+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2018-11-26T15:29:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f4c70589ce2875b67554113dc7fe6efc581444d6'/>
<id>f4c70589ce2875b67554113dc7fe6efc581444d6</id>
<content type='text'>
In the past, there were several security issues which resulted in
worker process memory disclosure due to buffers with negative size.
It looks reasonable to check for such buffers in various places,
much like we already check for zero size buffers.

While here, removed "#if 1 / #endif" around zero size buffer checks.
It looks highly unlikely that we'll disable these checks anytime soon.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the past, there were several security issues which resulted in
worker process memory disclosure due to buffers with negative size.
It looks reasonable to check for such buffers in various places,
much like we already check for zero size buffers.

While here, removed "#if 1 / #endif" around zero size buffer checks.
It looks highly unlikely that we'll disable these checks anytime soon.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: revised upstream response time variables.</title>
<updated>2018-11-21T10:40:40+00:00</updated>
<author>
<name>Vladimir Homutov</name>
<email>vl@nginx.com</email>
</author>
<published>2018-11-21T10:40:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=c24146731810f2711da608cd7f3bdca528a3eb14'/>
<id>c24146731810f2711da608cd7f3bdca528a3eb14</id>
<content type='text'>
Variables now do not depend on presence of the HTTP status code in response.
If the corresponding event occurred, variables contain time between request
creation and the event, and "-" otherwise.

Previously, intermediate value of the $upstream_response_time variable held
unix timestamp.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Variables now do not depend on presence of the HTTP status code in response.
If the corresponding event occurred, variables contain time between request
creation and the event, and "-" otherwise.

Previously, intermediate value of the $upstream_response_time variable held
unix timestamp.
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream: proxy_requests directive.</title>
<updated>2018-11-12T13:29:30+00:00</updated>
<author>
<name>Vladimir Homutov</name>
<email>vl@nginx.com</email>
</author>
<published>2018-11-12T13:29:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=41a451e286cb6de9e0a0ad97f91a1dcac17ef68f'/>
<id>41a451e286cb6de9e0a0ad97f91a1dcac17ef68f</id>
<content type='text'>
The directive allows to drop binding between a client and existing UDP stream
session after receiving a specified number of packets.  First packet from the
same client address and port will start a new session.  Old session continues
to exist and will terminate at moment defined by configuration: either after
receiving the expected number of responses, or after timeout, as specified by
the "proxy_responses" and/or "proxy_timeout" directives.

By default, proxy_requests is zero (disabled).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The directive allows to drop binding between a client and existing UDP stream
session after receiving a specified number of packets.  First packet from the
same client address and port will start a new session.  Old session continues
to exist and will terminate at moment defined by configuration: either after
receiving the expected number of responses, or after timeout, as specified by
the "proxy_responses" and/or "proxy_timeout" directives.

By default, proxy_requests is zero (disabled).
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream: session completion check code moved to a separate function.</title>
<updated>2018-11-12T09:05:03+00:00</updated>
<author>
<name>Vladimir Homutov</name>
<email>vl@nginx.com</email>
</author>
<published>2018-11-12T09:05:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=abf04ed87abd048c9f6c2de62f6a771bbd923f8a'/>
<id>abf04ed87abd048c9f6c2de62f6a771bbd923f8a</id>
<content type='text'>
The code refactored to simplify the ngx_stream_proxy_process() function
and facilitate adding new session termination conditions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code refactored to simplify the ngx_stream_proxy_process() function
and facilitate adding new session termination conditions.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: proxy_socket_keepalive and friends.</title>
<updated>2018-10-03T11:08:51+00:00</updated>
<author>
<name>Vladimir Homutov</name>
<email>vl@nginx.com</email>
</author>
<published>2018-10-03T11:08:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=1305b8414d22610b0820f6df5841418bf98fc370'/>
<id>1305b8414d22610b0820f6df5841418bf98fc370</id>
<content type='text'>
The directives enable the use of the SO_KEEPALIVE option on
upstream connections.  By default, the value is left unchanged.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The directives enable the use of the SO_KEEPALIVE option on
upstream connections.  By default, the value is left unchanged.
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream: avoid potential infinite loop at preread phase.</title>
<updated>2018-08-29T12:56:42+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2018-08-29T12:56:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=d9908c6c9a8ef01b36dc604ace4c00c09135372e'/>
<id>d9908c6c9a8ef01b36dc604ace4c00c09135372e</id>
<content type='text'>
Previously the preread phase code ignored NGX_AGAIN value returned from
c-&gt;recv() and relied only on c-&gt;read-&gt;ready.  But this flag is not reliable and
should only be checked for optimization purposes.  For example, when using
SSL, c-&gt;read-&gt;ready may be set when no input is available.  This can lead to
calling preread handler infinitely in a loop.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously the preread phase code ignored NGX_AGAIN value returned from
c-&gt;recv() and relied only on c-&gt;read-&gt;ready.  But this flag is not reliable and
should only be checked for optimization purposes.  For example, when using
SSL, c-&gt;read-&gt;ready may be set when no input is available.  This can lead to
calling preread handler infinitely in a loop.
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream ssl_preread: added SSLv2 Client Hello support.</title>
<updated>2018-07-18T15:51:25+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2018-07-18T15:51:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=b93931ae8292a485e045c36f963d843a74507d1e'/>
<id>b93931ae8292a485e045c36f963d843a74507d1e</id>
<content type='text'>
In particular, it was not possible to obtain SSLv2 protocol version.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In particular, it was not possible to obtain SSLv2 protocol version.
</pre>
</div>
</content>
</entry>
<entry>
<title>SSL: save sessions for upstream peers using a callback function.</title>
<updated>2018-07-17T09:53:23+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2018-07-17T09:53:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=d5a27006e03174aa518f6c849d377a130a7c705c'/>
<id>d5a27006e03174aa518f6c849d377a130a7c705c</id>
<content type='text'>
In TLSv1.3, NewSessionTicket messages arrive after the handshake and
can come at any time.  Therefore we use a callback to save the session
when we know about it.  This approach works for &lt; TLSv1.3 as well.
The callback function is set once per location on merge phase.

Since SSL_get_session() in BoringSSL returns an unresumable session for
TLSv1.3, peer save_session() methods have been updated as well to use a
session supplied within the callback.  To preserve API, the session is
cached in c-&gt;ssl-&gt;session.  It is preferably accessed in save_session()
methods by ngx_ssl_get_session() and ngx_ssl_get0_session() wrappers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In TLSv1.3, NewSessionTicket messages arrive after the handshake and
can come at any time.  Therefore we use a callback to save the session
when we know about it.  This approach works for &lt; TLSv1.3 as well.
The callback function is set once per location on merge phase.

Since SSL_get_session() in BoringSSL returns an unresumable session for
TLSv1.3, peer save_session() methods have been updated as well to use a
session supplied within the callback.  To preserve API, the session is
cached in c-&gt;ssl-&gt;session.  It is preferably accessed in save_session()
methods by ngx_ssl_get_session() and ngx_ssl_get0_session() wrappers.
</pre>
</div>
</content>
</entry>
<entry>
<title>Events: moved sockets cloning to ngx_event_init_conf().</title>
<updated>2018-07-12T16:50:02+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2018-07-12T16:50:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=751bdd3bb2b6ff54be09c37ff328f258fed520fb'/>
<id>751bdd3bb2b6ff54be09c37ff328f258fed520fb</id>
<content type='text'>
Previously, listenings sockets were not cloned if the worker_processes
directive was specified after "listen ... reuseport".

This also simplifies upcoming configuration check on the number
of worker connections, as it needs to know the number of listening
sockets before cloning.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, listenings sockets were not cloned if the worker_processes
directive was specified after "listen ... reuseport".

This also simplifies upcoming configuration check on the number
of worker connections, as it needs to know the number of listening
sockets before cloning.
</pre>
</div>
</content>
</entry>
</feed>
