<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ranch.git, branch 1.8.0</title>
<subtitle>Socket acceptor pool for TCP protocols.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/'/>
<entry>
<title>Ranch 1.8.0</title>
<updated>2021-04-23T17:56:17+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2021-04-23T17:56:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=a692f44567034dacf5efcaa24a24183788594eb7'/>
<id>a692f44567034dacf5efcaa24a24183788594eb7</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>Use ssl:handshake instead of ssl:ssl_accept</title>
<updated>2021-04-17T14:32:02+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2019-05-09T08:18:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=281c409f702c36c79564f0a257308724e7917b39'/>
<id>281c409f702c36c79564f0a257308724e7917b39</id>
<content type='text'>
This makes Ranch require OTP-21+.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes Ranch require OTP-21+.
</pre>
</div>
</content>
</entry>
<entry>
<title>Ranch 1.7.1</title>
<updated>2018-11-28T10:35:20+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-11-28T10:35:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=3190aef88aea04d6dce8545fe9b4574288903f44'/>
<id>3190aef88aea04d6dce8545fe9b4574288903f44</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use the correct CRC32 algorithm for the PROXY header</title>
<updated>2018-11-26T10:52:27+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-11-26T10:52:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=0d9ad0a8445e7ba6e8bf9591257fa4457dda8321'/>
<id>0d9ad0a8445e7ba6e8bf9591257fa4457dda8321</id>
<content type='text'>
Turns out it wasn't the plain CRC32 algorithm that should have
been used, whoops!

The implementation was adapted from pseudo code from
Thomas Cioppettini.

I've renamed the PROXY header building option value for
checksum from crc32 to crc32c and updated the documentation.
There is no support for plain crc32 checksums.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Turns out it wasn't the plain CRC32 algorithm that should have
been used, whoops!

The implementation was adapted from pseudo code from
Thomas Cioppettini.

I've renamed the PROXY header building option value for
checksum from crc32 to crc32c and updated the documentation.
There is no support for plain crc32 checksums.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update the migration guide for 1.7</title>
<updated>2018-11-14T10:53:27+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-11-14T10:53:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=7423a7bb6dde5edc26283544956ae7387fa69688'/>
<id>7423a7bb6dde5edc26283544956ae7387fa69688</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Document the PROXY-related functions; prepare 1.7.0</title>
<updated>2018-11-14T09:55:23+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-11-14T09:55:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=2f502078fd0f56e3e61e58f1d57ae15f9f736ffe'/>
<id>2f502078fd0f56e3e61e58f1d57ae15f9f736ffe</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Always recompile ct_helper in CI</title>
<updated>2018-10-23T13:41:04+00:00</updated>
<author>
<name>Loïc Hoguin</name>
<email>essen@ninenines.eu</email>
</author>
<published>2018-10-23T13:41:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/ranch.git/commit/?id=4d0ae7e8c646d00eb868fdee11756b1770a3b976'/>
<id>4d0ae7e8c646d00eb868fdee11756b1770a3b976</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>
</feed>
