<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ranch.git/test, branch 1.8.x</title>
<subtitle>Socket acceptor pool for TCP protocols.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/'/>
<entry>
<title>Fix ssl tests for recent OTP versions</title>
<updated>2025-02-14T10:33:15+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2023-04-12T08:55:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=734e66b41e74f119e869e5931b2d93b84f67d6a7'/>
<id>734e66b41e74f119e869e5931b2d93b84f67d6a7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Unconditionally run tests that use tracing</title>
<updated>2021-04-19T13:57:50+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2021-04-19T12:41:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=3b9deefd7df04af8becc832c36d83d08138be2c4'/>
<id>3b9deefd7df04af8becc832c36d83d08138be2c4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Unconditionally run SNI/getstat tests</title>
<updated>2021-04-19T10:56:08+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2021-04-19T10:56:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=a000af5e1b3e956dc4edb4374ea6cb7fde841285'/>
<id>a000af5e1b3e956dc4edb4374ea6cb7fde841285</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add ranch:recv_proxy_header/2</title>
<updated>2018-10-23T10:10:53+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-10-23T10:10:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=d2720842a63dc7bc6ac01d9e2866bfa78cb39aa5'/>
<id>d2720842a63dc7bc6ac01d9e2866bfa78cb39aa5</id>
<content type='text'>
This is the function that should be called regardless of
TCP or TLS being used. The proper usage for this function is:

{ok, ProxyInfo} = ranch:recv_proxy_header(Ref, Timeout),
{ok, Socket} = ranch:handshake(Ref),
...

Ranch takes care of everything else under the hood. Transports
now need to have a Transport:recv_proxy_header/2 function. For
ranch_ssl the function gets the port from the sslsocket() record
and then calls ranch_tcp:recv_proxy_header/2 with it.

This means that two undocumented features are currently used for
this, but the interface is really nice so that's a sacrifice
worth doing. Also worth noting is that OTP 22 should have an
alternative for gen_tcp:unrecv/2 so the only real issue is about
the sslsocket() record at the moment.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the function that should be called regardless of
TCP or TLS being used. The proper usage for this function is:

{ok, ProxyInfo} = ranch:recv_proxy_header(Ref, Timeout),
{ok, Socket} = ranch:handshake(Ref),
...

Ranch takes care of everything else under the hood. Transports
now need to have a Transport:recv_proxy_header/2 function. For
ranch_ssl the function gets the port from the sslsocket() record
and then calls ranch_tcp:recv_proxy_header/2 with it.

This means that two undocumented features are currently used for
this, but the interface is really nice so that's a sacrifice
worth doing. Also worth noting is that OTP 22 should have an
alternative for gen_tcp:unrecv/2 so the only real issue is about
the sslsocket() record at the moment.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a race condition on restart after listener_sup crash</title>
<updated>2018-10-10T14:22:19+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-10-10T14:22:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=7d3c65a6db5e267eb0a3f2503c9fa1264b559e73'/>
<id>7d3c65a6db5e267eb0a3f2503c9fa1264b559e73</id>
<content type='text'>
The race condition occurs when the restart is faster than
the cleaning up. With this commit the restart will perform
the cleanup if it was not done beforehand.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The race condition occurs when the restart is faster than
the cleaning up. With this commit the restart will perform
the cleanup if it was not done beforehand.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove a Dialyzer warning in a test protocol</title>
<updated>2018-10-10T10:12:41+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-10-10T10:12:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=19195e64996e465fdf4788c076cbefe89a153fd3'/>
<id>19195e64996e465fdf4788c076cbefe89a153fd3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add ranch_tcp:recv_proxy_header/2</title>
<updated>2018-10-10T09:55:50+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-10-10T09:54:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=4b9970bcd725972dbd845e07c34a8ef8409ec04c'/>
<id>4b9970bcd725972dbd845e07c34a8ef8409ec04c</id>
<content type='text'>
This uses the undocumented function gen_tcp:unrecv/2.

Tests have been added for both gen_tcp and ssl connections,
including sending data in the same first packet, at least
for gen_tcp (ssl tests may or may not end up buffering some
of the TLS handshake before the recv call, but there's no
guarantees).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This uses the undocumented function gen_tcp:unrecv/2.

Tests have been added for both gen_tcp and ssl connections,
including sending data in the same first packet, at least
for gen_tcp (ssl tests may or may not end up buffering some
of the TLS handshake before the recv call, but there's no
guarantees).
</pre>
</div>
</content>
</entry>
<entry>
<title>Use fn/1,2 instead of fn/{1,2} everywhere</title>
<updated>2018-08-01T13:07:37+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-08-01T13:07:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=7e111201f621243101fe588ce7927757402586cb'/>
<id>7e111201f621243101fe588ce7927757402586cb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a test failing in native mode</title>
<updated>2018-08-01T06:32:51+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-08-01T06:32:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=e8aaf4a6d52af5430d74dc28bf22f1e2014c15c1'/>
<id>e8aaf4a6d52af5430d74dc28bf22f1e2014c15c1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a logger transport option</title>
<updated>2018-07-05T07:01:49+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-07-05T07:01:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=8759b87a29c1318075e277eb35930396e35b1a6d'/>
<id>8759b87a29c1318075e277eb35930396e35b1a6d</id>
<content type='text'>
I had to use the process dictionary to work around the current
interface for one log call. You have been warned.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I had to use the process dictionary to work around the current
interface for one log call. You have been warned.
</pre>
</div>
</content>
</entry>
</feed>
