<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/stream/ngx_stream_core_module.c, branch release-1.28.2</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Stream: allow servers with no handler.</title>
<updated>2024-06-27T13:29:56+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2024-06-27T13:29:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=788e462c5b81f5f1aee475488e10f01680c530e9'/>
<id>788e462c5b81f5f1aee475488e10f01680c530e9</id>
<content type='text'>
Previously handlers were mandatory.  However they are not always needed.
For example, a server configured with ssl_reject_handshake does not need a
handler.  Such servers required a fake handler to pass the check.  Now handler
absence check is moved to runtime.  If handler is missing, the connection is
closed with 500 code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously handlers were mandatory.  However they are not always needed.
For example, a server configured with ssl_reject_handshake does not need a
handler.  Such servers required a fake handler to pass the check.  Now handler
absence check is moved to runtime.  If handler is missing, the connection is
closed with 500 code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream: moved fastopen compatibility check.</title>
<updated>2024-01-18T15:12:38+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2024-01-18T15:12:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=45e166b4a4a0e8d0e0f8adeb3438e4745261e8da'/>
<id>45e166b4a4a0e8d0e0f8adeb3438e4745261e8da</id>
<content type='text'>
The move makes the code look similar to the corresponding code in http module.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The move makes the code look similar to the corresponding code in http module.
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream: the "setfib" parameter of the "listen" directive.</title>
<updated>2024-03-22T10:53:19+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2024-03-22T10:53:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=bd190d825ceeacf105a2392d88734f21df35d89a'/>
<id>bd190d825ceeacf105a2392d88734f21df35d89a</id>
<content type='text'>
The FreeBSD SO_SETFIB support.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The FreeBSD SO_SETFIB support.
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream: the "accept_filter" parameter of the "listen" directive.</title>
<updated>2024-03-22T10:53:19+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2024-03-22T10:53:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=04b9bfe55d414bfed8a7aefa3162d81af26532b4'/>
<id>04b9bfe55d414bfed8a7aefa3162d81af26532b4</id>
<content type='text'>
The FreeBSD accept filters support.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The FreeBSD accept filters support.
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream: the "deferred" parameter of the "listen" directive.</title>
<updated>2024-03-22T10:53:19+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2024-03-22T10:53:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=03eba69013eb4f4499a5c09f72338ab95ce00801'/>
<id>03eba69013eb4f4499a5c09f72338ab95ce00801</id>
<content type='text'>
The Linux TCP_DEFER_ACCEPT support.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Linux TCP_DEFER_ACCEPT support.
</pre>
</div>
</content>
</entry>
<entry>
<title>Overhauled some diagnostic messages akin to 1b05b9bbcebf.</title>
<updated>2024-03-22T10:51:14+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2024-03-22T10:51:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ae1948aa40c48a97f2e171acb84eb04bfcbe1307'/>
<id>ae1948aa40c48a97f2e171acb84eb04bfcbe1307</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream: virtual servers.</title>
<updated>2023-12-14T17:58:39+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2023-12-14T17:58:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=d21675228a0ba8d4331e05c60660228a5d3326de'/>
<id>d21675228a0ba8d4331e05c60660228a5d3326de</id>
<content type='text'>
Server name is taken either from ngx_stream_ssl_module or
ngx_stream_ssl_preread_module.

The change adds "default_server" parameter to the "listen" directive,
as well as the following directives: "server_names_hash_max_size",
"server_names_hash_bucket_size", "server_name" and "ssl_reject_handshake".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Server name is taken either from ngx_stream_ssl_module or
ngx_stream_ssl_preread_module.

The change adds "default_server" parameter to the "listen" directive,
as well as the following directives: "server_names_hash_max_size",
"server_names_hash_bucket_size", "server_name" and "ssl_reject_handshake".
</pre>
</div>
</content>
</entry>
<entry>
<title>Stream: socket peek in preread phase.</title>
<updated>2023-12-13T14:04:55+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2023-12-13T14:04:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=72e5d6ac19a93c9fb64678dd33ea185757a6021a'/>
<id>72e5d6ac19a93c9fb64678dd33ea185757a6021a</id>
<content type='text'>
Previously, preread buffer was always read out from socket, which made it
impossible to terminate SSL on the connection without introducing additional
SSL BIOs.  The following patches will rely on this.

Now, when possible, recv(MSG_PEEK) is used instead, which keeps data in socket.
It's called if SSL is not already terminated and if an egde-triggered event
method is used.  For epoll, EPOLLRDHUP support is also required.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, preread buffer was always read out from socket, which made it
impossible to terminate SSL on the connection without introducing additional
SSL BIOs.  The following patches will rely on this.

Now, when possible, recv(MSG_PEEK) is used instead, which keeps data in socket.
It's called if SSL is not already terminated and if an egde-triggered event
method is used.  For epoll, EPOLLRDHUP support is also required.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed port ranges support in the listen directive.</title>
<updated>2022-12-18T18:29:02+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@wbsrv.ru</email>
</author>
<published>2022-12-18T18:29:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=641368249c319a833a7d9c4256cd9fd1b3e29a39'/>
<id>641368249c319a833a7d9c4256cd9fd1b3e29a39</id>
<content type='text'>
Ports difference must be respected when checking addresses for duplicates,
otherwise configurations like this are broken:

  listen 127.0.0.1:6000-6005

It was broken by 4cc2bfeff46c (nginx 1.23.3).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ports difference must be respected when checking addresses for duplicates,
otherwise configurations like this are broken:

  listen 127.0.0.1:6000-6005

It was broken by 4cc2bfeff46c (nginx 1.23.3).
</pre>
</div>
</content>
</entry>
<entry>
<title>Filtering duplicate addresses in listen (ticket #2400).</title>
<updated>2022-11-23T14:30:08+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2022-11-23T14:30:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=22223c75c9715e568f5710a8eed1fee9e7c2983f'/>
<id>22223c75c9715e568f5710a8eed1fee9e7c2983f</id>
<content type='text'>
Due to the glibc bug[1], getaddrinfo("localhost") with AI_ADDRCONFIG
on a typical host with glibc and without IPv6 returns two 127.0.0.1
addresses, and therefore "listen localhost:80;" used to result in
"duplicate ... address and port pair" after 4f9b72a229c1.

Fix is to explicitly filter out duplicate addresses returned during
resolution of a name.

[1] https://sourceware.org/bugzilla/show_bug.cgi?id=14969
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Due to the glibc bug[1], getaddrinfo("localhost") with AI_ADDRCONFIG
on a typical host with glibc and without IPv6 returns two 127.0.0.1
addresses, and therefore "listen localhost:80;" used to result in
"duplicate ... address and port pair" after 4f9b72a229c1.

Fix is to explicitly filter out duplicate addresses returned during
resolution of a name.

[1] https://sourceware.org/bugzilla/show_bug.cgi?id=14969
</pre>
</div>
</content>
</entry>
</feed>
