summaryrefslogtreecommitdiffstats
path: root/docs/en/ranch
diff options
context:
space:
mode:
Diffstat (limited to 'docs/en/ranch')
-rw-r--r--docs/en/ranch/1.4/guide/embedded/index.html2
-rw-r--r--docs/en/ranch/1.4/guide/internals/index.html2
-rw-r--r--docs/en/ranch/1.4/guide/listeners/index.html32
-rw-r--r--docs/en/ranch/1.4/guide/parsers/index.html6
-rw-r--r--docs/en/ranch/1.4/guide/protocols/index.html6
-rw-r--r--docs/en/ranch/1.4/guide/ssl_auth/index.html6
-rw-r--r--docs/en/ranch/1.4/guide/transports/index.html14
-rw-r--r--docs/en/ranch/1.4/manual/ranch/index.html2
-rw-r--r--docs/en/ranch/1.4/manual/ranch_ssl/index.html2
-rw-r--r--docs/en/ranch/1.4/manual/ranch_tcp/index.html2
-rw-r--r--docs/en/ranch/1.5/guide/embedded/index.html2
-rw-r--r--docs/en/ranch/1.5/guide/internals/index.html2
-rw-r--r--docs/en/ranch/1.5/guide/listeners/index.html32
-rw-r--r--docs/en/ranch/1.5/guide/parsers/index.html6
-rw-r--r--docs/en/ranch/1.5/guide/protocols/index.html6
-rw-r--r--docs/en/ranch/1.5/guide/ssl_auth/index.html6
-rw-r--r--docs/en/ranch/1.5/guide/transports/index.html14
-rw-r--r--docs/en/ranch/1.5/manual/ranch/index.html2
-rw-r--r--docs/en/ranch/1.5/manual/ranch_ssl/index.html2
-rw-r--r--docs/en/ranch/1.5/manual/ranch_tcp/index.html2
-rw-r--r--docs/en/ranch/1.6/guide/embedded/index.html2
-rw-r--r--docs/en/ranch/1.6/guide/internals/index.html2
-rw-r--r--docs/en/ranch/1.6/guide/listeners/index.html40
-rw-r--r--docs/en/ranch/1.6/guide/parsers/index.html6
-rw-r--r--docs/en/ranch/1.6/guide/protocols/index.html6
-rw-r--r--docs/en/ranch/1.6/guide/ssl_auth/index.html6
-rw-r--r--docs/en/ranch/1.6/guide/transports/index.html16
-rw-r--r--docs/en/ranch/1.6/manual/index.html2
-rw-r--r--docs/en/ranch/1.6/manual/ranch.child_spec/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.get_addr/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.get_max_connections/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.get_port/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.get_protocol_options/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.get_status/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.get_transport_options/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.handshake/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.info/index.html6
-rw-r--r--docs/en/ranch/1.6/manual/ranch.procs/index.html6
-rw-r--r--docs/en/ranch/1.6/manual/ranch.remove_connection/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.resume_listener/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.set_max_connections/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.set_protocol_options/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.set_transport_options/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.start_listener/index.html8
-rw-r--r--docs/en/ranch/1.6/manual/ranch.stop_listener/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.suspend_listener/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.wait_for_connections/index.html6
-rw-r--r--docs/en/ranch/1.6/manual/ranch/index.html8
-rw-r--r--docs/en/ranch/1.6/manual/ranch_app/index.html2
-rw-r--r--docs/en/ranch/1.6/manual/ranch_protocol/index.html2
-rw-r--r--docs/en/ranch/1.6/manual/ranch_ssl/index.html6
-rw-r--r--docs/en/ranch/1.6/manual/ranch_tcp/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch_transport.sendfile/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch_transport/index.html40
-rw-r--r--docs/en/ranch/1.7/guide/embedded/index.html2
-rw-r--r--docs/en/ranch/1.7/guide/internals/index.html2
-rw-r--r--docs/en/ranch/1.7/guide/listeners/index.html40
-rw-r--r--docs/en/ranch/1.7/guide/parsers/index.html6
-rw-r--r--docs/en/ranch/1.7/guide/protocols/index.html6
-rw-r--r--docs/en/ranch/1.7/guide/ssl_auth/index.html6
-rw-r--r--docs/en/ranch/1.7/guide/transports/index.html16
-rw-r--r--docs/en/ranch/1.7/manual/index.html2
-rw-r--r--docs/en/ranch/1.7/manual/ranch.child_spec/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.get_addr/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.get_max_connections/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.get_port/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.get_protocol_options/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.get_status/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.get_transport_options/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.handshake/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.info/index.html6
-rw-r--r--docs/en/ranch/1.7/manual/ranch.procs/index.html6
-rw-r--r--docs/en/ranch/1.7/manual/ranch.recv_proxy_header/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.remove_connection/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.resume_listener/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.set_max_connections/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.set_protocol_options/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.set_transport_options/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.start_listener/index.html8
-rw-r--r--docs/en/ranch/1.7/manual/ranch.stop_listener/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.suspend_listener/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.wait_for_connections/index.html6
-rw-r--r--docs/en/ranch/1.7/manual/ranch/index.html8
-rw-r--r--docs/en/ranch/1.7/manual/ranch_app/index.html2
-rw-r--r--docs/en/ranch/1.7/manual/ranch_protocol/index.html2
-rw-r--r--docs/en/ranch/1.7/manual/ranch_proxy_header.header/index.html6
-rw-r--r--docs/en/ranch/1.7/manual/ranch_proxy_header.parse/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch_proxy_header/index.html2
-rw-r--r--docs/en/ranch/1.7/manual/ranch_ssl/index.html6
-rw-r--r--docs/en/ranch/1.7/manual/ranch_tcp/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch_transport.sendfile/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch_transport/index.html40
-rw-r--r--docs/en/ranch/2.0/guide/connection_draining/index.html8
-rw-r--r--docs/en/ranch/2.0/guide/embedded/index.html2
-rw-r--r--docs/en/ranch/2.0/guide/internals/index.html2
-rw-r--r--docs/en/ranch/2.0/guide/listeners.asciidoc4
-rw-r--r--docs/en/ranch/2.0/guide/listeners/index.html46
-rw-r--r--docs/en/ranch/2.0/guide/migrating_from_1.7.asciidoc15
-rw-r--r--docs/en/ranch/2.0/guide/migrating_from_1.7/index.html10
-rw-r--r--docs/en/ranch/2.0/guide/parsers/index.html6
-rw-r--r--docs/en/ranch/2.0/guide/protocols.asciidoc2
-rw-r--r--docs/en/ranch/2.0/guide/protocols/index.html8
-rw-r--r--docs/en/ranch/2.0/guide/ssl_auth/index.html6
-rw-r--r--docs/en/ranch/2.0/guide/transports/index.html16
-rw-r--r--docs/en/ranch/2.0/manual/index.html2
-rw-r--r--docs/en/ranch/2.0/manual/ranch.child_spec/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.get_addr/index.html6
-rw-r--r--docs/en/ranch/2.0/manual/ranch.get_max_connections/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.get_port/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.get_protocol_options/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.get_status/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.get_transport_options/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.handshake/index.html22
-rw-r--r--docs/en/ranch/2.0/manual/ranch.handshake_cancel/index.html198
-rw-r--r--docs/en/ranch/2.0/manual/ranch.handshake_continue/index.html208
-rw-r--r--docs/en/ranch/2.0/manual/ranch.info/index.html6
-rw-r--r--docs/en/ranch/2.0/manual/ranch.procs/index.html6
-rw-r--r--docs/en/ranch/2.0/manual/ranch.recv_proxy_header/index.html6
-rw-r--r--docs/en/ranch/2.0/manual/ranch.remove_connection/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.resume_listener/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.set_max_connections/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.set_protocol_options/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.set_transport_options/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.start_listener/index.html8
-rw-r--r--docs/en/ranch/2.0/manual/ranch.stop_listener/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.suspend_listener/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.wait_for_connections/index.html6
-rw-r--r--docs/en/ranch/2.0/manual/ranch/index.html12
-rw-r--r--docs/en/ranch/2.0/manual/ranch_app/index.html2
-rw-r--r--docs/en/ranch/2.0/manual/ranch_protocol/index.html2
-rw-r--r--docs/en/ranch/2.0/manual/ranch_proxy_header.header/index.html6
-rw-r--r--docs/en/ranch/2.0/manual/ranch_proxy_header.parse/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch_proxy_header/index.html2
-rw-r--r--docs/en/ranch/2.0/manual/ranch_ssl/index.html11
-rw-r--r--docs/en/ranch/2.0/manual/ranch_tcp/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch_transport.sendfile/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch_transport/index.html79
137 files changed, 938 insertions, 461 deletions
diff --git a/docs/en/ranch/1.4/guide/embedded/index.html b/docs/en/ranch/1.4/guide/embedded/index.html
index b5898308..cf6a3c3b 100644
--- a/docs/en/ranch/1.4/guide/embedded/index.html
+++ b/docs/en/ranch/1.4/guide/embedded/index.html
@@ -70,7 +70,7 @@
<p>As for <code>ranch_sup</code>, the child spec is simple enough to not require a convenience function.</p>
<p>The following example adds both <code>ranch_sup</code> and one listener to another application&apos;s supervision tree.</p>
<div class="listingblock"><div class="title">Embed Ranch directly in your supervision tree</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.4/guide/internals/index.html b/docs/en/ranch/1.4/guide/internals/index.html
index b32cec50..17d9bd06 100644
--- a/docs/en/ranch/1.4/guide/internals/index.html
+++ b/docs/en/ranch/1.4/guide/internals/index.html
@@ -82,7 +82,7 @@
<p>This is especially useful if you expect many connections to be mostly idle, perhaps part of a connection pool. They can be handled by the kernel directly until they send any real data, instead of allocating resources to idle connections.</p>
<p>To enable this mechanism, the following option can be used.</p>
<div class="listingblock"><div class="title">Using raw transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.4/guide/listeners/index.html b/docs/en/ranch/1.4/guide/listeners/index.html
index e83d3a83..ef326582 100644
--- a/docs/en/ranch/1.4/guide/listeners/index.html
+++ b/docs/en/ranch/1.4/guide/listeners/index.html
@@ -80,7 +80,7 @@
<p>Ranch includes both TCP and SSL transport handlers, respectively <code>ranch_tcp</code> and <code>ranch_ssl</code>.</p>
<p>A listener can be started by calling the <code>ranch:start_listener/5</code> function. Before doing so however, you must ensure that the <code>ranch</code> application is started.</p>
<div class="listingblock"><div class="title">Starting the Ranch application</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You are then ready to start a listener. Let&apos;s call it <code>tcp_echo</code>. It will have a pool of 100 acceptors, use a TCP transport and forward connections to the <code>echo_protocol</code> handler.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on port 5555</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -99,7 +99,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can try this out by compiling and running the <code>tcp_echo</code> example in the examples directory. To do so, open a shell in the <em>examples/tcp_echo/</em> directory and run the following command:</p>
<div class="listingblock"><div class="title">Building and starting a Ranch example</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can then connect to it using telnet and see the echo server reply everything you send to it. Then when you&apos;re done testing, you can use the <code>Ctrl+]</code> key to escape to the telnet command line and type <code>quit</code> to exit.</p>
<div class="listingblock"><div class="title">Connecting to the example listener with telnet</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -127,7 +127,7 @@ Connection closed<font color="#990000">.</font></tt></pre>
<h2 id="_stopping_a_listener">Stopping a listener</h2>
<p>All you need to stop a Ranch listener is to call the <code>ranch:stop_listener/1</code> function with the listener&apos;s name as argument. In the previous section we started the listener named <code>tcp_echo</code>. We can now stop it.</p>
<div class="listingblock"><div class="title">Stopping a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -140,7 +140,7 @@ http://www.gnu.org/software/src-highlite -->
<p>You do not have to specify a specific port to listen on. If you give the port number 0, or if you omit the port number entirely, Ranch will start listening on a random port.</p>
<p>You can retrieve this port number by calling <code>ranch:get_port/1</code>. The argument is the name of the listener you gave in <code>ranch:start_listener/5</code>.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on a random port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -160,7 +160,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_limiting_the_number_of_concurrent_connections">Limiting the number of concurrent connections</h2>
<p>The <code>max_connections</code> transport option allows you to limit the number of concurrent connections. It defaults to 1024. Its purpose is to prevent your system from being overloaded and ensuring all the connections are handled optimally.</p>
<div class="listingblock"><div class="title">Customizing the maximum number of concurrent connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -171,7 +171,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can disable this limit by setting its value to the atom <code>infinity</code>.</p>
<div class="listingblock"><div class="title">Disabling the limit for the number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -185,7 +185,7 @@ http://www.gnu.org/software/src-highlite -->
<p>You may not always want connections to be counted when checking for <code>max_connections</code>. For example you might have a protocol where both short-lived and long-lived connections are possible. If the long-lived connections are mostly waiting for messages, then they don&apos;t consume much resources and can safely be removed from the count.</p>
<p>To remove the connection from the count, you must call the <code>ranch:remove_connection/1</code> from within the connection process, with the name of the listener as the only argument.</p>
<div class="listingblock"><div class="title">Removing a connection from the count of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -194,7 +194,7 @@ http://www.gnu.org/software/src-highlite -->
<p>As seen in the chapter covering protocols, this pid is received as the first argument of the protocol&apos;s <code>start_link/4</code> callback.</p>
<p>You can modify the <code>max_connections</code> value on a running listener by using the <code>ranch:set_max_connections/2</code> function, with the name of the listener as first argument and the new value as the second.</p>
<div class="listingblock"><div class="title">Upgrading the maximum number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -205,7 +205,7 @@ http://www.gnu.org/software/src-highlite -->
<p>By default Ranch will use 10 acceptor processes. Their role is to accept connections and spawn a connection process for every new connection.</p>
<p>This number can be tweaked to improve performance. A good number is typically between 10 or 100 acceptors. You must measure to find the best value for your application.</p>
<div class="listingblock"><div class="title">Specifying a custom number of acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -228,7 +228,7 @@ Ranch acceptor reducing accept rate: out of file descriptors</pre></div></div>
<p>Ranch allows you to upgrade the protocol options. This takes effect immediately and for all subsequent connections.</p>
<p>To upgrade the protocol options, call <code>ranch:set_protocol_options/2</code> with the name of the listener as first argument and the new options as the second.</p>
<div class="listingblock"><div class="title">Upgrading the protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -237,7 +237,7 @@ http://www.gnu.org/software/src-highlite -->
<p>All future connections will use the new options.</p>
<p>You can also retrieve the current options similarly by calling <code>ranch:get_protocol_options/1</code>.</p>
<div class="listingblock"><div class="title">Retrieving the current protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -247,7 +247,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Ranch provides two functions for retrieving information about the listeners, for reporting and diagnostic purposes.</p>
<p>The <code>ranch:info/0</code> function will return detailed information about all listeners.</p>
<div class="listingblock"><div class="title">Retrieving detailed information</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -255,14 +255,14 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>The <code>ranch:procs/2</code> function will return all acceptor or listener processes for a given listener.</p>
<div class="listingblock"><div class="title">Get all acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:procs</font></b>(<font color="#FF6600">tcp_echo</font>, <font color="#FF6600">acceptors</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get all connection processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.4/guide/parsers/index.html b/docs/en/ranch/1.4/guide/parsers/index.html
index dd0c494e..2ee0d2cf 100644
--- a/docs/en/ranch/1.4/guide/parsers/index.html
+++ b/docs/en/ranch/1.4/guide/parsers/index.html
@@ -76,7 +76,7 @@
<p>Text protocols are generally line based. This means that we can&apos;t do anything with them until we receive the full line.</p>
<p>A simple way to get a full line is to use <code>binary:split/{2,3}</code>.</p>
<div class="listingblock"><div class="title">Using binary:split/2 to get a line of input</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -90,7 +90,7 @@ http://www.gnu.org/software/src-highlite -->
<p>In the above example, we can have two results. Either there was a line break in the buffer and we get it split into two parts, the line and the rest of the buffer; or there was no line break in the buffer and we need to get more data from the socket.</p>
<p>Next, we need to parse the line. The simplest way is to again split, here on space. The difference is that we want to split on all spaces character, as we want to tokenize the whole string.</p>
<div class="listingblock"><div class="title">Using binary:split/3 to split text</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -111,7 +111,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Sometimes the size of the frame includes the first four bytes, sometimes not. Other times this size is encoded over two bytes. And even other times little-endian is used instead of big-endian.</p>
<p>The general idea stays the same though.</p>
<div class="listingblock"><div class="title">Using binary pattern matching to split frames</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.4/guide/protocols/index.html b/docs/en/ranch/1.4/guide/protocols/index.html
index 334ded82..8a326e0a 100644
--- a/docs/en/ranch/1.4/guide/protocols/index.html
+++ b/docs/en/ranch/1.4/guide/protocols/index.html
@@ -67,7 +67,7 @@
<p>All protocol handlers must implement the <code>ranch_protocol</code> behavior which defines a single callback, <code>start_link/4</code>. This callback is responsible for spawning a new process for handling the connection. It receives four arguments: the name of the listener, the socket, the transport handler being used and the protocol options defined in the call to <code>ranch:start_listener/5</code>. This callback must return <code>{ok, Pid}</code>, with <code>Pid</code> the pid of the new process.</p>
<p>The newly started process can then freely initialize itself. However, it must call <code>ranch:accept_ack/1</code> before doing any socket operation. This will ensure the connection process is the owner of the socket. It expects the listener&apos;s name as argument.</p>
<div class="listingblock"><div class="title">Acknowledge accepting the socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -76,7 +76,7 @@ http://www.gnu.org/software/src-highlite -->
<p>If your protocol code requires specific socket options, you should set them while initializing your connection process, after calling <code>ranch:accept_ack/1</code>. You can use <code>Transport:setopts/2</code> for that purpose.</p>
<p>Following is the complete protocol code for the example found in <code>examples/tcp_echo/</code>.</p>
<div class="listingblock"><div class="title">Protocol module that echoes everything it receives</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Special processes like the ones that use the <code>gen_server</code> or <code>gen_fsm</code> behaviours have the particularity of having their <code>start_link</code> call not return until the <code>init</code> function returns. This is problematic, because you won&apos;t be able to call <code>ranch:accept_ack/1</code> from the <code>init</code> callback as this would cause a deadlock to happen.</p>
<p>Use the <code>gen_server:enter_loop/3</code> function. It allows you to start your process normally (although it must be started with <code>proc_lib</code> like all special processes), then perform any needed operations before falling back into the normal <code>gen_server</code> execution loop.</p>
<div class="listingblock"><div class="title">Use a gen_server for protocol handling</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.4/guide/ssl_auth/index.html b/docs/en/ranch/1.4/guide/ssl_auth/index.html
index 85364c3b..8098acfc 100644
--- a/docs/en/ranch/1.4/guide/ssl_auth/index.html
+++ b/docs/en/ranch/1.4/guide/ssl_auth/index.html
@@ -90,7 +90,7 @@
<h2 id="_transport_configuration">Transport configuration</h2>
<p>The SSL transport does not request a client certificate by default. You need to specify the <code>{verify, verify_peer}</code> option when starting the listener to enable this behavior.</p>
<div class="listingblock"><div class="title">Configure a listener for SSL authentication</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_authentication">Authentication</h2>
<p>To authenticate users, you must first save the certificate information required. If you have your users&apos; certificate files, you can simply load the certificate and retrieve the information directly.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from a certificate</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -123,7 +123,7 @@ http://www.gnu.org/software/src-highlite -->
<p>To retrieve the <code>IssuerID</code> from a running connection, you need to first retrieve the client certificate and then extract this information from it. Ranch does not provide a function to retrieve the client certificate. Instead you can use the <code>ssl:peercert/1</code> function. Once you have the certificate, you can again use the <code>public_key:pkix_issuer_id/2</code> to extract the <code>IssuerID</code> value.</p>
<p>The following function returns the <code>IssuerID</code> or <code>false</code> if no client certificate was found. This snippet is intended to be used from your protocol code.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from the certificate for the current connection</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.4/guide/transports/index.html b/docs/en/ranch/1.4/guide/transports/index.html
index 38913468..cb4937b9 100644
--- a/docs/en/ranch/1.4/guide/transports/index.html
+++ b/docs/en/ranch/1.4/guide/transports/index.html
@@ -74,7 +74,7 @@
<p>This section assumes that <code>Transport</code> is a valid transport handler (like <code>ranch_tcp</code> or <code>ranch_ssl</code>) and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>You can send data to a socket by calling the <code>Transport:send/2</code> function. The data can be given as <code>iodata()</code>, which is defined as <code>binary() | iolist()</code>. All the following calls will work:</p>
<div class="listingblock"><div class="title">Sending data to the socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Receiving data using passive mode requires a single function call. The first argument is the socket, and the third argument is a timeout duration before the call returns with <code>{error, timeout}</code>.</p>
<p>The second argument is the amount of data in bytes that we want to receive. The function will wait for data until it has received exactly this amount. If you are not expecting a precise size, you can specify 0 which will make this call return as soon as data was read, regardless of its size.</p>
<div class="listingblock"><div class="title">Receiving data from the socket in passive mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -106,7 +106,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<p>The value of <code>OK</code>, <code>Closed</code> and <code>Error</code> can be different depending on the transport being used. To be able to properly match on them you must first call the <code>Transport:messages/0</code> function.</p>
<div class="listingblock"><div class="title">Retrieving the transport&apos;s active message identifiers</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -114,7 +114,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To start receiving messages you will need to call the <code>Transport:setopts/2</code> function, and do so every time you want to receive data.</p>
<div class="listingblock"><div class="title">Receiving messages from the socket in active mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -134,7 +134,7 @@ http://www.gnu.org/software/src-highlite -->
<p>As in the previous section it is assumed <code>Transport</code> is a valid transport handler and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>To send a whole file, with name <code>Filename</code>, over a socket:</p>
<div class="listingblock"><div class="title">Sending a file by filename</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -142,7 +142,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Or part of a file, with <code>Offset</code> greater than or equal to 0, <code>Bytes</code> number of bytes and chunks of size <code>ChunkSize</code>:</p>
<div class="listingblock"><div class="title">Sending part of a file by filename in chunks</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -151,7 +151,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To improve efficiency when sending multiple parts of the same file it is also possible to use a file descriptor opened in raw mode:</p>
<div class="listingblock"><div class="title">Sending a file opened in raw mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.4/manual/ranch/index.html b/docs/en/ranch/1.4/manual/ranch/index.html
index 504986af..a41d0d18 100644
--- a/docs/en/ranch/1.4/manual/ranch/index.html
+++ b/docs/en/ranch/1.4/manual/ranch/index.html
@@ -71,7 +71,7 @@
<p>Maximum number of connections allowed on this listener.</p>
<p>This is a soft limit. The actual number of connections might be slightly above the limit due to concurrency when accepting new connections. Some connections may also be removed from this count explicitly by the user code.</p>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.4/manual/ranch_ssl/index.html b/docs/en/ranch/1.4/manual/ranch_ssl/index.html
index 0321329b..78da233d 100644
--- a/docs/en/ranch/1.4/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/1.4/manual/ranch_ssl/index.html
@@ -68,7 +68,7 @@
<p>The <code>ranch_ssl</code> module implements an SSL Ranch transport.</p>
<h2 id="_types">Types</h2>
<h3 id="_ssl_opt">ssl_opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.4/manual/ranch_tcp/index.html b/docs/en/ranch/1.4/manual/ranch_tcp/index.html
index aeadec0f..1d6e1471 100644
--- a/docs/en/ranch/1.4/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/1.4/manual/ranch_tcp/index.html
@@ -69,7 +69,7 @@
<p>Note that due to bugs in OTP up to at least R16B02, it is recommended to disable async threads when using the <code>sendfile</code> function of this transport, as it can make the threads stuck indefinitely.</p>
<h2 id="_types">Types</h2>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/guide/embedded/index.html b/docs/en/ranch/1.5/guide/embedded/index.html
index 8b1bea1e..e5345218 100644
--- a/docs/en/ranch/1.5/guide/embedded/index.html
+++ b/docs/en/ranch/1.5/guide/embedded/index.html
@@ -70,7 +70,7 @@
<p>As for <code>ranch_sup</code>, the child spec is simple enough to not require a convenience function.</p>
<p>The following example adds both <code>ranch_sup</code> and one listener to another application&apos;s supervision tree.</p>
<div class="listingblock"><div class="title">Embed Ranch directly in your supervision tree</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/guide/internals/index.html b/docs/en/ranch/1.5/guide/internals/index.html
index 518ade76..d2053e6d 100644
--- a/docs/en/ranch/1.5/guide/internals/index.html
+++ b/docs/en/ranch/1.5/guide/internals/index.html
@@ -82,7 +82,7 @@
<p>This is especially useful if you expect many connections to be mostly idle, perhaps part of a connection pool. They can be handled by the kernel directly until they send any real data, instead of allocating resources to idle connections.</p>
<p>To enable this mechanism, the following option can be used.</p>
<div class="listingblock"><div class="title">Using raw transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/guide/listeners/index.html b/docs/en/ranch/1.5/guide/listeners/index.html
index 9348d735..b656d8f7 100644
--- a/docs/en/ranch/1.5/guide/listeners/index.html
+++ b/docs/en/ranch/1.5/guide/listeners/index.html
@@ -80,7 +80,7 @@
<p>Ranch includes both TCP and SSL transport handlers, respectively <code>ranch_tcp</code> and <code>ranch_ssl</code>.</p>
<p>A listener can be started by calling the <code>ranch:start_listener/5</code> function. Before doing so however, you must ensure that the <code>ranch</code> application is started.</p>
<div class="listingblock"><div class="title">Starting the Ranch application</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You are then ready to start a listener. Let&apos;s call it <code>tcp_echo</code>. It will have a pool of 100 acceptors, use a TCP transport and forward connections to the <code>echo_protocol</code> handler.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on port 5555</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -99,7 +99,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can try this out by compiling and running the <code>tcp_echo</code> example in the examples directory. To do so, open a shell in the <em>examples/tcp_echo/</em> directory and run the following command:</p>
<div class="listingblock"><div class="title">Building and starting a Ranch example</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can then connect to it using telnet and see the echo server reply everything you send to it. Then when you&apos;re done testing, you can use the <code>Ctrl+]</code> key to escape to the telnet command line and type <code>quit</code> to exit.</p>
<div class="listingblock"><div class="title">Connecting to the example listener with telnet</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -127,7 +127,7 @@ Connection closed<font color="#990000">.</font></tt></pre>
<h2 id="_stopping_a_listener">Stopping a listener</h2>
<p>All you need to stop a Ranch listener is to call the <code>ranch:stop_listener/1</code> function with the listener&apos;s name as argument. In the previous section we started the listener named <code>tcp_echo</code>. We can now stop it.</p>
<div class="listingblock"><div class="title">Stopping a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -140,7 +140,7 @@ http://www.gnu.org/software/src-highlite -->
<p>You do not have to specify a specific port to listen on. If you give the port number 0, or if you omit the port number entirely, Ranch will start listening on a random port.</p>
<p>You can retrieve this port number by calling <code>ranch:get_port/1</code>. The argument is the name of the listener you gave in <code>ranch:start_listener/5</code>.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on a random port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -160,7 +160,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_limiting_the_number_of_concurrent_connections">Limiting the number of concurrent connections</h2>
<p>The <code>max_connections</code> transport option allows you to limit the number of concurrent connections. It defaults to 1024. Its purpose is to prevent your system from being overloaded and ensuring all the connections are handled optimally.</p>
<div class="listingblock"><div class="title">Customizing the maximum number of concurrent connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -171,7 +171,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can disable this limit by setting its value to the atom <code>infinity</code>.</p>
<div class="listingblock"><div class="title">Disabling the limit for the number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -185,7 +185,7 @@ http://www.gnu.org/software/src-highlite -->
<p>You may not always want connections to be counted when checking for <code>max_connections</code>. For example you might have a protocol where both short-lived and long-lived connections are possible. If the long-lived connections are mostly waiting for messages, then they don&apos;t consume much resources and can safely be removed from the count.</p>
<p>To remove the connection from the count, you must call the <code>ranch:remove_connection/1</code> from within the connection process, with the name of the listener as the only argument.</p>
<div class="listingblock"><div class="title">Removing a connection from the count of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -194,7 +194,7 @@ http://www.gnu.org/software/src-highlite -->
<p>As seen in the chapter covering protocols, this pid is received as the first argument of the protocol&apos;s <code>start_link/4</code> callback.</p>
<p>You can modify the <code>max_connections</code> value on a running listener by using the <code>ranch:set_max_connections/2</code> function, with the name of the listener as first argument and the new value as the second.</p>
<div class="listingblock"><div class="title">Upgrading the maximum number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -205,7 +205,7 @@ http://www.gnu.org/software/src-highlite -->
<p>By default Ranch will use 10 acceptor processes. Their role is to accept connections and spawn a connection process for every new connection.</p>
<p>This number can be tweaked to improve performance. A good number is typically between 10 or 100 acceptors. You must measure to find the best value for your application.</p>
<div class="listingblock"><div class="title">Specifying a custom number of acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -228,7 +228,7 @@ Ranch acceptor reducing accept rate: out of file descriptors</pre></div></div>
<p>Ranch allows you to upgrade the protocol options. This takes effect immediately and for all subsequent connections.</p>
<p>To upgrade the protocol options, call <code>ranch:set_protocol_options/2</code> with the name of the listener as first argument and the new options as the second.</p>
<div class="listingblock"><div class="title">Upgrading the protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -237,7 +237,7 @@ http://www.gnu.org/software/src-highlite -->
<p>All future connections will use the new options.</p>
<p>You can also retrieve the current options similarly by calling <code>ranch:get_protocol_options/1</code>.</p>
<div class="listingblock"><div class="title">Retrieving the current protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -247,7 +247,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Ranch provides two functions for retrieving information about the listeners, for reporting and diagnostic purposes.</p>
<p>The <code>ranch:info/0</code> function will return detailed information about all listeners.</p>
<div class="listingblock"><div class="title">Retrieving detailed information</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -255,14 +255,14 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>The <code>ranch:procs/2</code> function will return all acceptor or listener processes for a given listener.</p>
<div class="listingblock"><div class="title">Get all acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:procs</font></b>(<font color="#FF6600">tcp_echo</font>, <font color="#FF6600">acceptors</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get all connection processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/guide/parsers/index.html b/docs/en/ranch/1.5/guide/parsers/index.html
index 3ab7d9b3..b5d2ddcf 100644
--- a/docs/en/ranch/1.5/guide/parsers/index.html
+++ b/docs/en/ranch/1.5/guide/parsers/index.html
@@ -76,7 +76,7 @@
<p>Text protocols are generally line based. This means that we can&apos;t do anything with them until we receive the full line.</p>
<p>A simple way to get a full line is to use <code>binary:split/{2,3}</code>.</p>
<div class="listingblock"><div class="title">Using binary:split/2 to get a line of input</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -90,7 +90,7 @@ http://www.gnu.org/software/src-highlite -->
<p>In the above example, we can have two results. Either there was a line break in the buffer and we get it split into two parts, the line and the rest of the buffer; or there was no line break in the buffer and we need to get more data from the socket.</p>
<p>Next, we need to parse the line. The simplest way is to again split, here on space. The difference is that we want to split on all spaces character, as we want to tokenize the whole string.</p>
<div class="listingblock"><div class="title">Using binary:split/3 to split text</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -111,7 +111,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Sometimes the size of the frame includes the first four bytes, sometimes not. Other times this size is encoded over two bytes. And even other times little-endian is used instead of big-endian.</p>
<p>The general idea stays the same though.</p>
<div class="listingblock"><div class="title">Using binary pattern matching to split frames</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/guide/protocols/index.html b/docs/en/ranch/1.5/guide/protocols/index.html
index a0d11047..124feaa0 100644
--- a/docs/en/ranch/1.5/guide/protocols/index.html
+++ b/docs/en/ranch/1.5/guide/protocols/index.html
@@ -67,7 +67,7 @@
<p>All protocol handlers must implement the <code>ranch_protocol</code> behavior which defines a single callback, <code>start_link/4</code>. This callback is responsible for spawning a new process for handling the connection. It receives four arguments: the name of the listener, the socket, the transport handler being used and the protocol options defined in the call to <code>ranch:start_listener/5</code>. This callback must return <code>{ok, Pid}</code>, with <code>Pid</code> the pid of the new process.</p>
<p>The newly started process can then freely initialize itself. However, it must call <code>ranch:accept_ack/1</code> before doing any socket operation. This will ensure the connection process is the owner of the socket. It expects the listener&apos;s name as argument.</p>
<div class="listingblock"><div class="title">Acknowledge accepting the socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -76,7 +76,7 @@ http://www.gnu.org/software/src-highlite -->
<p>If your protocol code requires specific socket options, you should set them while initializing your connection process, after calling <code>ranch:accept_ack/1</code>. You can use <code>Transport:setopts/2</code> for that purpose.</p>
<p>Following is the complete protocol code for the example found in <code>examples/tcp_echo/</code>.</p>
<div class="listingblock"><div class="title">Protocol module that echoes everything it receives</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Special processes like the ones that use the <code>gen_server</code> or <code>gen_fsm</code> behaviours have the particularity of having their <code>start_link</code> call not return until the <code>init</code> function returns. This is problematic, because you won&apos;t be able to call <code>ranch:accept_ack/1</code> from the <code>init</code> callback as this would cause a deadlock to happen.</p>
<p>Use the <code>gen_server:enter_loop/3</code> function. It allows you to start your process normally (although it must be started with <code>proc_lib</code> like all special processes), then perform any needed operations before falling back into the normal <code>gen_server</code> execution loop.</p>
<div class="listingblock"><div class="title">Use a gen_server for protocol handling</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/guide/ssl_auth/index.html b/docs/en/ranch/1.5/guide/ssl_auth/index.html
index 7156d7fb..de300619 100644
--- a/docs/en/ranch/1.5/guide/ssl_auth/index.html
+++ b/docs/en/ranch/1.5/guide/ssl_auth/index.html
@@ -90,7 +90,7 @@
<h2 id="_transport_configuration">Transport configuration</h2>
<p>The SSL transport does not request a client certificate by default. You need to specify the <code>{verify, verify_peer}</code> option when starting the listener to enable this behavior.</p>
<div class="listingblock"><div class="title">Configure a listener for SSL authentication</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_authentication">Authentication</h2>
<p>To authenticate users, you must first save the certificate information required. If you have your users&apos; certificate files, you can simply load the certificate and retrieve the information directly.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from a certificate</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -123,7 +123,7 @@ http://www.gnu.org/software/src-highlite -->
<p>To retrieve the <code>IssuerID</code> from a running connection, you need to first retrieve the client certificate and then extract this information from it. Ranch does not provide a function to retrieve the client certificate. Instead you can use the <code>ssl:peercert/1</code> function. Once you have the certificate, you can again use the <code>public_key:pkix_issuer_id/2</code> to extract the <code>IssuerID</code> value.</p>
<p>The following function returns the <code>IssuerID</code> or <code>false</code> if no client certificate was found. This snippet is intended to be used from your protocol code.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from the certificate for the current connection</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/guide/transports/index.html b/docs/en/ranch/1.5/guide/transports/index.html
index 651a814f..7542918b 100644
--- a/docs/en/ranch/1.5/guide/transports/index.html
+++ b/docs/en/ranch/1.5/guide/transports/index.html
@@ -74,7 +74,7 @@
<p>This section assumes that <code>Transport</code> is a valid transport handler (like <code>ranch_tcp</code> or <code>ranch_ssl</code>) and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>You can send data to a socket by calling the <code>Transport:send/2</code> function. The data can be given as <code>iodata()</code>, which is defined as <code>binary() | iolist()</code>. All the following calls will work:</p>
<div class="listingblock"><div class="title">Sending data to the socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Receiving data using passive mode requires a single function call. The first argument is the socket, and the third argument is a timeout duration before the call returns with <code>{error, timeout}</code>.</p>
<p>The second argument is the amount of data in bytes that we want to receive. The function will wait for data until it has received exactly this amount. If you are not expecting a precise size, you can specify 0 which will make this call return as soon as data was read, regardless of its size.</p>
<div class="listingblock"><div class="title">Receiving data from the socket in passive mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -106,7 +106,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<p>The value of <code>OK</code>, <code>Closed</code> and <code>Error</code> can be different depending on the transport being used. To be able to properly match on them you must first call the <code>Transport:messages/0</code> function.</p>
<div class="listingblock"><div class="title">Retrieving the transport&apos;s active message identifiers</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -114,7 +114,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To start receiving messages you will need to call the <code>Transport:setopts/2</code> function, and do so every time you want to receive data.</p>
<div class="listingblock"><div class="title">Receiving messages from the socket in active mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -134,7 +134,7 @@ http://www.gnu.org/software/src-highlite -->
<p>As in the previous section it is assumed <code>Transport</code> is a valid transport handler and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>To send a whole file, with name <code>Filename</code>, over a socket:</p>
<div class="listingblock"><div class="title">Sending a file by filename</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -142,7 +142,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Or part of a file, with <code>Offset</code> greater than or equal to 0, <code>Bytes</code> number of bytes and chunks of size <code>ChunkSize</code>:</p>
<div class="listingblock"><div class="title">Sending part of a file by filename in chunks</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -151,7 +151,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To improve efficiency when sending multiple parts of the same file it is also possible to use a file descriptor opened in raw mode:</p>
<div class="listingblock"><div class="title">Sending a file opened in raw mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/manual/ranch/index.html b/docs/en/ranch/1.5/manual/ranch/index.html
index a7d2b4da..a6a40239 100644
--- a/docs/en/ranch/1.5/manual/ranch/index.html
+++ b/docs/en/ranch/1.5/manual/ranch/index.html
@@ -71,7 +71,7 @@
<p>Maximum number of connections allowed on this listener.</p>
<p>This is a soft limit. The actual number of connections might be slightly above the limit due to concurrency when accepting new connections. Some connections may also be removed from this count explicitly by the user code.</p>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/manual/ranch_ssl/index.html b/docs/en/ranch/1.5/manual/ranch_ssl/index.html
index 905dc0ca..3a394cf0 100644
--- a/docs/en/ranch/1.5/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/1.5/manual/ranch_ssl/index.html
@@ -68,7 +68,7 @@
<p>The <code>ranch_ssl</code> module implements an SSL Ranch transport.</p>
<h2 id="_types">Types</h2>
<h3 id="_ssl_opt">ssl_opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.5/manual/ranch_tcp/index.html b/docs/en/ranch/1.5/manual/ranch_tcp/index.html
index b33dc42e..06c62941 100644
--- a/docs/en/ranch/1.5/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/1.5/manual/ranch_tcp/index.html
@@ -69,7 +69,7 @@
<p>Note that due to bugs in OTP up to at least R16B02, it is recommended to disable async threads when using the <code>sendfile</code> function of this transport, as it can make the threads stuck indefinitely.</p>
<h2 id="_types">Types</h2>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/guide/embedded/index.html b/docs/en/ranch/1.6/guide/embedded/index.html
index d16d7a15..37b45e4b 100644
--- a/docs/en/ranch/1.6/guide/embedded/index.html
+++ b/docs/en/ranch/1.6/guide/embedded/index.html
@@ -70,7 +70,7 @@
<p>As for <code>ranch_sup</code>, the child spec is simple enough to not require a convenience function.</p>
<p>The following example adds both <code>ranch_sup</code> and one listener to another application&apos;s supervision tree.</p>
<div class="listingblock"><div class="title">Embed Ranch directly in your supervision tree</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/guide/internals/index.html b/docs/en/ranch/1.6/guide/internals/index.html
index a6ab295c..2ed24798 100644
--- a/docs/en/ranch/1.6/guide/internals/index.html
+++ b/docs/en/ranch/1.6/guide/internals/index.html
@@ -82,7 +82,7 @@
<p>This is especially useful if you expect many connections to be mostly idle, perhaps part of a connection pool. They can be handled by the kernel directly until they send any real data, instead of allocating resources to idle connections.</p>
<p>To enable this mechanism, the following option can be used.</p>
<div class="listingblock"><div class="title">Using raw transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/guide/listeners/index.html b/docs/en/ranch/1.6/guide/listeners/index.html
index 3a5bba45..5cde8f8f 100644
--- a/docs/en/ranch/1.6/guide/listeners/index.html
+++ b/docs/en/ranch/1.6/guide/listeners/index.html
@@ -80,7 +80,7 @@
<p>Ranch includes both TCP and SSL transport handlers, respectively <code>ranch_tcp</code> and <code>ranch_ssl</code>.</p>
<p>A listener can be started by calling the <code>ranch:start_listener/5</code> function. Before doing so however, you must ensure that the <code>ranch</code> application is started.</p>
<div class="listingblock"><div class="title">Starting the Ranch application</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You are then ready to start a listener. Let&apos;s call it <code>tcp_echo</code>. It will have a pool of 100 acceptors, use a TCP transport and forward connections to the <code>echo_protocol</code> handler.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on port 5555</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -99,7 +99,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can try this out by compiling and running the <code>tcp_echo</code> example in the examples directory. To do so, open a shell in the <em>examples/tcp_echo/</em> directory and run the following command:</p>
<div class="listingblock"><div class="title">Building and starting a Ranch example</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can then connect to it using telnet and see the echo server reply everything you send to it. Then when you&apos;re done testing, you can use the <code>Ctrl+]</code> key to escape to the telnet command line and type <code>quit</code> to exit.</p>
<div class="listingblock"><div class="title">Connecting to the example listener with telnet</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -127,7 +127,7 @@ Connection closed<font color="#990000">.</font></tt></pre>
<h2 id="_stopping_a_listener">Stopping a listener</h2>
<p>All you need to stop a Ranch listener is to call the <code>ranch:stop_listener/1</code> function with the listener&apos;s name as argument. In the previous section we started the listener named <code>tcp_echo</code>. We can now stop it.</p>
<div class="listingblock"><div class="title">Stopping a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -137,7 +137,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Listeners can be suspended and resumed by calling <code>ranch:suspend_listener/1</code> and <code>ranch:resume_listener/1</code>, respectively, with the name of the listener as argument.</p>
<p>Suspending a listener will cause it to stop listening and not accept new connections, but existing connection processes will not be stopped.</p>
<div class="listingblock"><div class="title">Suspending a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -145,7 +145,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Resuming a listener will cause it to start listening and accept new connections again. It is worth mentioning, however, that if the listener is configured to listen on a random port, it will listen on a different port than before it was suspended.</p>
<div class="listingblock"><div class="title">Resuming a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -159,7 +159,7 @@ http://www.gnu.org/software/src-highlite -->
<p>You do not have to specify a specific port to listen on. If you give the port number 0, or if you omit the port number entirely, Ranch will start listening on a random port.</p>
<p>You can retrieve this port number by calling <code>ranch:get_port/1</code>. The argument is the name of the listener you gave in <code>ranch:start_listener/5</code>.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on a random port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -178,7 +178,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_limiting_the_number_of_concurrent_connections">Limiting the number of concurrent connections</h2>
<p>The <code>max_connections</code> transport option allows you to limit the number of concurrent connections. It defaults to 1024. Its purpose is to prevent your system from being overloaded and ensuring all the connections are handled optimally.</p>
<div class="listingblock"><div class="title">Customizing the maximum number of concurrent connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -189,7 +189,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can disable this limit by setting its value to the atom <code>infinity</code>.</p>
<div class="listingblock"><div class="title">Disabling the limit for the number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -203,7 +203,7 @@ http://www.gnu.org/software/src-highlite -->
<p>You may not always want connections to be counted when checking for <code>max_connections</code>. For example you might have a protocol where both short-lived and long-lived connections are possible. If the long-lived connections are mostly waiting for messages, then they don&apos;t consume much resources and can safely be removed from the count.</p>
<p>To remove the connection from the count, you must call the <code>ranch:remove_connection/1</code> from within the connection process, with the name of the listener as the only argument.</p>
<div class="listingblock"><div class="title">Removing a connection from the count of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -212,7 +212,7 @@ http://www.gnu.org/software/src-highlite -->
<p>As seen in the chapter covering protocols, this pid is received as the first argument of the protocol&apos;s <code>start_link/4</code> callback.</p>
<p>You can modify the <code>max_connections</code> value on a running listener by using the <code>ranch:set_max_connections/2</code> function, with the name of the listener as first argument and the new value as the second.</p>
<div class="listingblock"><div class="title">Upgrading the maximum number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -223,7 +223,7 @@ http://www.gnu.org/software/src-highlite -->
<p>By default Ranch will use 10 acceptor processes. Their role is to accept connections and spawn a connection process for every new connection.</p>
<p>This number can be tweaked to improve performance. A good number is typically between 10 or 100 acceptors. You must measure to find the best value for your application.</p>
<div class="listingblock"><div class="title">Specifying a custom number of acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -246,7 +246,7 @@ Ranch acceptor reducing accept rate: out of file descriptors</pre></div></div>
<p>Ranch allows you to upgrade the protocol options. This takes effect immediately and for all subsequent connections.</p>
<p>To upgrade the protocol options, call <code>ranch:set_protocol_options/2</code> with the name of the listener as first argument and the new options as the second.</p>
<div class="listingblock"><div class="title">Upgrading the protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -255,7 +255,7 @@ http://www.gnu.org/software/src-highlite -->
<p>All future connections will use the new options.</p>
<p>You can also retrieve the current options similarly by calling <code>ranch:get_protocol_options/1</code>.</p>
<div class="listingblock"><div class="title">Retrieving the current protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -265,7 +265,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Ranch allows you to change the transport options of a listener, for example to make it listen on a different port.</p>
<p>To change transport options, the listener has to be suspended first. Then you are allowed to change the transport options by calling <code>ranch:set_transport_options/2</code> with the listener name and the new transport options as arguments. After that, you can resume the listener.</p>
<div class="listingblock"><div class="title">Changing the transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -273,7 +273,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can retrieve the current transport options by calling <code>ranch:get_transport_options/1</code>.</p>
<div class="listingblock"><div class="title">Retrieving the current transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -283,7 +283,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Ranch provides two functions for retrieving information about the listeners, for reporting and diagnostic purposes.</p>
<p>The <code>ranch:info/0</code> function will return detailed information about all listeners.</p>
<div class="listingblock"><div class="title">Retrieving detailed information</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -291,14 +291,14 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>The <code>ranch:procs/2</code> function will return all acceptor or listener processes for a given listener.</p>
<div class="listingblock"><div class="title">Get all acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:procs</font></b>(<font color="#FF6600">tcp_echo</font>, <font color="#FF6600">acceptors</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get all connection processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/guide/parsers/index.html b/docs/en/ranch/1.6/guide/parsers/index.html
index f5c5f8ee..b7b96715 100644
--- a/docs/en/ranch/1.6/guide/parsers/index.html
+++ b/docs/en/ranch/1.6/guide/parsers/index.html
@@ -76,7 +76,7 @@
<p>Text protocols are generally line based. This means that we can&apos;t do anything with them until we receive the full line.</p>
<p>A simple way to get a full line is to use <code>binary:split/2,3</code>.</p>
<div class="listingblock"><div class="title">Using binary:split/2 to get a line of input</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -90,7 +90,7 @@ http://www.gnu.org/software/src-highlite -->
<p>In the above example, we can have two results. Either there was a line break in the buffer and we get it split into two parts, the line and the rest of the buffer; or there was no line break in the buffer and we need to get more data from the socket.</p>
<p>Next, we need to parse the line. The simplest way is to again split, here on space. The difference is that we want to split on all spaces character, as we want to tokenize the whole string.</p>
<div class="listingblock"><div class="title">Using binary:split/3 to split text</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -111,7 +111,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Sometimes the size of the frame includes the first four bytes, sometimes not. Other times this size is encoded over two bytes. And even other times little-endian is used instead of big-endian.</p>
<p>The general idea stays the same though.</p>
<div class="listingblock"><div class="title">Using binary pattern matching to split frames</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/guide/protocols/index.html b/docs/en/ranch/1.6/guide/protocols/index.html
index f002909d..97b47dc2 100644
--- a/docs/en/ranch/1.6/guide/protocols/index.html
+++ b/docs/en/ranch/1.6/guide/protocols/index.html
@@ -67,7 +67,7 @@
<p>All protocol handlers must implement the <code>ranch_protocol</code> behavior which defines a single callback, <code>start_link/4</code>. This callback is responsible for spawning a new process for handling the connection. It receives four arguments: the name of the listener, the socket, the transport handler being used and the protocol options defined in the call to <code>ranch:start_listener/5</code>. This callback must return <code>{ok, Pid}</code>, with <code>Pid</code> the pid of the new process.</p>
<p>The newly started process can then freely initialize itself. However, it must call <code>ranch:handshake/1,2</code> before doing any socket operation. This will ensure the connection process is the owner of the socket. It expects the listener&apos;s name as argument.</p>
<div class="listingblock"><div class="title">Perform the socket handshake</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -76,7 +76,7 @@ http://www.gnu.org/software/src-highlite -->
<p>If your protocol code requires specific socket options, you should set them while initializing your connection process, after calling <code>ranch:handshake/1,2</code>. You can use <code>Transport:setopts/2</code> for that purpose.</p>
<p>Following is the complete protocol code for the example found in <code>examples/tcp_echo/</code>.</p>
<div class="listingblock"><div class="title">Protocol module that echoes everything it receives</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Special processes like the ones that use the <code>gen_statem</code> or <code>gen_server</code> behaviours have the particularity of having their <code>start_link</code> call not return until the <code>init</code> function returns. This is problematic, because you won&apos;t be able to call <code>ranch:handshake/1,2</code> from the <code>init</code> callback as this would cause a deadlock to happen.</p>
<p>Use the <code>gen_statem:enter_loop/4</code> function. It allows you to start your process normally (although it must be started with <code>proc_lib</code> like all special processes), then perform any needed operations before falling back into the normal <code>gen_statem</code> execution loop.</p>
<div class="listingblock"><div class="title">Use a gen_statem for protocol handling</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/guide/ssl_auth/index.html b/docs/en/ranch/1.6/guide/ssl_auth/index.html
index 9c4208ea..7c5e2aec 100644
--- a/docs/en/ranch/1.6/guide/ssl_auth/index.html
+++ b/docs/en/ranch/1.6/guide/ssl_auth/index.html
@@ -90,7 +90,7 @@
<h2 id="_transport_configuration">Transport configuration</h2>
<p>The SSL transport does not request a client certificate by default. You need to specify the <code>{verify, verify_peer}</code> option when starting the listener to enable this behavior.</p>
<div class="listingblock"><div class="title">Configure a listener for SSL authentication</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_authentication">Authentication</h2>
<p>To authenticate users, you must first save the certificate information required. If you have your users&apos; certificate files, you can simply load the certificate and retrieve the information directly.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from a certificate</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -123,7 +123,7 @@ http://www.gnu.org/software/src-highlite -->
<p>To retrieve the <code>IssuerID</code> from a running connection, you need to first retrieve the client certificate and then extract this information from it. Ranch does not provide a function to retrieve the client certificate. Instead you can use the <code>ssl:peercert/1</code> function. Once you have the certificate, you can again use the <code>public_key:pkix_issuer_id/2</code> to extract the <code>IssuerID</code> value.</p>
<p>The following function returns the <code>IssuerID</code> or <code>false</code> if no client certificate was found. This snippet is intended to be used from your protocol code.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from the certificate for the current connection</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/guide/transports/index.html b/docs/en/ranch/1.6/guide/transports/index.html
index 8cdf4217..5aa88de5 100644
--- a/docs/en/ranch/1.6/guide/transports/index.html
+++ b/docs/en/ranch/1.6/guide/transports/index.html
@@ -74,7 +74,7 @@
<p>This section assumes that <code>Transport</code> is a valid transport handler (like <code>ranch_tcp</code> or <code>ranch_ssl</code>) and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>You can send data to a socket by calling the <code>Transport:send/2</code> function. The data can be given as <code>iodata()</code>, which is defined as <code>binary() | iolist()</code>. All the following calls will work:</p>
<div class="listingblock"><div class="title">Sending data to the socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Receiving data using passive mode requires a single function call. The first argument is the socket, and the third argument is a timeout duration before the call returns with <code>{error, timeout}</code>.</p>
<p>The second argument is the amount of data in bytes that we want to receive. The function will wait for data until it has received exactly this amount. If you are not expecting a precise size, you can specify 0 which will make this call return as soon as data was read, regardless of its size.</p>
<div class="listingblock"><div class="title">Receiving data from the socket in passive mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -106,7 +106,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<p>The value of <code>OK</code>, <code>Closed</code> and <code>Error</code> can be different depending on the transport being used. To be able to properly match on them you must first call the <code>Transport:messages/0</code> function.</p>
<div class="listingblock"><div class="title">Retrieving the transport&apos;s active message identifiers</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -114,7 +114,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To start receiving messages you will need to call the <code>Transport:setopts/2</code> function, and do so every time you want to receive data.</p>
<div class="listingblock"><div class="title">Receiving messages from the socket in active mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -134,7 +134,7 @@ http://www.gnu.org/software/src-highlite -->
<p>As in the previous section it is assumed <code>Transport</code> is a valid transport handler and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>To send a whole file, with name <code>Filename</code>, over a socket:</p>
<div class="listingblock"><div class="title">Sending a file by filename</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -142,7 +142,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Or part of a file, with <code>Offset</code> greater than or equal to 0, <code>Bytes</code> number of bytes and chunks of size <code>ChunkSize</code>:</p>
<div class="listingblock"><div class="title">Sending part of a file by filename in chunks</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -151,7 +151,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To improve efficiency when sending multiple parts of the same file it is also possible to use a file descriptor opened in raw mode:</p>
<div class="listingblock"><div class="title">Sending a file opened in raw mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -161,7 +161,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_upgrading_a_tcp_socket_to_ssl">Upgrading a TCP socket to SSL</h2>
<p>A connected TCP socket can be upgraded to a SSL socket via the function <code>ranch_ssl:handshake/3</code>. The socket <strong>must</strong> be in <code>{active, false}</code> mode before telling the client that the server is ready to upgrade in order to avoid race conditions.</p>
<div class="listingblock"><div class="title">Performing a TLS handshake on a TCP socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/index.html b/docs/en/ranch/1.6/manual/index.html
index c0ffae17..0d82e78e 100644
--- a/docs/en/ranch/1.6/manual/index.html
+++ b/docs/en/ranch/1.6/manual/index.html
@@ -89,7 +89,7 @@
</li>
</ul>
<p>All these applications must be started before the <code>ranch</code> application. To start Ranch and all dependencies at once:</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.child_spec/index.html b/docs/en/ranch/1.6/manual/ranch.child_spec/index.html
index 009b863a..dcaee508 100644
--- a/docs/en/ranch/1.6/manual/ranch.child_spec/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.child_spec/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:child_spec - Build child specifications for a new listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -108,7 +108,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Embed a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.get_addr/index.html b/docs/en/ranch/1.6/manual/ranch.get_addr/index.html
index a916ff19..ce4c27b1 100644
--- a/docs/en/ranch/1.6/manual/ranch.get_addr/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.get_addr/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_addr - Get the listening port and IP</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -84,7 +84,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The IP address is the IP of the network interface the socket is bound to.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the listening port and IP</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.get_max_connections/index.html b/docs/en/ranch/1.6/manual/ranch.get_max_connections/index.html
index d9f60f1e..56ad924c 100644
--- a/docs/en/ranch/1.6/manual/ranch.get_max_connections/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.get_max_connections/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_max_connections - Get the max number of connections</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -82,7 +82,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The maximum number of connections is returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the max number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.get_port/index.html b/docs/en/ranch/1.6/manual/ranch.get_port/index.html
index 854d4047..2b820d96 100644
--- a/docs/en/ranch/1.6/manual/ranch.get_port/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.get_port/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_port - Get the listening port</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -83,7 +83,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The listening port is returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the listening port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.get_protocol_options/index.html b/docs/en/ranch/1.6/manual/ranch.get_protocol_options/index.html
index 53dae5f1..0bdf9e28 100644
--- a/docs/en/ranch/1.6/manual/ranch.get_protocol_options/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.get_protocol_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_protocol_options - Get the current protocol options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -82,7 +82,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The current protocol options are returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the current protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.get_status/index.html b/docs/en/ranch/1.6/manual/ranch.get_status/index.html
index b574ad68..76d528e2 100644
--- a/docs/en/ranch/1.6/manual/ranch.get_status/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.get_status/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_status - Get a listener&apos;s running state</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -85,7 +85,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get a listener&apos;s running state</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.get_transport_options/index.html b/docs/en/ranch/1.6/manual/ranch.get_transport_options/index.html
index 1636a606..3bff73a2 100644
--- a/docs/en/ranch/1.6/manual/ranch.get_transport_options/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.get_transport_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_transport_options - Get the current transport options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -82,7 +82,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The current transport options are returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the current transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.handshake/index.html b/docs/en/ranch/1.6/manual/ranch.handshake/index.html
index 2df2cd9c..9c58fd51 100644
--- a/docs/en/ranch/1.6/manual/ranch.handshake/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.handshake/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:handshake - Perform the transport handshake</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -97,7 +97,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Initialize the connection process</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.info/index.html b/docs/en/ranch/1.6/manual/ranch.info/index.html
index 4649e058..ee44d1d8 100644
--- a/docs/en/ranch/1.6/manual/ranch.info/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.info/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:info - Overview of Ranch listeners</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -123,14 +123,14 @@ http://www.gnu.org/software/src-highlite -->
<!-- it should be added back.-->
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get information about all listeners</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#009900">AllInfo</font> <font color="#990000">=</font> <b><font color="#000000">ranch:info</font></b>()<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get information about a specific listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.procs/index.html b/docs/en/ranch/1.6/manual/ranch.procs/index.html
index 7a6a25a6..48f343f7 100644
--- a/docs/en/ranch/1.6/manual/ranch.procs/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.procs/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:procs - Retrieve pids from a listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -86,14 +86,14 @@ http://www.gnu.org/software/src-highlite -->
<p>A list of pids is returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the pids of the acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#009900">Pids</font> <font color="#990000">=</font> <b><font color="#000000">ranch:procs</font></b>(<font color="#FF6600">acceptors</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get the pids of the connection processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.remove_connection/index.html b/docs/en/ranch/1.6/manual/ranch.remove_connection/index.html
index ca7b5151..80e0d603 100644
--- a/docs/en/ranch/1.6/manual/ranch.remove_connection/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.remove_connection/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:remove_connection - Remove connection from the count</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -83,7 +83,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Remove the connection process from the count</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.resume_listener/index.html b/docs/en/ranch/1.6/manual/ranch.resume_listener/index.html
index 73a35d69..41e1712d 100644
--- a/docs/en/ranch/1.6/manual/ranch.resume_listener/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.resume_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:resume_listener - Resume a suspended listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -89,7 +89,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Resume a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.set_max_connections/index.html b/docs/en/ranch/1.6/manual/ranch.set_max_connections/index.html
index c45c3d87..b8e41cf5 100644
--- a/docs/en/ranch/1.6/manual/ranch.set_max_connections/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.set_max_connections/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:set_max_connections - Set the max number of connections</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Set the max number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.set_protocol_options/index.html b/docs/en/ranch/1.6/manual/ranch.set_protocol_options/index.html
index abe43fa4..17d8e29c 100644
--- a/docs/en/ranch/1.6/manual/ranch.set_protocol_options/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.set_protocol_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:set_protocol_options - Set the protocol options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Set the protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.set_transport_options/index.html b/docs/en/ranch/1.6/manual/ranch.set_transport_options/index.html
index 2993d22b..50f579e8 100644
--- a/docs/en/ranch/1.6/manual/ranch.set_transport_options/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.set_transport_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:set_transport_options - Set the transport options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Set the transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.start_listener/index.html b/docs/en/ranch/1.6/manual/ranch.start_listener/index.html
index bacd4518..621f99b8 100644
--- a/docs/en/ranch/1.6/manual/ranch.start_listener/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.start_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:start_listener - Start a listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -111,7 +111,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Start a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -121,7 +121,7 @@ http://www.gnu.org/software/src-highlite -->
)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Start a listener with Ranch-specific options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -134,7 +134,7 @@ http://www.gnu.org/software/src-highlite -->
)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Start a listener on a random port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.stop_listener/index.html b/docs/en/ranch/1.6/manual/ranch.stop_listener/index.html
index 5445c788..cef0e4f0 100644
--- a/docs/en/ranch/1.6/manual/ranch.stop_listener/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.stop_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:stop_listener - Stop a listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -86,7 +86,7 @@ http://www.gnu.org/software/src-highlite -->
<p>An error tuple is returned when the listener is not found.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Stop a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.suspend_listener/index.html b/docs/en/ranch/1.6/manual/ranch.suspend_listener/index.html
index d390e417..54ceb0c1 100644
--- a/docs/en/ranch/1.6/manual/ranch.suspend_listener/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.suspend_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:suspend_listener - Suspend a running listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -90,7 +90,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Suspend a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch.wait_for_connections/index.html b/docs/en/ranch/1.6/manual/ranch.wait_for_connections/index.html
index 69bf5ac8..b41f5695 100644
--- a/docs/en/ranch/1.6/manual/ranch.wait_for_connections/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.wait_for_connections/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:wait_for_connections - Wait for a specific number of connections</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -99,14 +99,14 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Wait for at least 100 connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:wait_for_connections</font></b>(<font color="#FF6600">example</font>, <font color="#FF6600">'&gt;='</font>, <font color="#993399">100</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Gracefully shutdown a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch/index.html b/docs/en/ranch/1.6/manual/ranch/index.html
index e05d4dcb..566cbd31 100644
--- a/docs/en/ranch/1.6/manual/ranch/index.html
+++ b/docs/en/ranch/1.6/manual/ranch/index.html
@@ -119,7 +119,7 @@
</ul>
<h2 id="_types">Types</h2>
<h3 id="_max_conns">max_conns()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -128,7 +128,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Maximum number of connections allowed on this listener.</p>
<p>This is a soft limit. The actual number of connections might be slightly above the limit due to concurrency when accepting new connections. Some connections may also be removed from this count explicitly by the user code.</p>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -142,7 +142,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Deprecated form for Ranch-specific options.</p>
<p>Please use the <code>opts()</code> type when you need to provide Ranch-specific transport options. Socket options will remain separate from the Ranch-specific options.</p>
<h3 id="_opts">opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -186,7 +186,7 @@ http://www.gnu.org/software/src-highlite -->
</dd>
</dl>
<h3 id="_ref">ref()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch_app/index.html b/docs/en/ranch/1.6/manual/ranch_app/index.html
index fa0fbbab..ca419503 100644
--- a/docs/en/ranch/1.6/manual/ranch_app/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_app/index.html
@@ -89,7 +89,7 @@
</li>
</ul>
<p>All these applications must be started before the <code>ranch</code> application. To start Ranch and all dependencies at once:</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch_protocol/index.html b/docs/en/ranch/1.6/manual/ranch_protocol/index.html
index 5351ee5c..f676182e 100644
--- a/docs/en/ranch/1.6/manual/ranch_protocol/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_protocol/index.html
@@ -68,7 +68,7 @@
<p>The module <code>ranch_protocol</code> defines the interface used by Ranch protocols.</p>
<h2 id="_callbacks">Callbacks</h2>
<p>Ranch protocols implement the following interface:</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch_ssl/index.html b/docs/en/ranch/1.6/manual/ranch_ssl/index.html
index 0ecca4f7..05d3af7d 100644
--- a/docs/en/ranch/1.6/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_ssl/index.html
@@ -70,7 +70,7 @@
<p>The module <code>ranch_ssl</code> implements the interface defined by <a href="../ranch_transport">ranch_transport(3)</a>.</p>
<h2 id="_types">Types</h2>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -79,7 +79,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Listen options.</p>
<p>The TCP options are defined in <a href="../ranch_tcp">ranch_tcp(3)</a>.</p>
<h3 id="_opts">opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>List of listen options.</p>
<h3 id="_ssl_opt">ssl_opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch_tcp/index.html b/docs/en/ranch/1.6/manual/ranch_tcp/index.html
index 605d27a7..0b9b9fc5 100644
--- a/docs/en/ranch/1.6/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_tcp/index.html
@@ -71,7 +71,7 @@
<p>The module <code>ranch_tcp</code> implements the interface defined by <a href="../ranch_transport">ranch_transport(3)</a>.</p>
<h2 id="_types">Types</h2>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -180,7 +180,7 @@ http://www.gnu.org/software/src-highlite -->
</dl>
<p>In addition, the <code>raw</code> option can be used to set system-specific options by specifying the protocol level, the option number and the actual option value specified as a binary. This option is not portable. Use with caution.</p>
<h3 id="_opts">opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch_transport.sendfile/index.html b/docs/en/ranch/1.6/manual/ranch_transport.sendfile/index.html
index fbdf5a80..d8151896 100644
--- a/docs/en/ranch/1.6/manual/ranch_transport.sendfile/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_transport.sendfile/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch_transport:sendfile - Send a file on the socket</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Implement Transport:sendfile using the fallback</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.6/manual/ranch_transport/index.html b/docs/en/ranch/1.6/manual/ranch_transport/index.html
index 6e108243..493849df 100644
--- a/docs/en/ranch/1.6/manual/ranch_transport/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_transport/index.html
@@ -69,7 +69,7 @@
<h2 id="_callbacks">Callbacks</h2>
<p>Ranch transports implement the following interface:</p>
<h3 id="_accept">accept</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -79,7 +79,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Use the listening socket returned by <code>listen/1</code> to accept a new connection. The timeout is specified in milliseconds.</p>
<h3 id="_close">close</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Close the socket.</p>
<h3 id="_controlling_process">controlling_process</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -96,7 +96,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Assign a new controlling process to the socket. The controlling process is the process that is linked to and receives messages from the socket.</p>
<h3 id="_getopts">getopts</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -105,7 +105,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Get one or more options for the socket.</p>
<h3 id="_getstat">getstat</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -113,7 +113,7 @@ http://www.gnu.org/software/src-highlite -->
<font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">SockStatValues</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()} | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}</tt></pre>
</div></div>
<p>Get all statistics for the socket.</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -122,7 +122,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Get one or more statistic options for the socket.</p>
<h3 id="_handshake">handshake</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -135,7 +135,7 @@ http://www.gnu.org/software/src-highlite -->
<p>This function will be called by connection processes before performing any socket operation. It allows transports that require extra initialization to perform their task and return a socket that is ready to use.</p>
<p>This function may also be used to upgrade a connection from a transport to another depending on the capabilities of the transports. For example a <code>ranch_tcp</code> socket may be upgraded to a <code>ranch_ssl</code> one using this function.</p>
<h3 id="_listen">listen</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -145,7 +145,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Create a socket that listens on the given port.</p>
<p>The port may not be specified or may be set to 0, which means a random available port number will be chosen.</p>
<h3 id="_messages">messages</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -156,7 +156,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return the tuple keys for the messages sent by the socket.</p>
<h3 id="_name">name</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -164,7 +164,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return the name of the transport.</p>
<h3 id="_peername">peername</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -174,7 +174,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return the address and port number for the other end of the connection.</p>
<h3 id="_recv">recv</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -189,7 +189,7 @@ http://www.gnu.org/software/src-highlite -->
<p>A length of 0 will return the data available on the socket as soon as possible, regardless of length.</p>
<p>While it is possible to use the timeout value <code>infinity</code>, it is highly discouraged as it could cause your process to get stuck waiting for data that will never come. This may happen when a socket becomes half-open due to a crash of the remote endpoint. Wi-Fi going down is another common culprit.</p>
<h3 id="_secure">secure</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -197,7 +197,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return whether the transport can be used for secure connections.</p>
<h3 id="_send">send</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -206,7 +206,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Send a packet on the socket.</p>
<h3 id="_sendfile">sendfile</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -227,7 +227,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The file may be sent full or in parts, and may be specified by its filename or by an already open file descriptor.</p>
<p>Transports that manipulate TCP directly may use the <code>file:sendfile/2,4,5</code> function, which calls the <code>sendfile</code> syscall where applicable (on Linux, for example). Other transports can use the <code>sendfile/6</code> function exported from this module.</p>
<h3 id="_setopts">setopts</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -236,7 +236,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Set one or more options for the socket.</p>
<h3 id="_shutdown">shutdown</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -246,7 +246,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Close the socket for reading and/or writing.</p>
<h3 id="_sockname">sockname</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -262,7 +262,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_types">Types</h2>
<h3 id="_sendfile_opts">sendfile_opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -274,7 +274,7 @@ http://www.gnu.org/software/src-highlite -->
</dd>
</dl>
<h3 id="_socket">socket()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/guide/embedded/index.html b/docs/en/ranch/1.7/guide/embedded/index.html
index 22791d31..918de887 100644
--- a/docs/en/ranch/1.7/guide/embedded/index.html
+++ b/docs/en/ranch/1.7/guide/embedded/index.html
@@ -70,7 +70,7 @@
<p>As for <code>ranch_sup</code>, the child spec is simple enough to not require a convenience function.</p>
<p>The following example adds both <code>ranch_sup</code> and one listener to another application&apos;s supervision tree.</p>
<div class="listingblock"><div class="title">Embed Ranch directly in your supervision tree</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/guide/internals/index.html b/docs/en/ranch/1.7/guide/internals/index.html
index 41f4403a..c69eef95 100644
--- a/docs/en/ranch/1.7/guide/internals/index.html
+++ b/docs/en/ranch/1.7/guide/internals/index.html
@@ -82,7 +82,7 @@
<p>This is especially useful if you expect many connections to be mostly idle, perhaps part of a connection pool. They can be handled by the kernel directly until they send any real data, instead of allocating resources to idle connections.</p>
<p>To enable this mechanism, the following option can be used.</p>
<div class="listingblock"><div class="title">Using raw transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/guide/listeners/index.html b/docs/en/ranch/1.7/guide/listeners/index.html
index 584ec224..5c64e2c7 100644
--- a/docs/en/ranch/1.7/guide/listeners/index.html
+++ b/docs/en/ranch/1.7/guide/listeners/index.html
@@ -80,7 +80,7 @@
<p>Ranch includes both TCP and SSL transport handlers, respectively <code>ranch_tcp</code> and <code>ranch_ssl</code>.</p>
<p>A listener can be started by calling the <code>ranch:start_listener/5</code> function. Before doing so however, you must ensure that the <code>ranch</code> application is started.</p>
<div class="listingblock"><div class="title">Starting the Ranch application</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You are then ready to start a listener. Let&apos;s call it <code>tcp_echo</code>. It will have a pool of 100 acceptors, use a TCP transport and forward connections to the <code>echo_protocol</code> handler.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on port 5555</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -99,7 +99,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can try this out by compiling and running the <code>tcp_echo</code> example in the examples directory. To do so, open a shell in the <em>examples/tcp_echo/</em> directory and run the following command:</p>
<div class="listingblock"><div class="title">Building and starting a Ranch example</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can then connect to it using telnet and see the echo server reply everything you send to it. Then when you&apos;re done testing, you can use the <code>Ctrl+]</code> key to escape to the telnet command line and type <code>quit</code> to exit.</p>
<div class="listingblock"><div class="title">Connecting to the example listener with telnet</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -127,7 +127,7 @@ Connection closed<font color="#990000">.</font></tt></pre>
<h2 id="_stopping_a_listener">Stopping a listener</h2>
<p>All you need to stop a Ranch listener is to call the <code>ranch:stop_listener/1</code> function with the listener&apos;s name as argument. In the previous section we started the listener named <code>tcp_echo</code>. We can now stop it.</p>
<div class="listingblock"><div class="title">Stopping a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -137,7 +137,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Listeners can be suspended and resumed by calling <code>ranch:suspend_listener/1</code> and <code>ranch:resume_listener/1</code>, respectively, with the name of the listener as argument.</p>
<p>Suspending a listener will cause it to stop listening and not accept new connections, but existing connection processes will not be stopped.</p>
<div class="listingblock"><div class="title">Suspending a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -145,7 +145,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Resuming a listener will cause it to start listening and accept new connections again. It is worth mentioning, however, that if the listener is configured to listen on a random port, it will listen on a different port than before it was suspended.</p>
<div class="listingblock"><div class="title">Resuming a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -159,7 +159,7 @@ http://www.gnu.org/software/src-highlite -->
<p>You do not have to specify a specific port to listen on. If you give the port number 0, or if you omit the port number entirely, Ranch will start listening on a random port.</p>
<p>You can retrieve this port number by calling <code>ranch:get_port/1</code>. The argument is the name of the listener you gave in <code>ranch:start_listener/5</code>.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on a random port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -178,7 +178,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_limiting_the_number_of_concurrent_connections">Limiting the number of concurrent connections</h2>
<p>The <code>max_connections</code> transport option allows you to limit the number of concurrent connections. It defaults to 1024. Its purpose is to prevent your system from being overloaded and ensuring all the connections are handled optimally.</p>
<div class="listingblock"><div class="title">Customizing the maximum number of concurrent connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -189,7 +189,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can disable this limit by setting its value to the atom <code>infinity</code>.</p>
<div class="listingblock"><div class="title">Disabling the limit for the number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -203,7 +203,7 @@ http://www.gnu.org/software/src-highlite -->
<p>You may not always want connections to be counted when checking for <code>max_connections</code>. For example you might have a protocol where both short-lived and long-lived connections are possible. If the long-lived connections are mostly waiting for messages, then they don&apos;t consume much resources and can safely be removed from the count.</p>
<p>To remove the connection from the count, you must call the <code>ranch:remove_connection/1</code> from within the connection process, with the name of the listener as the only argument.</p>
<div class="listingblock"><div class="title">Removing a connection from the count of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -212,7 +212,7 @@ http://www.gnu.org/software/src-highlite -->
<p>As seen in the chapter covering protocols, this pid is received as the first argument of the protocol&apos;s <code>start_link/4</code> callback.</p>
<p>You can modify the <code>max_connections</code> value on a running listener by using the <code>ranch:set_max_connections/2</code> function, with the name of the listener as first argument and the new value as the second.</p>
<div class="listingblock"><div class="title">Upgrading the maximum number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -223,7 +223,7 @@ http://www.gnu.org/software/src-highlite -->
<p>By default Ranch will use 10 acceptor processes. Their role is to accept connections and spawn a connection process for every new connection.</p>
<p>This number can be tweaked to improve performance. A good number is typically between 10 or 100 acceptors. You must measure to find the best value for your application.</p>
<div class="listingblock"><div class="title">Specifying a custom number of acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -246,7 +246,7 @@ Ranch acceptor reducing accept rate: out of file descriptors</pre></div></div>
<p>Ranch allows you to upgrade the protocol options. This takes effect immediately and for all subsequent connections.</p>
<p>To upgrade the protocol options, call <code>ranch:set_protocol_options/2</code> with the name of the listener as first argument and the new options as the second.</p>
<div class="listingblock"><div class="title">Upgrading the protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -255,7 +255,7 @@ http://www.gnu.org/software/src-highlite -->
<p>All future connections will use the new options.</p>
<p>You can also retrieve the current options similarly by calling <code>ranch:get_protocol_options/1</code>.</p>
<div class="listingblock"><div class="title">Retrieving the current protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -265,7 +265,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Ranch allows you to change the transport options of a listener, for example to make it listen on a different port.</p>
<p>To change transport options, the listener has to be suspended first. Then you are allowed to change the transport options by calling <code>ranch:set_transport_options/2</code> with the listener name and the new transport options as arguments. After that, you can resume the listener.</p>
<div class="listingblock"><div class="title">Changing the transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -273,7 +273,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can retrieve the current transport options by calling <code>ranch:get_transport_options/1</code>.</p>
<div class="listingblock"><div class="title">Retrieving the current transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -283,7 +283,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Ranch provides two functions for retrieving information about the listeners, for reporting and diagnostic purposes.</p>
<p>The <code>ranch:info/0</code> function will return detailed information about all listeners.</p>
<div class="listingblock"><div class="title">Retrieving detailed information</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -291,14 +291,14 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>The <code>ranch:procs/2</code> function will return all acceptor or listener processes for a given listener.</p>
<div class="listingblock"><div class="title">Get all acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:procs</font></b>(<font color="#FF6600">tcp_echo</font>, <font color="#FF6600">acceptors</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get all connection processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/guide/parsers/index.html b/docs/en/ranch/1.7/guide/parsers/index.html
index 0eb94a03..bb2f8e0e 100644
--- a/docs/en/ranch/1.7/guide/parsers/index.html
+++ b/docs/en/ranch/1.7/guide/parsers/index.html
@@ -76,7 +76,7 @@
<p>Text protocols are generally line based. This means that we can&apos;t do anything with them until we receive the full line.</p>
<p>A simple way to get a full line is to use <code>binary:split/2,3</code>.</p>
<div class="listingblock"><div class="title">Using binary:split/2 to get a line of input</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -90,7 +90,7 @@ http://www.gnu.org/software/src-highlite -->
<p>In the above example, we can have two results. Either there was a line break in the buffer and we get it split into two parts, the line and the rest of the buffer; or there was no line break in the buffer and we need to get more data from the socket.</p>
<p>Next, we need to parse the line. The simplest way is to again split, here on space. The difference is that we want to split on all spaces character, as we want to tokenize the whole string.</p>
<div class="listingblock"><div class="title">Using binary:split/3 to split text</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -111,7 +111,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Sometimes the size of the frame includes the first four bytes, sometimes not. Other times this size is encoded over two bytes. And even other times little-endian is used instead of big-endian.</p>
<p>The general idea stays the same though.</p>
<div class="listingblock"><div class="title">Using binary pattern matching to split frames</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/guide/protocols/index.html b/docs/en/ranch/1.7/guide/protocols/index.html
index dd1b8bb3..5828dd93 100644
--- a/docs/en/ranch/1.7/guide/protocols/index.html
+++ b/docs/en/ranch/1.7/guide/protocols/index.html
@@ -67,7 +67,7 @@
<p>All protocol handlers must implement the <code>ranch_protocol</code> behavior which defines a single callback, <code>start_link/4</code>. This callback is responsible for spawning a new process for handling the connection. It receives four arguments: the name of the listener, the socket, the transport handler being used and the protocol options defined in the call to <code>ranch:start_listener/5</code>. This callback must return <code>{ok, Pid}</code>, with <code>Pid</code> the pid of the new process.</p>
<p>The newly started process can then freely initialize itself. However, it must call <code>ranch:handshake/1,2</code> before doing any socket operation. This will ensure the connection process is the owner of the socket. It expects the listener&apos;s name as argument.</p>
<div class="listingblock"><div class="title">Perform the socket handshake</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -76,7 +76,7 @@ http://www.gnu.org/software/src-highlite -->
<p>If your protocol code requires specific socket options, you should set them while initializing your connection process, after calling <code>ranch:handshake/1,2</code>. You can use <code>Transport:setopts/2</code> for that purpose.</p>
<p>Following is the complete protocol code for the example found in <code>examples/tcp_echo/</code>.</p>
<div class="listingblock"><div class="title">Protocol module that echoes everything it receives</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Special processes like the ones that use the <code>gen_statem</code> or <code>gen_server</code> behaviours have the particularity of having their <code>start_link</code> call not return until the <code>init</code> function returns. This is problematic, because you won&apos;t be able to call <code>ranch:handshake/1,2</code> from the <code>init</code> callback as this would cause a deadlock to happen.</p>
<p>Use the <code>gen_statem:enter_loop/4</code> function. It allows you to start your process normally (although it must be started with <code>proc_lib</code> like all special processes), then perform any needed operations before falling back into the normal <code>gen_statem</code> execution loop.</p>
<div class="listingblock"><div class="title">Use a gen_statem for protocol handling</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/guide/ssl_auth/index.html b/docs/en/ranch/1.7/guide/ssl_auth/index.html
index 20e35715..ce1891bc 100644
--- a/docs/en/ranch/1.7/guide/ssl_auth/index.html
+++ b/docs/en/ranch/1.7/guide/ssl_auth/index.html
@@ -90,7 +90,7 @@
<h2 id="_transport_configuration">Transport configuration</h2>
<p>The SSL transport does not request a client certificate by default. You need to specify the <code>{verify, verify_peer}</code> option when starting the listener to enable this behavior.</p>
<div class="listingblock"><div class="title">Configure a listener for SSL authentication</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_authentication">Authentication</h2>
<p>To authenticate users, you must first save the certificate information required. If you have your users&apos; certificate files, you can simply load the certificate and retrieve the information directly.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from a certificate</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -123,7 +123,7 @@ http://www.gnu.org/software/src-highlite -->
<p>To retrieve the <code>IssuerID</code> from a running connection, you need to first retrieve the client certificate and then extract this information from it. Ranch does not provide a function to retrieve the client certificate. Instead you can use the <code>ssl:peercert/1</code> function. Once you have the certificate, you can again use the <code>public_key:pkix_issuer_id/2</code> to extract the <code>IssuerID</code> value.</p>
<p>The following function returns the <code>IssuerID</code> or <code>false</code> if no client certificate was found. This snippet is intended to be used from your protocol code.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from the certificate for the current connection</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/guide/transports/index.html b/docs/en/ranch/1.7/guide/transports/index.html
index f7af0741..f3c97489 100644
--- a/docs/en/ranch/1.7/guide/transports/index.html
+++ b/docs/en/ranch/1.7/guide/transports/index.html
@@ -74,7 +74,7 @@
<p>This section assumes that <code>Transport</code> is a valid transport handler (like <code>ranch_tcp</code> or <code>ranch_ssl</code>) and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>You can send data to a socket by calling the <code>Transport:send/2</code> function. The data can be given as <code>iodata()</code>, which is defined as <code>binary() | iolist()</code>. All the following calls will work:</p>
<div class="listingblock"><div class="title">Sending data to the socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Receiving data using passive mode requires a single function call. The first argument is the socket, and the third argument is a timeout duration before the call returns with <code>{error, timeout}</code>.</p>
<p>The second argument is the amount of data in bytes that we want to receive. The function will wait for data until it has received exactly this amount. If you are not expecting a precise size, you can specify 0 which will make this call return as soon as data was read, regardless of its size.</p>
<div class="listingblock"><div class="title">Receiving data from the socket in passive mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -106,7 +106,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<p>The value of <code>OK</code>, <code>Closed</code> and <code>Error</code> can be different depending on the transport being used. To be able to properly match on them you must first call the <code>Transport:messages/0</code> function.</p>
<div class="listingblock"><div class="title">Retrieving the transport&apos;s active message identifiers</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -114,7 +114,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To start receiving messages you will need to call the <code>Transport:setopts/2</code> function, and do so every time you want to receive data.</p>
<div class="listingblock"><div class="title">Receiving messages from the socket in active mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -134,7 +134,7 @@ http://www.gnu.org/software/src-highlite -->
<p>As in the previous section it is assumed <code>Transport</code> is a valid transport handler and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>To send a whole file, with name <code>Filename</code>, over a socket:</p>
<div class="listingblock"><div class="title">Sending a file by filename</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -142,7 +142,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Or part of a file, with <code>Offset</code> greater than or equal to 0, <code>Bytes</code> number of bytes and chunks of size <code>ChunkSize</code>:</p>
<div class="listingblock"><div class="title">Sending part of a file by filename in chunks</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -151,7 +151,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To improve efficiency when sending multiple parts of the same file it is also possible to use a file descriptor opened in raw mode:</p>
<div class="listingblock"><div class="title">Sending a file opened in raw mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -161,7 +161,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_upgrading_a_tcp_socket_to_ssl">Upgrading a TCP socket to SSL</h2>
<p>A connected TCP socket can be upgraded to a SSL socket via the function <code>ranch_ssl:handshake/3</code>. The socket <strong>must</strong> be in <code>{active, false}</code> mode before telling the client that the server is ready to upgrade in order to avoid race conditions.</p>
<div class="listingblock"><div class="title">Performing a TLS handshake on a TCP socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/index.html b/docs/en/ranch/1.7/manual/index.html
index c1069688..17b6a287 100644
--- a/docs/en/ranch/1.7/manual/index.html
+++ b/docs/en/ranch/1.7/manual/index.html
@@ -91,7 +91,7 @@
</li>
</ul>
<p>All these applications must be started before the <code>ranch</code> application. To start Ranch and all dependencies at once:</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.child_spec/index.html b/docs/en/ranch/1.7/manual/ranch.child_spec/index.html
index 78a31698..42ef604a 100644
--- a/docs/en/ranch/1.7/manual/ranch.child_spec/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.child_spec/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:child_spec - Build child specifications for a new listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -108,7 +108,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Embed a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.get_addr/index.html b/docs/en/ranch/1.7/manual/ranch.get_addr/index.html
index 3f752903..a8ed1dd6 100644
--- a/docs/en/ranch/1.7/manual/ranch.get_addr/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.get_addr/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_addr - Get the listening port and IP</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -84,7 +84,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The IP address is the IP of the network interface the socket is bound to.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the listening port and IP</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.get_max_connections/index.html b/docs/en/ranch/1.7/manual/ranch.get_max_connections/index.html
index 45905c48..51ba800d 100644
--- a/docs/en/ranch/1.7/manual/ranch.get_max_connections/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.get_max_connections/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_max_connections - Get the max number of connections</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -82,7 +82,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The maximum number of connections is returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the max number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.get_port/index.html b/docs/en/ranch/1.7/manual/ranch.get_port/index.html
index b826aeb3..d9076ffd 100644
--- a/docs/en/ranch/1.7/manual/ranch.get_port/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.get_port/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_port - Get the listening port</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -83,7 +83,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The listening port is returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the listening port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.get_protocol_options/index.html b/docs/en/ranch/1.7/manual/ranch.get_protocol_options/index.html
index 9e8d7d88..65dbcf12 100644
--- a/docs/en/ranch/1.7/manual/ranch.get_protocol_options/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.get_protocol_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_protocol_options - Get the current protocol options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -82,7 +82,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The current protocol options are returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the current protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.get_status/index.html b/docs/en/ranch/1.7/manual/ranch.get_status/index.html
index 40ec9176..49d3b336 100644
--- a/docs/en/ranch/1.7/manual/ranch.get_status/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.get_status/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_status - Get a listener&apos;s running state</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -85,7 +85,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get a listener&apos;s running state</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.get_transport_options/index.html b/docs/en/ranch/1.7/manual/ranch.get_transport_options/index.html
index 25871700..9786a103 100644
--- a/docs/en/ranch/1.7/manual/ranch.get_transport_options/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.get_transport_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_transport_options - Get the current transport options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -82,7 +82,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The current transport options are returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the current transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.handshake/index.html b/docs/en/ranch/1.7/manual/ranch.handshake/index.html
index e4121a8a..06145f4a 100644
--- a/docs/en/ranch/1.7/manual/ranch.handshake/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.handshake/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:handshake - Perform the transport handshake</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -97,7 +97,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Initialize the connection process</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.info/index.html b/docs/en/ranch/1.7/manual/ranch.info/index.html
index 42c8ed58..f7506d46 100644
--- a/docs/en/ranch/1.7/manual/ranch.info/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.info/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:info - Overview of Ranch listeners</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -123,14 +123,14 @@ http://www.gnu.org/software/src-highlite -->
<!-- it should be added back.-->
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get information about all listeners</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#009900">AllInfo</font> <font color="#990000">=</font> <b><font color="#000000">ranch:info</font></b>()<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get information about a specific listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.procs/index.html b/docs/en/ranch/1.7/manual/ranch.procs/index.html
index d306a1ff..2bce6c1d 100644
--- a/docs/en/ranch/1.7/manual/ranch.procs/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.procs/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:procs - Retrieve pids from a listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -86,14 +86,14 @@ http://www.gnu.org/software/src-highlite -->
<p>A list of pids is returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the pids of the acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#009900">Pids</font> <font color="#990000">=</font> <b><font color="#000000">ranch:procs</font></b>(<font color="#FF6600">acceptors</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get the pids of the connection processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.recv_proxy_header/index.html b/docs/en/ranch/1.7/manual/ranch.recv_proxy_header/index.html
index e652fac6..f0b05deb 100644
--- a/docs/en/ranch/1.7/manual/ranch.recv_proxy_header/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.recv_proxy_header/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:recv_proxy_header - Receive the PROXY protocol header</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -94,7 +94,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Receive the PROXY protocol header</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.remove_connection/index.html b/docs/en/ranch/1.7/manual/ranch.remove_connection/index.html
index df47d1d8..540ed9a9 100644
--- a/docs/en/ranch/1.7/manual/ranch.remove_connection/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.remove_connection/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:remove_connection - Remove connection from the count</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -83,7 +83,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Remove the connection process from the count</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.resume_listener/index.html b/docs/en/ranch/1.7/manual/ranch.resume_listener/index.html
index f702c4f0..9aabac54 100644
--- a/docs/en/ranch/1.7/manual/ranch.resume_listener/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.resume_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:resume_listener - Resume a suspended listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -89,7 +89,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Resume a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.set_max_connections/index.html b/docs/en/ranch/1.7/manual/ranch.set_max_connections/index.html
index c25d3210..ab1c1caf 100644
--- a/docs/en/ranch/1.7/manual/ranch.set_max_connections/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.set_max_connections/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:set_max_connections - Set the max number of connections</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Set the max number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.set_protocol_options/index.html b/docs/en/ranch/1.7/manual/ranch.set_protocol_options/index.html
index bfef32a3..e69e4e98 100644
--- a/docs/en/ranch/1.7/manual/ranch.set_protocol_options/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.set_protocol_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:set_protocol_options - Set the protocol options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Set the protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.set_transport_options/index.html b/docs/en/ranch/1.7/manual/ranch.set_transport_options/index.html
index 893b526f..f4b517a9 100644
--- a/docs/en/ranch/1.7/manual/ranch.set_transport_options/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.set_transport_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:set_transport_options - Set the transport options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Set the transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.start_listener/index.html b/docs/en/ranch/1.7/manual/ranch.start_listener/index.html
index b5a5af72..cc06379d 100644
--- a/docs/en/ranch/1.7/manual/ranch.start_listener/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.start_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:start_listener - Start a listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -111,7 +111,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Start a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -121,7 +121,7 @@ http://www.gnu.org/software/src-highlite -->
)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Start a listener with Ranch-specific options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -134,7 +134,7 @@ http://www.gnu.org/software/src-highlite -->
)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Start a listener on a random port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.stop_listener/index.html b/docs/en/ranch/1.7/manual/ranch.stop_listener/index.html
index 4df7bd03..d1086774 100644
--- a/docs/en/ranch/1.7/manual/ranch.stop_listener/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.stop_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:stop_listener - Stop a listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -86,7 +86,7 @@ http://www.gnu.org/software/src-highlite -->
<p>An error tuple is returned when the listener is not found.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Stop a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.suspend_listener/index.html b/docs/en/ranch/1.7/manual/ranch.suspend_listener/index.html
index 283e0645..7bf6deea 100644
--- a/docs/en/ranch/1.7/manual/ranch.suspend_listener/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.suspend_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:suspend_listener - Suspend a running listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -90,7 +90,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Suspend a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch.wait_for_connections/index.html b/docs/en/ranch/1.7/manual/ranch.wait_for_connections/index.html
index 4ca0c580..ad0e9719 100644
--- a/docs/en/ranch/1.7/manual/ranch.wait_for_connections/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.wait_for_connections/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:wait_for_connections - Wait for a specific number of connections</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -99,14 +99,14 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Wait for at least 100 connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:wait_for_connections</font></b>(<font color="#FF6600">example</font>, <font color="#FF6600">'&gt;='</font>, <font color="#993399">100</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Gracefully shutdown a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch/index.html b/docs/en/ranch/1.7/manual/ranch/index.html
index 0d572d49..160ccbcf 100644
--- a/docs/en/ranch/1.7/manual/ranch/index.html
+++ b/docs/en/ranch/1.7/manual/ranch/index.html
@@ -121,7 +121,7 @@
</ul>
<h2 id="_types">Types</h2>
<h3 id="_max_conns">max_conns()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -130,7 +130,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Maximum number of connections allowed on this listener.</p>
<p>This is a soft limit. The actual number of connections might be slightly above the limit due to concurrency when accepting new connections. Some connections may also be removed from this count explicitly by the user code.</p>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -144,7 +144,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Deprecated form for Ranch-specific options.</p>
<p>Please use the <code>opts()</code> type when you need to provide Ranch-specific transport options. Socket options will remain separate from the Ranch-specific options.</p>
<h3 id="_opts">opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -188,7 +188,7 @@ http://www.gnu.org/software/src-highlite -->
</dd>
</dl>
<h3 id="_ref">ref()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch_app/index.html b/docs/en/ranch/1.7/manual/ranch_app/index.html
index c9112ee6..8e59db21 100644
--- a/docs/en/ranch/1.7/manual/ranch_app/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_app/index.html
@@ -91,7 +91,7 @@
</li>
</ul>
<p>All these applications must be started before the <code>ranch</code> application. To start Ranch and all dependencies at once:</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch_protocol/index.html b/docs/en/ranch/1.7/manual/ranch_protocol/index.html
index 491734f2..41d2faf9 100644
--- a/docs/en/ranch/1.7/manual/ranch_protocol/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_protocol/index.html
@@ -68,7 +68,7 @@
<p>The module <code>ranch_protocol</code> defines the interface used by Ranch protocols.</p>
<h2 id="_callbacks">Callbacks</h2>
<p>Ranch protocols implement the following interface:</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch_proxy_header.header/index.html b/docs/en/ranch/1.7/manual/ranch_proxy_header.header/index.html
index f11ccf2c..05689967 100644
--- a/docs/en/ranch/1.7/manual/ranch_proxy_header.header/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_proxy_header.header/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch_proxy_header:header - Build a PROXY protocol header</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -95,7 +95,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Build a PROXY protocol header</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -114,7 +114,7 @@ http://www.gnu.org/software/src-highlite -->
<font color="#009900">Data</font> <font color="#990000">=</font> <b><font color="#000000">ranch_proxy_header:parse</font></b>(<font color="#009900">ProxyInfo</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Build a PROXY protocol header with checksum and padding</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch_proxy_header.parse/index.html b/docs/en/ranch/1.7/manual/ranch_proxy_header.parse/index.html
index a71802d5..eea27d64 100644
--- a/docs/en/ranch/1.7/manual/ranch_proxy_header.parse/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_proxy_header.parse/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch_proxy_header:parse - Parse a PROXY protocol header</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Parse the PROXY protocol header</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch_proxy_header/index.html b/docs/en/ranch/1.7/manual/ranch_proxy_header/index.html
index 38206908..c3be8e72 100644
--- a/docs/en/ranch/1.7/manual/ranch_proxy_header/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_proxy_header/index.html
@@ -74,7 +74,7 @@
</ul>
<h2 id="_types">Types</h2>
<h3 id="_proxy_info">proxy_info()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch_ssl/index.html b/docs/en/ranch/1.7/manual/ranch_ssl/index.html
index e839491c..ca74fa16 100644
--- a/docs/en/ranch/1.7/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_ssl/index.html
@@ -70,7 +70,7 @@
<p>The module <code>ranch_ssl</code> implements the interface defined by <a href="../ranch_transport">ranch_transport(3)</a>.</p>
<h2 id="_types">Types</h2>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -79,7 +79,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Listen options.</p>
<p>The TCP options are defined in <a href="../ranch_tcp">ranch_tcp(3)</a>.</p>
<h3 id="_opts">opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>List of listen options.</p>
<h3 id="_ssl_opt">ssl_opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch_tcp/index.html b/docs/en/ranch/1.7/manual/ranch_tcp/index.html
index 5b566045..a64b104a 100644
--- a/docs/en/ranch/1.7/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_tcp/index.html
@@ -71,7 +71,7 @@
<p>The module <code>ranch_tcp</code> implements the interface defined by <a href="../ranch_transport">ranch_transport(3)</a>.</p>
<h2 id="_types">Types</h2>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -180,7 +180,7 @@ http://www.gnu.org/software/src-highlite -->
</dl>
<p>In addition, the <code>raw</code> option can be used to set system-specific options by specifying the protocol level, the option number and the actual option value specified as a binary. This option is not portable. Use with caution.</p>
<h3 id="_opts">opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch_transport.sendfile/index.html b/docs/en/ranch/1.7/manual/ranch_transport.sendfile/index.html
index d781788d..3d121d38 100644
--- a/docs/en/ranch/1.7/manual/ranch_transport.sendfile/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_transport.sendfile/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch_transport:sendfile - Send a file on the socket</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Implement Transport:sendfile using the fallback</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/1.7/manual/ranch_transport/index.html b/docs/en/ranch/1.7/manual/ranch_transport/index.html
index 4573297e..fa7d682d 100644
--- a/docs/en/ranch/1.7/manual/ranch_transport/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_transport/index.html
@@ -69,7 +69,7 @@
<h2 id="_callbacks">Callbacks</h2>
<p>Ranch transports implement the following interface:</p>
<h3 id="_accept">accept</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -79,7 +79,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Use the listening socket returned by <code>listen/1</code> to accept a new connection. The timeout is specified in milliseconds.</p>
<h3 id="_close">close</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Close the socket.</p>
<h3 id="_controlling_process">controlling_process</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -96,7 +96,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Assign a new controlling process to the socket. The controlling process is the process that is linked to and receives messages from the socket.</p>
<h3 id="_getopts">getopts</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -105,7 +105,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Get one or more options for the socket.</p>
<h3 id="_getstat">getstat</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -113,7 +113,7 @@ http://www.gnu.org/software/src-highlite -->
<font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">SockStatValues</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()} | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}</tt></pre>
</div></div>
<p>Get all statistics for the socket.</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -122,7 +122,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Get one or more statistic options for the socket.</p>
<h3 id="_handshake">handshake</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -135,7 +135,7 @@ http://www.gnu.org/software/src-highlite -->
<p>This function will be called by connection processes before performing any socket operation. It allows transports that require extra initialization to perform their task and return a socket that is ready to use.</p>
<p>This function may also be used to upgrade a connection from a transport to another depending on the capabilities of the transports. For example a <code>ranch_tcp</code> socket may be upgraded to a <code>ranch_ssl</code> one using this function.</p>
<h3 id="_listen">listen</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -145,7 +145,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Create a socket that listens on the given port.</p>
<p>The port may not be specified or may be set to 0, which means a random available port number will be chosen.</p>
<h3 id="_messages">messages</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -156,7 +156,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return the tuple keys for the messages sent by the socket.</p>
<h3 id="_name">name</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -164,7 +164,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return the name of the transport.</p>
<h3 id="_peername">peername</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -174,7 +174,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return the address and port number for the other end of the connection.</p>
<h3 id="_recv">recv</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -189,7 +189,7 @@ http://www.gnu.org/software/src-highlite -->
<p>A length of 0 will return the data available on the socket as soon as possible, regardless of length.</p>
<p>While it is possible to use the timeout value <code>infinity</code>, it is highly discouraged as it could cause your process to get stuck waiting for data that will never come. This may happen when a socket becomes half-open due to a crash of the remote endpoint. Wi-Fi going down is another common culprit.</p>
<h3 id="_secure">secure</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -197,7 +197,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return whether the transport can be used for secure connections.</p>
<h3 id="_send">send</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -206,7 +206,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Send a packet on the socket.</p>
<h3 id="_sendfile">sendfile</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -227,7 +227,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The file may be sent full or in parts, and may be specified by its filename or by an already open file descriptor.</p>
<p>Transports that manipulate TCP directly may use the <code>file:sendfile/2,4,5</code> function, which calls the <code>sendfile</code> syscall where applicable (on Linux, for example). Other transports can use the <code>sendfile/6</code> function exported from this module.</p>
<h3 id="_setopts">setopts</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -236,7 +236,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Set one or more options for the socket.</p>
<h3 id="_shutdown">shutdown</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -246,7 +246,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Close the socket for reading and/or writing.</p>
<h3 id="_sockname">sockname</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -262,7 +262,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_types">Types</h2>
<h3 id="_sendfile_opts">sendfile_opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -274,7 +274,7 @@ http://www.gnu.org/software/src-highlite -->
</dd>
</dl>
<h3 id="_socket">socket()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/guide/connection_draining/index.html b/docs/en/ranch/2.0/guide/connection_draining/index.html
index ba3e7112..75b17eb4 100644
--- a/docs/en/ranch/2.0/guide/connection_draining/index.html
+++ b/docs/en/ranch/2.0/guide/connection_draining/index.html
@@ -65,7 +65,7 @@
<p>Stopping a Ranch listener via <code>ranch:stop_listener/1</code> will invariably kill all connection processes the listener hosts. However, you may want to stop a listener in a graceful fashion, ie by not accepting any new connections, but allowing the existing connection processes to exit by themselves instead of being killed.</p>
<p>For this purpose, you should first suspend the listener you wish to stop gracefully, and then wait for its connection count to drop to zero.</p>
<div class="listingblock"><div class="title">Draining a single listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -75,7 +75,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>If you want to drain more than just one listener, it may be important to first suspend them all before beginning to wait for their connection counts to reach zero. Otherwise, the not yet suspended listeners will still be accepting connections while you wait for the suspended ones to be drained.</p>
<div class="listingblock"><div class="title">Draining multiple listeners</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -95,7 +95,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>If you have long-running connection processes hosted by the listener you want to stop gracefully, draining may take a long time, possibly forever. If you just want to give the connection processes a chance to finish, but are not willing to wait for infinity, the waiting part could be handled in a separate process.</p>
<div class="listingblock"><div class="title">Draining a listener with a timeout</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -116,7 +116,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To drain listeners automatically as part of your application shutdown routine, use the <code>prep_stop/1</code> function of your application module.</p>
<div class="listingblock"><div class="title">Draining listeners automatically on application shutdown</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/guide/embedded/index.html b/docs/en/ranch/2.0/guide/embedded/index.html
index 4bc2b5cd..b0ea7472 100644
--- a/docs/en/ranch/2.0/guide/embedded/index.html
+++ b/docs/en/ranch/2.0/guide/embedded/index.html
@@ -70,7 +70,7 @@
<p>Ranch has a convenience function for getting the listeners child specs called <code>ranch:child_spec/5</code>, that works like <code>ranch:start_listener/5</code>, except that it doesn&apos;t start anything, it only returns child specs.</p>
<p>The following example adds one listener to another application&apos;s supervision tree.</p>
<div class="listingblock"><div class="title">Embed Ranch directly in your supervision tree</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/guide/internals/index.html b/docs/en/ranch/2.0/guide/internals/index.html
index 5b07e48b..2b3bb7dc 100644
--- a/docs/en/ranch/2.0/guide/internals/index.html
+++ b/docs/en/ranch/2.0/guide/internals/index.html
@@ -82,7 +82,7 @@
<p>This is especially useful if you expect many connections to be mostly idle, perhaps part of a connection pool. They can be handled by the kernel directly until they send any real data, instead of allocating resources to idle connections.</p>
<p>To enable this mechanism, the following option can be used.</p>
<div class="listingblock"><div class="title">Using raw transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/guide/listeners.asciidoc b/docs/en/ranch/2.0/guide/listeners.asciidoc
index fd988f1c..6e2dd197 100644
--- a/docs/en/ranch/2.0/guide/listeners.asciidoc
+++ b/docs/en/ranch/2.0/guide/listeners.asciidoc
@@ -239,8 +239,8 @@ with the name of the listener as the only argument.
[source,erlang]
ranch:remove_connection(Ref).
-As seen in the chapter covering protocols, this pid is received as the
-first argument of the protocol's `start_link/4` callback.
+As seen in the chapter covering protocols, this reference is received
+as the first argument of the protocol's `start_link/3` callback.
You can modify the `max_connections` value on a running listener by
using the `ranch:set_max_connections/2` function, with the name of the
diff --git a/docs/en/ranch/2.0/guide/listeners/index.html b/docs/en/ranch/2.0/guide/listeners/index.html
index 9b654b4b..247b3810 100644
--- a/docs/en/ranch/2.0/guide/listeners/index.html
+++ b/docs/en/ranch/2.0/guide/listeners/index.html
@@ -80,7 +80,7 @@
<p>Ranch includes both TCP and SSL transport handlers, respectively <code>ranch_tcp</code> and <code>ranch_ssl</code>.</p>
<p>A listener can be started by calling the <code>ranch:start_listener/5</code> function. Before doing so however, you must ensure that the <code>ranch</code> application is started.</p>
<div class="listingblock"><div class="title">Starting the Ranch application</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You are then ready to start a listener. Let&apos;s call it <code>tcp_echo</code>. It will have a pool of 100 acceptors, use a TCP transport and forward connections to the <code>echo_protocol</code> handler.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on port 5555</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -99,7 +99,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can try this out by compiling and running the <code>tcp_echo</code> example in the examples directory. To do so, open a shell in the <em>examples/tcp_echo/</em> directory and run the following command:</p>
<div class="listingblock"><div class="title">Building and starting a Ranch example</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can then connect to it using telnet and see the echo server reply everything you send to it. Then when you&apos;re done testing, you can use the <code>Ctrl+]</code> key to escape to the telnet command line and type <code>quit</code> to exit.</p>
<div class="listingblock"><div class="title">Connecting to the example listener with telnet</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -127,7 +127,7 @@ Connection closed<font color="#990000">.</font></tt></pre>
<h2 id="_stopping_a_listener">Stopping a listener</h2>
<p>All you need to stop a Ranch listener is to call the <code>ranch:stop_listener/1</code> function with the listener&apos;s name as argument. In the previous section we started the listener named <code>tcp_echo</code>. We can now stop it.</p>
<div class="listingblock"><div class="title">Stopping a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -137,7 +137,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Listeners can be suspended and resumed by calling <code>ranch:suspend_listener/1</code> and <code>ranch:resume_listener/1</code>, respectively, with the name of the listener as argument.</p>
<p>Suspending a listener will cause it to stop listening and not accept new connections, but existing connection processes will not be stopped.</p>
<div class="listingblock"><div class="title">Suspending a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -145,7 +145,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Resuming a listener will cause it to start listening and accept new connections again. It is worth mentioning, however, that if the listener is configured to listen on a random port, it will listen on a different port than before it was suspended.</p>
<div class="listingblock"><div class="title">Resuming a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -159,7 +159,7 @@ http://www.gnu.org/software/src-highlite -->
<p>You do not have to specify a specific port to listen on. If you give the port number 0, or if you omit the port number entirely, Ranch will start listening on a random port.</p>
<p>You can retrieve this port number by calling <code>ranch:get_port/1</code>. The argument is the name of the listener you gave in <code>ranch:start_listener/5</code>.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on a random port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -176,7 +176,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_listening_on_a_unix_domain_socket">Listening on a UNIX Domain socket</h2>
<p>On UNIX systems, it is also possible to use Ranch to listen on a UNIX domain socket by specifying <code>{local, SocketFile}</code> for the <code>ip</code> socket option. In this case, the port must be set to 0 or omitted. The given file must not exist: Ranch must be able to create it.</p>
<div class="listingblock"><div class="title">Starting a listener for TCP connections on a UNIX Domain socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -193,7 +193,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_limiting_the_number_of_concurrent_connections">Limiting the number of concurrent connections</h2>
<p>The <code>max_connections</code> transport option allows you to limit the number of concurrent connections per connection supervisor (see below). It defaults to 1024. Its purpose is to prevent your system from being overloaded and ensuring all the connections are handled optimally.</p>
<div class="listingblock"><div class="title">Customizing the maximum number of concurrent connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -204,7 +204,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can disable this limit by setting its value to the atom <code>infinity</code>.</p>
<div class="listingblock"><div class="title">Disabling the limit for the number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -218,16 +218,16 @@ http://www.gnu.org/software/src-highlite -->
<p>You may not always want connections to be counted when checking for <code>max_connections</code>. For example you might have a protocol where both short-lived and long-lived connections are possible. If the long-lived connections are mostly waiting for messages, then they don&apos;t consume much resources and can safely be removed from the count.</p>
<p>To remove the connection from the count, you must call the <code>ranch:remove_connection/1</code> from within the connection process, with the name of the listener as the only argument.</p>
<div class="listingblock"><div class="title">Removing a connection from the count of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:remove_connection</font></b>(<font color="#009900">Ref</font>)<font color="#990000">.</font></tt></pre>
</div></div>
-<p>As seen in the chapter covering protocols, this pid is received as the first argument of the protocol&apos;s <code>start_link/4</code> callback.</p>
+<p>As seen in the chapter covering protocols, this reference is received as the first argument of the protocol&apos;s <code>start_link/3</code> callback.</p>
<p>You can modify the <code>max_connections</code> value on a running listener by using the <code>ranch:set_max_connections/2</code> function, with the name of the listener as first argument and the new value as the second.</p>
<div class="listingblock"><div class="title">Upgrading the maximum number of connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -238,7 +238,7 @@ http://www.gnu.org/software/src-highlite -->
<p>By default Ranch will use 10 acceptor processes. Their role is to accept connections and spawn a connection process for every new connection.</p>
<p>This number can be tweaked to improve performance. A good number is typically between 10 or 100 acceptors. You must measure to find the best value for your application.</p>
<div class="listingblock"><div class="title">Specifying a custom number of acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -251,7 +251,7 @@ http://www.gnu.org/software/src-highlite -->
<p>By default Ranch will use one connection supervisor for each acceptor process (but not vice versa). Their task is to supervise the connection processes started by an acceptor. The number of connection supervisors can be tweaked.</p>
<p>Note that the association between the individual acceptors and connection supervisors is fixed, meaning that acceptors will always use the same connection supervisor to start connection processes.</p>
<div class="listingblock"><div class="title">Specifying a custom number of connection supervisors</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -274,7 +274,7 @@ Ranch acceptor reducing accept rate: out of file descriptors</pre></div></div>
<p>Ranch allows you to upgrade the protocol options. This takes effect immediately and for all subsequent connections.</p>
<p>To upgrade the protocol options, call <code>ranch:set_protocol_options/2</code> with the name of the listener as first argument and the new options as the second.</p>
<div class="listingblock"><div class="title">Upgrading the protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -283,7 +283,7 @@ http://www.gnu.org/software/src-highlite -->
<p>All future connections will use the new options.</p>
<p>You can also retrieve the current options similarly by calling <code>ranch:get_protocol_options/1</code>.</p>
<div class="listingblock"><div class="title">Retrieving the current protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -292,7 +292,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_changing_transport_options">Changing transport options</h2>
<p>Ranch allows you to change the transport options of a listener with the <code>ranch:set_transport_options/2</code> function, for example to change the number of acceptors or to make it listen on a different port.</p>
<div class="listingblock"><div class="title">Changing the transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -300,7 +300,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>You can retrieve the current transport options by calling <code>ranch:get_transport_options/1</code>.</p>
<div class="listingblock"><div class="title">Retrieving the current transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -310,7 +310,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Ranch provides two functions for retrieving information about the listeners, for reporting and diagnostic purposes.</p>
<p>The <code>ranch:info/0</code> function will return detailed information about all listeners.</p>
<div class="listingblock"><div class="title">Retrieving detailed information</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -318,14 +318,14 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>The <code>ranch:procs/2</code> function will return all acceptor or listener processes for a given listener.</p>
<div class="listingblock"><div class="title">Get all acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:procs</font></b>(<font color="#FF6600">tcp_echo</font>, <font color="#FF6600">acceptors</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get all connection processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/guide/migrating_from_1.7.asciidoc b/docs/en/ranch/2.0/guide/migrating_from_1.7.asciidoc
index f63c3467..92470aaa 100644
--- a/docs/en/ranch/2.0/guide/migrating_from_1.7.asciidoc
+++ b/docs/en/ranch/2.0/guide/migrating_from_1.7.asciidoc
@@ -42,6 +42,11 @@ for Erlang/OTP 19 and 20 has been removed.
is now to just start Ranch normally when using embedded
listeners.
+* Two steps handshake is now supported. This allows
+ obtaining TLS extensions and updating options before
+ resuming the handshake. The handshake can also be
+ canceled.
+
=== Experimental features added
* The experimental `num_listen_sockets` option has been
@@ -71,6 +76,13 @@ for Erlang/OTP 19 and 20 has been removed.
* The `Socket` argument was removed from `Protocol:start_link/3`.
The socket must now be obtained by calling `ranch:handshake/1,2`.
+=== Added functions
+
+* The functions `ranch:handshake_continue/1,2` and
+ `ranch:handshake_cancel/1` can be used to perform
+ a two steps handshake. These functions may not be
+ supported by all transports.
+
=== Changed functions
* The `NumAcceptors` argument was removed from `ranch:start_listener/5`
@@ -101,6 +113,9 @@ for Erlang/OTP 19 and 20 has been removed.
=== Bugs fixed
+* Calling `ranch:remove_connection/1` will now resume a sleeping
+ acceptor process when applicable.
+
* Repeatedly calling `ranch:remove_connection/1` from a connection
process would crash the respective connection supervisor. This has
now been fixed.
diff --git a/docs/en/ranch/2.0/guide/migrating_from_1.7/index.html b/docs/en/ranch/2.0/guide/migrating_from_1.7/index.html
index c3875f16..822643db 100644
--- a/docs/en/ranch/2.0/guide/migrating_from_1.7/index.html
+++ b/docs/en/ranch/2.0/guide/migrating_from_1.7/index.html
@@ -78,6 +78,8 @@
</li>
<li>Embedded listeners are now failing in a predictable manner when <code>ranch_server</code> goes down. It is no longer necessary to embed <code>ranch_sup</code> and the recommendation is now to just start Ranch normally when using embedded listeners.
</li>
+<li>Two steps handshake is now supported. This allows obtaining TLS extensions and updating options before resuming the handshake. The handshake can also be canceled.
+</li>
</ul>
<h2 id="_experimental_features_added">Experimental features added</h2>
<ul><li>The experimental <code>num_listen_sockets</code> option has been added. It allows opening more than one listening socket per listener. It can only be used alongside the Linux <code>SO_REUSEPORT</code> socket option or equivalent. It allows working around a bottleneck in the kernel and maximizes resource usage, leading to increased rates for accepting new connections.
@@ -95,6 +97,10 @@
<li>The <code>Socket</code> argument was removed from <code>Protocol:start_link/3</code>. The socket must now be obtained by calling <code>ranch:handshake/1,2</code>.
</li>
</ul>
+<h2 id="_added_functions">Added functions</h2>
+<ul><li>The functions <code>ranch:handshake_continue/1,2</code> and <code>ranch:handshake_cancel/1</code> can be used to perform a two steps handshake. These functions may not be supported by all transports.
+</li>
+</ul>
<h2 id="_changed_functions">Changed functions</h2>
<ul><li>The <code>NumAcceptors</code> argument was removed from <code>ranch:start_listener/5</code> and <code>ranch:child_spec/5</code> and moved to the transport options.
</li>
@@ -110,7 +116,9 @@
</li>
</ul>
<h2 id="_bugs_fixed">Bugs fixed</h2>
-<ul><li>Repeatedly calling <code>ranch:remove_connection/1</code> from a connection process would crash the respective connection supervisor. This has now been fixed.
+<ul><li>Calling <code>ranch:remove_connection/1</code> will now resume a sleeping acceptor process when applicable.
+</li>
+<li>Repeatedly calling <code>ranch:remove_connection/1</code> from a connection process would crash the respective connection supervisor. This has now been fixed.
</li>
<li>When a connection process was failing to start, the socket was not closed and this lead to leaking sockets. This is now corrected.
</li>
diff --git a/docs/en/ranch/2.0/guide/parsers/index.html b/docs/en/ranch/2.0/guide/parsers/index.html
index 95c0deec..3629ddbd 100644
--- a/docs/en/ranch/2.0/guide/parsers/index.html
+++ b/docs/en/ranch/2.0/guide/parsers/index.html
@@ -76,7 +76,7 @@
<p>Text protocols are generally line based. This means that we can&apos;t do anything with them until we receive the full line.</p>
<p>A simple way to get a full line is to use <code>binary:split/2,3</code>.</p>
<div class="listingblock"><div class="title">Using binary:split/2 to get a line of input</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -90,7 +90,7 @@ http://www.gnu.org/software/src-highlite -->
<p>In the above example, we can have two results. Either there was a line break in the buffer and we get it split into two parts, the line and the rest of the buffer; or there was no line break in the buffer and we need to get more data from the socket.</p>
<p>Next, we need to parse the line. The simplest way is to again split, here on space. The difference is that we want to split on all spaces character, as we want to tokenize the whole string.</p>
<div class="listingblock"><div class="title">Using binary:split/3 to split text</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -111,7 +111,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Sometimes the size of the frame includes the first four bytes, sometimes not. Other times this size is encoded over two bytes. And even other times little-endian is used instead of big-endian.</p>
<p>The general idea stays the same though.</p>
<div class="listingblock"><div class="title">Using binary pattern matching to split frames</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/guide/protocols.asciidoc b/docs/en/ranch/2.0/guide/protocols.asciidoc
index 89360ef3..b455143e 100644
--- a/docs/en/ranch/2.0/guide/protocols.asciidoc
+++ b/docs/en/ranch/2.0/guide/protocols.asciidoc
@@ -6,7 +6,7 @@ protocol logic executed in this process.
=== Writing a protocol handler
All protocol handlers must implement the `ranch_protocol` behavior
-which defines a single callback, `start_link/4`. This callback is
+which defines a single callback, `start_link/3`. This callback is
responsible for spawning a new process for handling the connection.
It receives four arguments: the name of the listener, the socket, the
transport handler being used and the protocol options defined in
diff --git a/docs/en/ranch/2.0/guide/protocols/index.html b/docs/en/ranch/2.0/guide/protocols/index.html
index 0422912f..33d3093e 100644
--- a/docs/en/ranch/2.0/guide/protocols/index.html
+++ b/docs/en/ranch/2.0/guide/protocols/index.html
@@ -64,10 +64,10 @@
<p>A protocol handler starts a connection process and defines the protocol logic executed in this process.</p>
<h2 id="_writing_a_protocol_handler">Writing a protocol handler</h2>
-<p>All protocol handlers must implement the <code>ranch_protocol</code> behavior which defines a single callback, <code>start_link/4</code>. This callback is responsible for spawning a new process for handling the connection. It receives four arguments: the name of the listener, the socket, the transport handler being used and the protocol options defined in the call to <code>ranch:start_listener/5</code>. This callback must return <code>{ok, Pid}</code>, with <code>Pid</code> the pid of the new process.</p>
+<p>All protocol handlers must implement the <code>ranch_protocol</code> behavior which defines a single callback, <code>start_link/3</code>. This callback is responsible for spawning a new process for handling the connection. It receives four arguments: the name of the listener, the socket, the transport handler being used and the protocol options defined in the call to <code>ranch:start_listener/5</code>. This callback must return <code>{ok, Pid}</code>, with <code>Pid</code> the pid of the new process.</p>
<p>The newly started process can then freely initialize itself. However, it must call <code>ranch:handshake/1,2</code> before doing any socket operation. This will ensure the connection process is the owner of the socket. It expects the listener&apos;s name as argument.</p>
<div class="listingblock"><div class="title">Perform the socket handshake</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -76,7 +76,7 @@ http://www.gnu.org/software/src-highlite -->
<p>If your protocol code requires specific socket options, you should set them while initializing your connection process, after calling <code>ranch:handshake/1,2</code>. You can use <code>Transport:setopts/2</code> for that purpose.</p>
<p>Following is the complete protocol code for the example found in <code>examples/tcp_echo/</code>.</p>
<div class="listingblock"><div class="title">Protocol module that echoes everything it receives</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -107,7 +107,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Special processes like the ones that use the <code>gen_statem</code> or <code>gen_server</code> behaviours have the particularity of having their <code>start_link</code> call not return until the <code>init</code> function returns. This is problematic, because you won&apos;t be able to call <code>ranch:handshake/1,2</code> from the <code>init</code> callback as this would cause a deadlock to happen.</p>
<p>Use the <code>gen_statem:enter_loop/4</code> function. It allows you to start your process normally (although it must be started with <code>proc_lib</code> like all special processes), then perform any needed operations before falling back into the normal <code>gen_statem</code> execution loop.</p>
<div class="listingblock"><div class="title">Use a gen_statem for protocol handling</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/guide/ssl_auth/index.html b/docs/en/ranch/2.0/guide/ssl_auth/index.html
index 575949b7..a24b53ea 100644
--- a/docs/en/ranch/2.0/guide/ssl_auth/index.html
+++ b/docs/en/ranch/2.0/guide/ssl_auth/index.html
@@ -90,7 +90,7 @@
<h2 id="_transport_configuration">Transport configuration</h2>
<p>The SSL transport does not request a client certificate by default. You need to specify the <code>{verify, verify_peer}</code> option when starting the listener to enable this behavior.</p>
<div class="listingblock"><div class="title">Configure a listener for SSL authentication</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_authentication">Authentication</h2>
<p>To authenticate users, you must first save the certificate information required. If you have your users&apos; certificate files, you can simply load the certificate and retrieve the information directly.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from a certificate</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -123,7 +123,7 @@ http://www.gnu.org/software/src-highlite -->
<p>To retrieve the <code>IssuerID</code> from a running connection, you need to first retrieve the client certificate and then extract this information from it. Ranch does not provide a function to retrieve the client certificate. Instead you can use the <code>ssl:peercert/1</code> function. Once you have the certificate, you can again use the <code>public_key:pkix_issuer_id/2</code> to extract the <code>IssuerID</code> value.</p>
<p>The following function returns the <code>IssuerID</code> or <code>false</code> if no client certificate was found. This snippet is intended to be used from your protocol code.</p>
<div class="listingblock"><div class="title">Retrieve the issuer ID from the certificate for the current connection</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/guide/transports/index.html b/docs/en/ranch/2.0/guide/transports/index.html
index c483b24f..8b1a14fd 100644
--- a/docs/en/ranch/2.0/guide/transports/index.html
+++ b/docs/en/ranch/2.0/guide/transports/index.html
@@ -74,7 +74,7 @@
<p>This section assumes that <code>Transport</code> is a valid transport handler (like <code>ranch_tcp</code> or <code>ranch_ssl</code>) and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>You can send data to a socket by calling the <code>Transport:send/2</code> function. The data can be given as <code>iodata()</code>, which is defined as <code>binary() | iolist()</code>. All the following calls will work:</p>
<div class="listingblock"><div class="title">Sending data to the socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Receiving data using passive mode requires a single function call. The first argument is the socket, and the third argument is a timeout duration before the call returns with <code>{error, timeout}</code>.</p>
<p>The second argument is the amount of data in bytes that we want to receive. The function will wait for data until it has received exactly this amount. If you are not expecting a precise size, you can specify 0 which will make this call return as soon as data was read, regardless of its size.</p>
<div class="listingblock"><div class="title">Receiving data from the socket in passive mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -106,7 +106,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<p>The value of <code>OK</code>, <code>Closed</code> and <code>Error</code> can be different depending on the transport being used. To be able to properly match on them you must first call the <code>Transport:messages/0</code> function.</p>
<div class="listingblock"><div class="title">Retrieving the transport&apos;s active message identifiers</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -114,7 +114,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To start receiving messages you will need to call the <code>Transport:setopts/2</code> function, and do so every time you want to receive data.</p>
<div class="listingblock"><div class="title">Receiving messages from the socket in active mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -134,7 +134,7 @@ http://www.gnu.org/software/src-highlite -->
<p>As in the previous section it is assumed <code>Transport</code> is a valid transport handler and <code>Socket</code> is a connected socket obtained through the listener.</p>
<p>To send a whole file, with name <code>Filename</code>, over a socket:</p>
<div class="listingblock"><div class="title">Sending a file by filename</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -142,7 +142,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Or part of a file, with <code>Offset</code> greater than or equal to 0, <code>Bytes</code> number of bytes and chunks of size <code>ChunkSize</code>:</p>
<div class="listingblock"><div class="title">Sending part of a file by filename in chunks</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -151,7 +151,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>To improve efficiency when sending multiple parts of the same file it is also possible to use a file descriptor opened in raw mode:</p>
<div class="listingblock"><div class="title">Sending a file opened in raw mode</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -161,7 +161,7 @@ http://www.gnu.org/software/src-highlite -->
<h2 id="_upgrading_a_tcp_socket_to_ssl">Upgrading a TCP socket to SSL</h2>
<p>A connected TCP socket can be upgraded to a SSL socket via the function <code>ranch_ssl:handshake/3</code>. The socket <strong>must</strong> be in <code>{active, false}</code> mode before telling the client that the server is ready to upgrade in order to avoid race conditions.</p>
<div class="listingblock"><div class="title">Performing a TLS handshake on a TCP socket</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/index.html b/docs/en/ranch/2.0/manual/index.html
index 02b16f1a..d648116a 100644
--- a/docs/en/ranch/2.0/manual/index.html
+++ b/docs/en/ranch/2.0/manual/index.html
@@ -91,7 +91,7 @@
</li>
</ul>
<p>All these applications must be started before the <code>ranch</code> application. To start Ranch and all dependencies at once:</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.child_spec/index.html b/docs/en/ranch/2.0/manual/ranch.child_spec/index.html
index b87bcf89..5e347085 100644
--- a/docs/en/ranch/2.0/manual/ranch.child_spec/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.child_spec/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:child_spec - Build child specifications for a new listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -112,7 +112,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Embed a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.get_addr/index.html b/docs/en/ranch/2.0/manual/ranch.get_addr/index.html
index 00941deb..56e1f14e 100644
--- a/docs/en/ranch/2.0/manual/ranch.get_addr/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.get_addr/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_addr - Get the listening address</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,14 +87,14 @@ http://www.gnu.org/software/src-highlite -->
<p>The socket file is the path of a file on your system the socket is bound to.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the listening port and IP</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt>{<font color="#009900">IP</font>, <font color="#009900">Port</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:get_addr</font></b>(<font color="#FF6600">example</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get the listening UNIX Domain socket file</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.get_max_connections/index.html b/docs/en/ranch/2.0/manual/ranch.get_max_connections/index.html
index 1fa12d4b..ec0cfeae 100644
--- a/docs/en/ranch/2.0/manual/ranch.get_max_connections/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.get_max_connections/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_max_connections - Get the max number of connections per connection supervisor</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -86,7 +86,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the max number of connections per connection supervisor</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.get_port/index.html b/docs/en/ranch/2.0/manual/ranch.get_port/index.html
index dcd851b9..b1552029 100644
--- a/docs/en/ranch/2.0/manual/ranch.get_port/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.get_port/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_port - Get the listening port</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -84,7 +84,7 @@ http://www.gnu.org/software/src-highlite -->
<p>When the listener is suspended or using a UNIX Domain socket instead of a network interface, <code>undefined</code> will be returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the listening port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.get_protocol_options/index.html b/docs/en/ranch/2.0/manual/ranch.get_protocol_options/index.html
index fd6dd4df..5b440f55 100644
--- a/docs/en/ranch/2.0/manual/ranch.get_protocol_options/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.get_protocol_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_protocol_options - Get the current protocol options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -82,7 +82,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The current protocol options are returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the current protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.get_status/index.html b/docs/en/ranch/2.0/manual/ranch.get_status/index.html
index ff148989..7ddb43f3 100644
--- a/docs/en/ranch/2.0/manual/ranch.get_status/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.get_status/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_status - Get a listener&apos;s running state</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -85,7 +85,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get a listener&apos;s running state</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.get_transport_options/index.html b/docs/en/ranch/2.0/manual/ranch.get_transport_options/index.html
index 4d1502a7..6f2810e4 100644
--- a/docs/en/ranch/2.0/manual/ranch.get_transport_options/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.get_transport_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:get_transport_options - Get the current transport options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -82,7 +82,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The current transport options are returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the current transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.handshake/index.html b/docs/en/ranch/2.0/manual/ranch.handshake/index.html
index 12a93e43..c32fe543 100644
--- a/docs/en/ranch/2.0/manual/ranch.handshake/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.handshake/index.html
@@ -65,16 +65,17 @@
<h2 id="_name">Name</h2>
<p>ranch:handshake - Perform the transport handshake</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><tt><b><font color="#000000">handshake</font></b>(<font color="#009900">Ref</font>) <font color="#990000">-&gt;</font> <b><font color="#000000">handshake</font></b>(<font color="#009900">Ref</font>, [])
-<b><font color="#000000">handshake</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>}
+<pre><tt><b><font color="#000000">handshake</font></b>(<font color="#009900">Ref</font>) <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>} | {<font color="#FF6600">continue</font>, <font color="#009900">Info</font>}
+<b><font color="#000000">handshake</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>} | {<font color="#FF6600">continue</font>, <font color="#009900">Info</font>}
<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch:ref</font></b>()
<font color="#009900">Opts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()
-<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()</tt></pre>
+<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()
+<font color="#009900">Info</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()</tt></pre>
</div></div>
<p>Perform the transport handshake.</p>
<p>This function must be called by the protocol process in order to retrieve the socket for the connection. Ranch performs the handshake necessary to give control of the socket to this process and also does the transport handshake, for example setting up the TLS connection.</p>
@@ -88,19 +89,22 @@ http://www.gnu.org/software/src-highlite -->
</dd>
</dl>
<h2 id="_return_value">Return value</h2>
-<p>An <code>ok</code> tuple is returned containing the socket for the connection.</p>
+<p>An <code>ok</code> tuple is returned containing the socket for the connection by default.</p>
+<p>Depending on configuration, a <code>continue</code> tuple can otherwise be returned when the handshake operation is paused. It contains data provided by the transport that can be used to inform further decisions before resuming the handshake, for example to provide new transport options. The handshake can be resumed using <a href="../ranch.handshake_continue">ranch:handshake_continue(3)</a> or canceled using <a href="../ranch.handshake_cancel">ranch:handshake_cancel(3)</a>.</p>
<p>This function will trigger an exception when an error occurs.</p>
<h2 id="_changelog">Changelog</h2>
-<ul><li><strong>1.6</strong>: Function introduced. Replaces <code>ranch:accept_ack/1</code>.
+<ul><li><strong>2.0</strong>: The <code>continue</code> tuple can now be returned.
+</li>
+<li><strong>1.6</strong>: Function introduced. Replaces <code>ranch:accept_ack/1</code>.
</li>
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Initialize the connection process</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><tt><b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#990000">_</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
+<pre><tt><b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
<font color="#009900">Pid</font> <font color="#990000">=</font> <b><font color="#000000">proc_lib:spawn_link</font></b>(<b><font color="#000080">?MODULE</font></b>, <font color="#FF6600">init</font>,
[<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>]),
{<font color="#FF6600">ok</font>, <font color="#009900">Pid</font>}<font color="#990000">.</font>
@@ -111,7 +115,7 @@ http://www.gnu.org/software/src-highlite -->
<font color="#0000FF">transport</font><font color="#990000">=</font><font color="#009900">Transport</font>, <font color="#0000FF">opts</font><font color="#990000">=</font><font color="#009900">Opts</font>})<font color="#990000">.</font></tt></pre>
</div></div>
<h2 id="_see_also">See also</h2>
-<p><a href="../ranch.start_listener">ranch:start_listener(3)</a>, <a href="../ranch.recv_proxy_header">ranch:recv_proxy_header(3)</a>, <a href="../ranch.remove_connection">ranch:remove_connection(3)</a>, <a href="../ranch">ranch(3)</a></p>
+<p><a href="../ranch.start_listener">ranch:start_listener(3)</a>, <a href="../ranch.handshake_continue">ranch:handshake_continue(3)</a>, <a href="../ranch.handshake_cancel">ranch:handshake_cancel(3)</a>, <a href="../ranch.recv_proxy_header">ranch:recv_proxy_header(3)</a>, <a href="../ranch.remove_connection">ranch:remove_connection(3)</a>, <a href="../ranch">ranch(3)</a></p>
diff --git a/docs/en/ranch/2.0/manual/ranch.handshake_cancel/index.html b/docs/en/ranch/2.0/manual/ranch.handshake_cancel/index.html
new file mode 100644
index 00000000..bebe43b1
--- /dev/null
+++ b/docs/en/ranch/2.0/manual/ranch.handshake_cancel/index.html
@@ -0,0 +1,198 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="">
+ <meta name="author" content="Loïc Hoguin based on a design from (Soft10) Pol Cámara">
+
+ <title>Nine Nines: ranch:handshake_cancel(3)</title>
+
+ <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic' rel='stylesheet' type='text/css'>
+ <link href="/css/99s.css?r=6" rel="stylesheet">
+
+ <link rel="shortcut icon" href="/img/ico/favicon.ico">
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/ico/apple-touch-icon-114.png">
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/ico/apple-touch-icon-72.png">
+ <link rel="apple-touch-icon-precomposed" href="/img/ico/apple-touch-icon-57.png">
+
+
+</head>
+
+
+<body class="">
+ <header id="page-head">
+ <div id="topbar" class="container">
+ <div class="row">
+ <div class="span2">
+ <h1 id="logo"><a href="/" title="99s">99s</a></h1>
+ </div>
+ <div class="span10">
+
+ <div id="side-header">
+ <nav>
+ <ul>
+ <li><a title="Hear my thoughts" href="/articles">Articles</a></li>
+ <li><a title="Watch my talks" href="/talks">Talks</a></li>
+ <li class="active"><a title="Read the docs" href="/docs">Documentation</a></li>
+ <li><a title="Request my services" href="/services">Consulting & Training</a></li>
+ </ul>
+ </nav>
+ <ul id="social">
+ <li>
+ <a href="https://github.com/ninenines" title="Check my Github repositories"><img src="/img/ico_github.png" data-hover="/img/ico_github_alt.png" alt="Github"></a>
+ </li>
+ <li>
+ <a title="Contact me" href="mailto:[email protected]"><img src="/img/ico_mail.png" data-hover="/img/ico_mail_alt.png"></a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+</header>
+
+<div id="contents" class="two_col">
+<div class="container">
+<div class="row">
+<div id="docs" class="span9 maincol">
+
+<h1 class="lined-header"><span>ranch:handshake_cancel(3)</span></h1>
+
+<h2 id="_name">Name</h2>
+<p>ranch:handshake_cancel - Cancel the paused transport handshake</p>
+<h2 id="_description">Description</h2>
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">handshake_cancel</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch:ref</font></b>()) <font color="#990000">-&gt;</font> <font color="#FF6600">ok</font></tt></pre>
+</div></div>
+<p>Cancel the paused transport handshake.</p>
+<p>This function may be called by the protocol process to cancel a paused handshake.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+<p>Allowed options depend on the transport module.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>The return value depends on the transport module.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>2.0</strong>: Function introduced.
+</li>
+</ul>
+<h2 id="_examples">Examples</h2>
+<div class="listingblock"><div class="title">Cancel a paused transport handshake</div>
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
+ <font color="#009900">Pid</font> <font color="#990000">=</font> <b><font color="#000000">proc_lib:spawn_link</font></b>(<b><font color="#000080">?MODULE</font></b>, <font color="#FF6600">init</font>,
+ [<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>]),
+ {<font color="#FF6600">ok</font>, <font color="#009900">Pid</font>}<font color="#990000">.</font>
+
+<b><font color="#000000">init</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
+ {<font color="#FF6600">continue</font>, <font color="#009900">_Info</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:handshake</font></b>(<font color="#009900">Ref</font>),
+ <b><font color="#000000">ranch:handshake_cancel</font></b>(<font color="#009900">Ref</font>),
+ <b><font color="#000080">exit</font></b>(<font color="#FF6600">handshake_cancelled</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.handshake">ranch:handshake(3)</a>, <a href="../ranch.handshake_continue">ranch:handshake_continue(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 2.0
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/2.0/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/2.0/manual">Function Reference</a></li>
+
+
+</ul>
+
+<h4 id="docs-nav">Navigation</h4>
+
+<h4>Version select</h4>
+<ul>
+
+
+
+ <li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+
+ <li><a href="/docs/en/ranch/1.7/manual">1.7</a></li>
+
+ <li><a href="/docs/en/ranch/1.6/manual">1.6</a></li>
+
+ <li><a href="/docs/en/ranch/1.5/manual">1.5</a></li>
+
+ <li><a href="/docs/en/ranch/1.4/manual">1.4</a></li>
+
+</ul>
+
+<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
+<p>Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and Erlang.mk is fantastic:</p>
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
+<input type="hidden" name="cmd" value="_donations">
+<input type="hidden" name="business" value="[email protected]">
+<input type="hidden" name="lc" value="FR">
+<input type="hidden" name="item_name" value="Loic Hoguin">
+<input type="hidden" name="item_number" value="99s">
+<input type="hidden" name="currency_code" value="EUR">
+<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHosted">
+<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
+<img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
+</form><p>Recurring payment options are also available via <a href="https://salt.bountysource.com/teams/ninenines">BountySource</a>. These funds are used to cover the recurring expenses like dedicated servers or domain names.</p>
+
+
+
+</div>
+</div>
+</div>
+</div>
+
+ <footer>
+ <div class="container">
+ <div class="row">
+ <div class="span6">
+ <p id="scroll-top"><a href="#">↑ Scroll to top</a></p>
+ <nav>
+ <ul>
+ <li><a href="mailto:[email protected]" title="Contact us">Contact us</a></li><li><a href="https://github.com/ninenines/ninenines.github.io" title="Github repository">Contribute to this site</a></li>
+ </ul>
+ </nav>
+ </div>
+ <div class="span6 credits">
+ <p><img src="/img/footer_logo.png"></p>
+ <p>Copyright &copy; Loïc Hoguin 2012-2018</p>
+ </div>
+ </div>
+ </div>
+ </footer>
+
+
+ <script src="/js/custom.js"></script>
+ </body>
+</html>
+
+
diff --git a/docs/en/ranch/2.0/manual/ranch.handshake_continue/index.html b/docs/en/ranch/2.0/manual/ranch.handshake_continue/index.html
new file mode 100644
index 00000000..2ee11955
--- /dev/null
+++ b/docs/en/ranch/2.0/manual/ranch.handshake_continue/index.html
@@ -0,0 +1,208 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="">
+ <meta name="author" content="Loïc Hoguin based on a design from (Soft10) Pol Cámara">
+
+ <title>Nine Nines: ranch:handshake_continue(3)</title>
+
+ <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic' rel='stylesheet' type='text/css'>
+ <link href="/css/99s.css?r=6" rel="stylesheet">
+
+ <link rel="shortcut icon" href="/img/ico/favicon.ico">
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/ico/apple-touch-icon-114.png">
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/ico/apple-touch-icon-72.png">
+ <link rel="apple-touch-icon-precomposed" href="/img/ico/apple-touch-icon-57.png">
+
+
+</head>
+
+
+<body class="">
+ <header id="page-head">
+ <div id="topbar" class="container">
+ <div class="row">
+ <div class="span2">
+ <h1 id="logo"><a href="/" title="99s">99s</a></h1>
+ </div>
+ <div class="span10">
+
+ <div id="side-header">
+ <nav>
+ <ul>
+ <li><a title="Hear my thoughts" href="/articles">Articles</a></li>
+ <li><a title="Watch my talks" href="/talks">Talks</a></li>
+ <li class="active"><a title="Read the docs" href="/docs">Documentation</a></li>
+ <li><a title="Request my services" href="/services">Consulting & Training</a></li>
+ </ul>
+ </nav>
+ <ul id="social">
+ <li>
+ <a href="https://github.com/ninenines" title="Check my Github repositories"><img src="/img/ico_github.png" data-hover="/img/ico_github_alt.png" alt="Github"></a>
+ </li>
+ <li>
+ <a title="Contact me" href="mailto:[email protected]"><img src="/img/ico_mail.png" data-hover="/img/ico_mail_alt.png"></a>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+
+
+</header>
+
+<div id="contents" class="two_col">
+<div class="container">
+<div class="row">
+<div id="docs" class="span9 maincol">
+
+<h1 class="lined-header"><span>ranch:handshake_continue(3)</span></h1>
+
+<h2 id="_name">Name</h2>
+<p>ranch:handshake_continue - Resume the paused transport handshake</p>
+<h2 id="_description">Description</h2>
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">handshake_continue</font></b>(<font color="#009900">Ref</font>) <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>}
+<b><font color="#000000">handshake_continue</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>}
+
+<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch:ref</font></b>()
+<font color="#009900">Opts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()
+<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()</tt></pre>
+</div></div>
+<p>Resume the paused transport handshake.</p>
+<p>This function must be called by the protocol process in order to resume a paused handshake.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+<dt>Opts</dt>
+<dd><p>Transport handshake options.</p>
+<p>Allowed options depend on the transport module.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>An <code>ok</code> tuple is returned containing the socket for the connection.</p>
+<p>This function will trigger an exception when an error occurs.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>2.0</strong>: Function introduced.
+</li>
+</ul>
+<h2 id="_examples">Examples</h2>
+<div class="listingblock"><div class="title">Continue a paused transport handshake</div>
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
+ <font color="#009900">Pid</font> <font color="#990000">=</font> <b><font color="#000000">proc_lib:spawn_link</font></b>(<b><font color="#000080">?MODULE</font></b>, <font color="#FF6600">init</font>,
+ [<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>]),
+ {<font color="#FF6600">ok</font>, <font color="#009900">Pid</font>}<font color="#990000">.</font>
+
+<b><font color="#000000">init</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
+ {<font color="#FF6600">continue</font>, <font color="#009900">_Info</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:handshake</font></b>(<font color="#009900">Ref</font>),
+ {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:handshake_continue</font></b>(<font color="#009900">Ref</font>),
+ <b><font color="#000000">loop</font></b>(<font color="#008080">#state</font>{<font color="#0000FF">ref</font><font color="#990000">=</font><font color="#009900">Ref</font>, <font color="#0000FF">socket</font><font color="#990000">=</font><font color="#009900">Socket</font>,
+ <font color="#0000FF">transport</font><font color="#990000">=</font><font color="#009900">Transport</font>, <font color="#0000FF">opts</font><font color="#990000">=</font><font color="#009900">Opts</font>})<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.handshake">ranch:handshake(3)</a>, <a href="../ranch.handshake_cancel">ranch:handshake_cancel(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 2.0
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/2.0/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/2.0/manual">Function Reference</a></li>
+
+
+</ul>
+
+<h4 id="docs-nav">Navigation</h4>
+
+<h4>Version select</h4>
+<ul>
+
+
+
+ <li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+
+ <li><a href="/docs/en/ranch/1.7/manual">1.7</a></li>
+
+ <li><a href="/docs/en/ranch/1.6/manual">1.6</a></li>
+
+ <li><a href="/docs/en/ranch/1.5/manual">1.5</a></li>
+
+ <li><a href="/docs/en/ranch/1.4/manual">1.4</a></li>
+
+</ul>
+
+<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
+<p>Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and Erlang.mk is fantastic:</p>
+<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
+<input type="hidden" name="cmd" value="_donations">
+<input type="hidden" name="business" value="[email protected]">
+<input type="hidden" name="lc" value="FR">
+<input type="hidden" name="item_name" value="Loic Hoguin">
+<input type="hidden" name="item_number" value="99s">
+<input type="hidden" name="currency_code" value="EUR">
+<input type="hidden" name="bn" value="PP-DonationsBF:btn_donate_LG.gif:NonHosted">
+<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
+<img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
+</form><p>Recurring payment options are also available via <a href="https://salt.bountysource.com/teams/ninenines">BountySource</a>. These funds are used to cover the recurring expenses like dedicated servers or domain names.</p>
+
+
+
+</div>
+</div>
+</div>
+</div>
+
+ <footer>
+ <div class="container">
+ <div class="row">
+ <div class="span6">
+ <p id="scroll-top"><a href="#">↑ Scroll to top</a></p>
+ <nav>
+ <ul>
+ <li><a href="mailto:[email protected]" title="Contact us">Contact us</a></li><li><a href="https://github.com/ninenines/ninenines.github.io" title="Github repository">Contribute to this site</a></li>
+ </ul>
+ </nav>
+ </div>
+ <div class="span6 credits">
+ <p><img src="/img/footer_logo.png"></p>
+ <p>Copyright &copy; Loïc Hoguin 2012-2018</p>
+ </div>
+ </div>
+ </div>
+ </footer>
+
+
+ <script src="/js/custom.js"></script>
+ </body>
+</html>
+
+
diff --git a/docs/en/ranch/2.0/manual/ranch.info/index.html b/docs/en/ranch/2.0/manual/ranch.info/index.html
index 3248864d..81558097 100644
--- a/docs/en/ranch/2.0/manual/ranch.info/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.info/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:info - Overview of Ranch listeners</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -124,14 +124,14 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get information about all listeners</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#009900">AllInfo</font> <font color="#990000">=</font> <b><font color="#000000">ranch:info</font></b>()<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get information about a specific listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.procs/index.html b/docs/en/ranch/2.0/manual/ranch.procs/index.html
index 32e0f2e8..3140a123 100644
--- a/docs/en/ranch/2.0/manual/ranch.procs/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.procs/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:procs - Retrieve pids from a listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -86,14 +86,14 @@ http://www.gnu.org/software/src-highlite -->
<p>A list of pids is returned.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Get the pids of the acceptor processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#009900">Pids</font> <font color="#990000">=</font> <b><font color="#000000">ranch:procs</font></b>(<font color="#FF6600">acceptors</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Get the pids of the connection processes</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.recv_proxy_header/index.html b/docs/en/ranch/2.0/manual/ranch.recv_proxy_header/index.html
index da04c826..e4cf5c00 100644
--- a/docs/en/ranch/2.0/manual/ranch.recv_proxy_header/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.recv_proxy_header/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:recv_proxy_header - Receive the PROXY protocol header</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -94,11 +94,11 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Receive the PROXY protocol header</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><tt><b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#990000">_</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
+<pre><tt><b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
<font color="#009900">Pid</font> <font color="#990000">=</font> <b><font color="#000000">proc_lib:spawn_link</font></b>(<b><font color="#000080">?MODULE</font></b>, <font color="#FF6600">init</font>,
[<font color="#009900">Ref</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>]),
{<font color="#FF6600">ok</font>, <font color="#009900">Pid</font>}<font color="#990000">.</font>
diff --git a/docs/en/ranch/2.0/manual/ranch.remove_connection/index.html b/docs/en/ranch/2.0/manual/ranch.remove_connection/index.html
index 0531fe78..7606e5a8 100644
--- a/docs/en/ranch/2.0/manual/ranch.remove_connection/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.remove_connection/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:remove_connection - Remove connection from the count</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -83,7 +83,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Remove the connection process from the count</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.resume_listener/index.html b/docs/en/ranch/2.0/manual/ranch.resume_listener/index.html
index 47ea0568..eb589ce0 100644
--- a/docs/en/ranch/2.0/manual/ranch.resume_listener/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.resume_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:resume_listener - Resume a suspended listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -89,7 +89,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Resume a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.set_max_connections/index.html b/docs/en/ranch/2.0/manual/ranch.set_max_connections/index.html
index 4c46e938..a167e427 100644
--- a/docs/en/ranch/2.0/manual/ranch.set_max_connections/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.set_max_connections/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:set_max_connections - Set the max number of connections per connection supervisor</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -91,7 +91,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Set the max number of connections per connection supervisor</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.set_protocol_options/index.html b/docs/en/ranch/2.0/manual/ranch.set_protocol_options/index.html
index 02a8c170..56242651 100644
--- a/docs/en/ranch/2.0/manual/ranch.set_protocol_options/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.set_protocol_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:set_protocol_options - Set the protocol options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Set the protocol options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.set_transport_options/index.html b/docs/en/ranch/2.0/manual/ranch.set_transport_options/index.html
index b031ef9f..ab3597da 100644
--- a/docs/en/ranch/2.0/manual/ranch.set_transport_options/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.set_transport_options/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:set_transport_options - Set the transport options</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -122,7 +122,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Set the transport options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.start_listener/index.html b/docs/en/ranch/2.0/manual/ranch.start_listener/index.html
index a3010bab..6ea43fb6 100644
--- a/docs/en/ranch/2.0/manual/ranch.start_listener/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.start_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:start_listener - Start a listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -113,7 +113,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Start a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -123,7 +123,7 @@ http://www.gnu.org/software/src-highlite -->
)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Start a listener with Ranch-specific options</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -136,7 +136,7 @@ http://www.gnu.org/software/src-highlite -->
)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Start a listener on a random port</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.stop_listener/index.html b/docs/en/ranch/2.0/manual/ranch.stop_listener/index.html
index e2287ceb..8e820644 100644
--- a/docs/en/ranch/2.0/manual/ranch.stop_listener/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.stop_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:stop_listener - Stop a listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -86,7 +86,7 @@ http://www.gnu.org/software/src-highlite -->
<p>An error tuple is returned when the listener is not found.</p>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Stop a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.suspend_listener/index.html b/docs/en/ranch/2.0/manual/ranch.suspend_listener/index.html
index da1ec7c3..e616ff15 100644
--- a/docs/en/ranch/2.0/manual/ranch.suspend_listener/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.suspend_listener/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:suspend_listener - Suspend a running listener</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -90,7 +90,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Suspend a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch.wait_for_connections/index.html b/docs/en/ranch/2.0/manual/ranch.wait_for_connections/index.html
index 00b7c507..e4b5ba65 100644
--- a/docs/en/ranch/2.0/manual/ranch.wait_for_connections/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.wait_for_connections/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch:wait_for_connections - Wait for a specific number of connections</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -99,14 +99,14 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Wait for at least 100 connections</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:wait_for_connections</font></b>(<font color="#FF6600">example</font>, <font color="#FF6600">'&gt;='</font>, <font color="#993399">100</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Gracefully shutdown a listener</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch/index.html b/docs/en/ranch/2.0/manual/ranch/index.html
index 8744dab9..d385f2eb 100644
--- a/docs/en/ranch/2.0/manual/ranch/index.html
+++ b/docs/en/ranch/2.0/manual/ranch/index.html
@@ -86,6 +86,10 @@
<p>Connections:</p>
<ul><li><a href="../ranch.handshake">ranch:handshake(3)</a> - Perform the transport handshake
</li>
+<li><a href="../ranch.handshake_continue">ranch:handshake_continue(3)</a> - Resume the paused transport handshake
+</li>
+<li><a href="../ranch.handshake_cancel">ranch:handshake_cancel(3)</a> - Cancel the paused transport handshake
+</li>
<li><a href="../ranch.recv_proxy_header">ranch:recv_proxy_header(3)</a> - Receive the PROXY protocol header
</li>
<li><a href="../ranch.remove_connection">ranch:remove_connection(3)</a> - Remove connection from the count
@@ -119,7 +123,7 @@
</ul>
<h2 id="_types">Types</h2>
<h3 id="_max_conns">max_conns()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -128,7 +132,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Maximum number of connections allowed per connection supervisor.</p>
<p>This is a soft limit. The actual number of connections might be slightly above the limit due to concurrency when accepting new connections. Some connections may also be removed from this count explicitly by the user code.</p>
<h3 id="_opts">opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -137,7 +141,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Transport or socket options.</p>
<p>It is possible to give the full transport options in a map (see <code>transport_opts(SocketOpts)</code>), or only the socket options (assuming they are not a map and no Ranch-specific option needs to be given).</p>
<h3 id="_ref">ref()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -145,7 +149,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Unique name used to refer to a listener.</p>
<h3 id="_transport_opts_socketopts">transport_opts(SocketOpts)</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch_app/index.html b/docs/en/ranch/2.0/manual/ranch_app/index.html
index eb9f0b0a..dd4c9a74 100644
--- a/docs/en/ranch/2.0/manual/ranch_app/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_app/index.html
@@ -91,7 +91,7 @@
</li>
</ul>
<p>All these applications must be started before the <code>ranch</code> application. To start Ranch and all dependencies at once:</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch_protocol/index.html b/docs/en/ranch/2.0/manual/ranch_protocol/index.html
index 2cf6cae0..97697460 100644
--- a/docs/en/ranch/2.0/manual/ranch_protocol/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_protocol/index.html
@@ -68,7 +68,7 @@
<p>The module <code>ranch_protocol</code> defines the interface used by Ranch protocols.</p>
<h2 id="_callbacks">Callbacks</h2>
<p>Ranch protocols implement the following interface:</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch_proxy_header.header/index.html b/docs/en/ranch/2.0/manual/ranch_proxy_header.header/index.html
index e83340fc..04885699 100644
--- a/docs/en/ranch/2.0/manual/ranch_proxy_header.header/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_proxy_header.header/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch_proxy_header:header - Build a PROXY protocol header</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -95,7 +95,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Build a PROXY protocol header</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -114,7 +114,7 @@ http://www.gnu.org/software/src-highlite -->
<font color="#009900">Data</font> <font color="#990000">=</font> <b><font color="#000000">ranch_proxy_header:parse</font></b>(<font color="#009900">ProxyInfo</font>)<font color="#990000">.</font></tt></pre>
</div></div>
<div class="listingblock"><div class="title">Build a PROXY protocol header with checksum and padding</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch_proxy_header.parse/index.html b/docs/en/ranch/2.0/manual/ranch_proxy_header.parse/index.html
index 8e33d6e4..e1dffb53 100644
--- a/docs/en/ranch/2.0/manual/ranch_proxy_header.parse/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_proxy_header.parse/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch_proxy_header:parse - Parse a PROXY protocol header</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -88,7 +88,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Parse the PROXY protocol header</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch_proxy_header/index.html b/docs/en/ranch/2.0/manual/ranch_proxy_header/index.html
index 3d03e776..551da850 100644
--- a/docs/en/ranch/2.0/manual/ranch_proxy_header/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_proxy_header/index.html
@@ -74,7 +74,7 @@
</ul>
<h2 id="_types">Types</h2>
<h3 id="_proxy_info">proxy_info()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch_ssl/index.html b/docs/en/ranch/2.0/manual/ranch_ssl/index.html
index cc3766a4..840273d4 100644
--- a/docs/en/ranch/2.0/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_ssl/index.html
@@ -70,7 +70,7 @@
<p>The module <code>ranch_ssl</code> implements the interface defined by <a href="../ranch_transport">ranch_transport(3)</a>.</p>
<h2 id="_types">Types</h2>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -79,7 +79,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Listen options.</p>
<p>The TCP options are defined in <a href="../ranch_tcp">ranch_tcp(3)</a>.</p>
<h3 id="_opts">opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>List of listen options.</p>
<h3 id="_ssl_opt">ssl_opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -106,6 +106,7 @@ http://www.gnu.org/software/src-highlite -->
| {<font color="#FF6600">dhfile</font>, <b><font color="#000000">file:filename</font></b>()}
| {<font color="#FF6600">eccs</font>, [<b><font color="#000080">atom</font></b>()]}
| {<font color="#FF6600">fail_if_no_peer_cert</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">handshake</font>, <font color="#FF6600">hello</font> | <font color="#FF6600">full</font>}
| {<font color="#FF6600">hibernate_after</font>, <b><font color="#000000">timeout</font></b>()}
| {<font color="#FF6600">honor_cipher_order</font>, <b><font color="#000000">boolean</font></b>()}
| {<font color="#FF6600">honor_ecc_order</font>, <b><font color="#000000">boolean</font></b>()}
@@ -180,6 +181,10 @@ http://www.gnu.org/software/src-highlite -->
<dt>fail_if_no_peer_cert (false)</dt>
<dd><p>Whether to refuse the connection if the client sends an empty certificate.</p>
</dd>
+<dt>handshake (full)</dt>
+<dd><p>If <code>hello</code> is specified for this option, the handshake is paused after receiving the client hello message. The handshake can then be resumed via <code>handshake_continue/3</code>, or cancelled via <code>handshake_cancel/1</code>.</p>
+<p>This option cannot be given to <code>ranch:handshake/1,2</code>.</p>
+</dd>
<dt>hibernate_after (undefined)</dt>
<dd><p>Time in ms after which SSL socket processes go into hibernation to reduce memory usage.</p>
</dd>
diff --git a/docs/en/ranch/2.0/manual/ranch_tcp/index.html b/docs/en/ranch/2.0/manual/ranch_tcp/index.html
index c5916c7e..c3cc88ec 100644
--- a/docs/en/ranch/2.0/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_tcp/index.html
@@ -71,7 +71,7 @@
<p>The module <code>ranch_tcp</code> implements the interface defined by <a href="../ranch_transport">ranch_transport(3)</a>.</p>
<h2 id="_types">Types</h2>
<h3 id="_opt">opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -182,7 +182,7 @@ http://www.gnu.org/software/src-highlite -->
</dl>
<p>In addition, the <code>raw</code> option can be used to set system-specific options by specifying the protocol level, the option number and the actual option value specified as a binary. This option is not portable. Use with caution.</p>
<h3 id="_opts">opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch_transport.sendfile/index.html b/docs/en/ranch/2.0/manual/ranch_transport.sendfile/index.html
index cb58f8e0..55239d53 100644
--- a/docs/en/ranch/2.0/manual/ranch_transport.sendfile/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_transport.sendfile/index.html
@@ -65,7 +65,7 @@
<h2 id="_name">Name</h2>
<p>ranch_transport:sendfile - Send a file on the socket</p>
<h2 id="_description">Description</h2>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_examples">Examples</h2>
<div class="listingblock"><div class="title">Implement Transport:sendfile using the fallback</div>
-<div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
diff --git a/docs/en/ranch/2.0/manual/ranch_transport/index.html b/docs/en/ranch/2.0/manual/ranch_transport/index.html
index 80f9f40c..16d9d4d8 100644
--- a/docs/en/ranch/2.0/manual/ranch_transport/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_transport/index.html
@@ -69,7 +69,7 @@
<h2 id="_callbacks">Callbacks</h2>
<p>Ranch transports implement the following interface:</p>
<h3 id="_accept">accept</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -79,7 +79,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Use the listening socket returned by <code>listen/1</code> to accept a new connection. The timeout is specified in milliseconds.</p>
<h3 id="_close">close</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -87,7 +87,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Close the socket.</p>
<h3 id="_controlling_process">controlling_process</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -96,7 +96,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Assign a new controlling process to the socket. The controlling process is the process that is linked to and receives messages from the socket.</p>
<h3 id="_getopts">getopts</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -105,7 +105,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Get one or more options for the socket.</p>
<h3 id="_getstat">getstat</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -113,7 +113,7 @@ http://www.gnu.org/software/src-highlite -->
<font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">SockStatValues</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()} | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}</tt></pre>
</div></div>
<p>Get all statistics for the socket.</p>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -122,20 +122,55 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Get one or more statistic options for the socket.</p>
<h3 id="_handshake">handshake</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">handshake</font></b>(<font color="#009900">Socket0</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(),
- <font color="#009900">SockOpts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>(),
<font color="#009900">Timeout</font> <font color="#990000">::</font> <b><font color="#000000">timeout</font></b>())
- <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>}</tt></pre>
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>()}
+ | {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(), <font color="#009900">Info</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()}
+ | {<font color="#FF6600">error</font>, <b><font color="#000000">any</font></b>()}
+
+<b><font color="#000000">handshake</font></b>(<font color="#009900">Socket0</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(),
+ <font color="#009900">SockOpts</font> <font color="#990000">::</font> <b><font color="#000000">opts</font></b>(),
+ <font color="#009900">Timeout</font> <font color="#990000">::</font> <b><font color="#000000">timeout</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>()}
+ | {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(), <font color="#009900">Info</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()}
+ | {<font color="#FF6600">error</font>, <b><font color="#000000">any</font></b>()}</tt></pre>
</div></div>
<p>Perform the transport-level handshake.</p>
<p>This function will be called by connection processes before performing any socket operation. It allows transports that require extra initialization to perform their task and return a socket that is ready to use.</p>
+<p>If the handshake is completed by this call, the function will return <code>{ok, Socket}</code>. However, some transports (notably, <code>ranch_ssl</code> if <code>{handshake, hello}</code> is specified in the socket options) may pause the handshake at a certain point and return <code>{ok, Socket, Info}</code> instead, in order to allow for additional decisions to be made before resuming the handshake with <code>handshake_continue/3</code> or cancelling it with <code>handshake_cancel/1</code>.</p>
<p>This function may also be used to upgrade a connection from a transport to another depending on the capabilities of the transports. For example a <code>ranch_tcp</code> socket may be upgraded to a <code>ranch_ssl</code> one using this function.</p>
+<h3 id="_handshake_continue">handshake_continue</h3>
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">handshake_continue</font></b>(<font color="#009900">Socket0</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(),
+ <font color="#009900">Timeout</font> <font color="#990000">::</font> <b><font color="#000000">timeout</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>()}
+ | {<font color="#FF6600">error</font>, <b><font color="#000000">any</font></b>()}
+
+<b><font color="#000000">handshake_continue</font></b>(<font color="#009900">Socket0</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(),
+ <font color="#009900">SockOpts</font> <font color="#990000">::</font> <b><font color="#000000">opts</font></b>(),
+ <font color="#009900">Timeout</font> <font color="#990000">::</font> <b><font color="#000000">timeout</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>()}
+ | {<font color="#FF6600">error</font>, <b><font color="#000000">any</font></b>()}</tt></pre>
+</div></div>
+<p>Resume the paused transport-level handshake and return a socket that is ready to use.</p>
+<p>This function will be called by connection processes to resume a paused handshake.</p>
+<h3 id="_handshake_cancel">handshake_cancel</h3>
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">handshake_cancel</font></b>(<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>()) <font color="#990000">-&gt;</font> <font color="#FF6600">ok</font></tt></pre>
+</div></div>
+<p>Cancel the paused transport-level handshake.</p>
<h3 id="_listen">listen</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -145,7 +180,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Create a socket that listens on the port given in the socket options.</p>
<p>The port may not be specified or may be set to 0, which means a random available port number will be chosen.</p>
<h3 id="_messages">messages</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -157,7 +192,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return the tuple keys for the messages sent by the socket.</p>
<h3 id="_name">name</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -165,7 +200,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return the name of the transport.</p>
<h3 id="_peername">peername</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -176,7 +211,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Return the address and port number for the other end of the connection.</p>
<p>For UNIX Domain sockets the return value will be <code>{local, PeerSocket}</code>, with <code>PeerSocket</code> typically an empty binary.</p>
<h3 id="_recv">recv</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -191,7 +226,7 @@ http://www.gnu.org/software/src-highlite -->
<p>A length of 0 will return the data available on the socket as soon as possible, regardless of length.</p>
<p>While it is possible to use the timeout value <code>infinity</code>, it is highly discouraged as it could cause your process to get stuck waiting for data that will never come. This may happen when a socket becomes half-open due to a crash of the remote endpoint. Wi-Fi going down is another common culprit.</p>
<h3 id="_secure">secure</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -199,7 +234,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Return whether the transport can be used for secure connections.</p>
<h3 id="_send">send</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -208,7 +243,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Send a packet on the socket.</p>
<h3 id="_sendfile">sendfile</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -229,7 +264,7 @@ http://www.gnu.org/software/src-highlite -->
<p>The file may be sent full or in parts, and may be specified by its filename or by an already open file descriptor.</p>
<p>Transports that manipulate TCP directly may use the <code>file:sendfile/2,4,5</code> function, which calls the <code>sendfile</code> syscall where applicable (on Linux, for example). Other transports can use the <code>sendfile/6</code> function exported from this module.</p>
<h3 id="_setopts">setopts</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -238,7 +273,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Set one or more options for the socket.</p>
<h3 id="_shutdown">shutdown</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -248,7 +283,7 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>Close the socket for reading and/or writing.</p>
<h3 id="_sockname">sockname</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -265,7 +300,7 @@ http://www.gnu.org/software/src-highlite -->
</ul>
<h2 id="_types">Types</h2>
<h3 id="_sendfile_opts">sendfile_opts()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
@@ -277,7 +312,7 @@ http://www.gnu.org/software/src-highlite -->
</dd>
</dl>
<h3 id="_socket">socket()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->