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/manual/ranch/index.html382
-rw-r--r--docs/en/ranch/1.4/manual/ranch_transport/index.html348
-rw-r--r--docs/en/ranch/1.5/guide/embedded/index.html4
-rw-r--r--docs/en/ranch/1.5/guide/index.html4
-rw-r--r--docs/en/ranch/1.5/guide/internals/index.html4
-rw-r--r--docs/en/ranch/1.5/guide/introduction/index.html4
-rw-r--r--docs/en/ranch/1.5/guide/listeners/index.html4
-rw-r--r--docs/en/ranch/1.5/guide/parsers/index.html4
-rw-r--r--docs/en/ranch/1.5/guide/protocols/index.html4
-rw-r--r--docs/en/ranch/1.5/guide/ssl_auth/index.html4
-rw-r--r--docs/en/ranch/1.5/guide/transports/index.html4
-rw-r--r--docs/en/ranch/1.5/manual/index.html4
-rw-r--r--docs/en/ranch/1.5/manual/ranch/index.html4
-rw-r--r--docs/en/ranch/1.5/manual/ranch_app/index.html4
-rw-r--r--docs/en/ranch/1.5/manual/ranch_protocol/index.html4
-rw-r--r--docs/en/ranch/1.5/manual/ranch_ssl/index.html4
-rw-r--r--docs/en/ranch/1.5/manual/ranch_tcp/index.html4
-rw-r--r--docs/en/ranch/1.5/manual/ranch_transport/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/embedded/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/internals/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/introduction/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/listeners/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/migrating_from_1.5/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/migrating_from_1.6/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/migrating_from_1.x/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/parsers/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/protocols/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/ssl_auth/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/transports/index.html4
-rw-r--r--docs/en/ranch/1.6/guide/upcoming_2.0_changes/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/index.html4
-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.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch.procs/index.html4
-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.html4
-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.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch_app/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch_protocol/index.html4
-rw-r--r--docs/en/ranch/1.6/manual/ranch_ssl/index.html4
-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.html4
-rw-r--r--docs/en/ranch/1.7/guide/embedded/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/internals/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/introduction/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/listeners/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/migrating_from_1.5/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/migrating_from_1.6/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/migrating_from_1.7/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/migrating_from_1.x/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/parsers/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/protocols/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/ssl_auth/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/transports/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/upcoming_2.0_changes/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/index.html4
-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.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch.procs/index.html4
-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.html4
-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.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch_app/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch_protocol/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch_proxy_header.header/index.html4
-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.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch_ssl/index.html4
-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.html4
-rw-r--r--docs/en/ranch/1.8/guide/embedded.asciidoc (renamed from docs/en/ranch/1.4/guide/embedded.asciidoc)0
-rw-r--r--docs/en/ranch/1.8/guide/embedded/index.html (renamed from docs/en/ranch/1.4/guide/embedded/index.html)14
-rw-r--r--docs/en/ranch/1.8/guide/index.html (renamed from docs/en/ranch/1.4/guide/index.html)31
-rw-r--r--docs/en/ranch/1.8/guide/internals.asciidoc (renamed from docs/en/ranch/1.4/guide/internals.asciidoc)0
-rw-r--r--docs/en/ranch/1.8/guide/internals/index.html (renamed from docs/en/ranch/1.4/guide/internals/index.html)16
-rw-r--r--docs/en/ranch/1.8/guide/introduction.asciidoc (renamed from docs/en/ranch/1.4/guide/introduction.asciidoc)5
-rw-r--r--docs/en/ranch/1.8/guide/introduction/index.html (renamed from docs/en/ranch/1.4/guide/introduction/index.html)15
-rw-r--r--docs/en/ranch/1.8/guide/listeners.asciidoc (renamed from docs/en/ranch/1.4/guide/listeners.asciidoc)60
-rw-r--r--docs/en/ranch/1.8/guide/listeners/index.html (renamed from docs/en/ranch/1.4/guide/listeners/index.html)52
-rw-r--r--docs/en/ranch/1.8/guide/migrating_from_1.5.asciidoc76
-rw-r--r--docs/en/ranch/1.8/guide/migrating_from_1.5/index.html221
-rw-r--r--docs/en/ranch/1.8/guide/migrating_from_1.6.asciidoc46
-rw-r--r--docs/en/ranch/1.8/guide/migrating_from_1.6/index.html201
-rw-r--r--docs/en/ranch/1.8/guide/migrating_from_1.7.asciidoc15
-rw-r--r--docs/en/ranch/1.8/guide/migrating_from_1.7/index.html (renamed from docs/en/ranch/1.4/manual/index.html)59
-rw-r--r--docs/en/ranch/1.8/guide/migrating_from_1.x.asciidoc70
-rw-r--r--docs/en/ranch/1.8/guide/migrating_from_1.x/index.html274
-rw-r--r--docs/en/ranch/1.8/guide/parsers.asciidoc (renamed from docs/en/ranch/1.4/guide/parsers.asciidoc)2
-rw-r--r--docs/en/ranch/1.8/guide/parsers/index.html (renamed from docs/en/ranch/1.4/guide/parsers/index.html)16
-rw-r--r--docs/en/ranch/1.8/guide/protocols.asciidoc (renamed from docs/en/ranch/1.4/guide/protocols.asciidoc)46
-rw-r--r--docs/en/ranch/1.8/guide/protocols/index.html (renamed from docs/en/ranch/1.4/guide/protocols/index.html)56
-rw-r--r--docs/en/ranch/1.8/guide/ssl_auth.asciidoc (renamed from docs/en/ranch/1.4/guide/ssl_auth.asciidoc)0
-rw-r--r--docs/en/ranch/1.8/guide/ssl_auth/index.html (renamed from docs/en/ranch/1.4/guide/ssl_auth/index.html)14
-rw-r--r--docs/en/ranch/1.8/guide/transports.asciidoc (renamed from docs/en/ranch/1.4/guide/transports.asciidoc)11
-rw-r--r--docs/en/ranch/1.8/guide/transports/index.html (renamed from docs/en/ranch/1.4/guide/transports/index.html)23
-rw-r--r--docs/en/ranch/1.8/guide/upcoming_2.0_changes.asciidoc34
-rw-r--r--docs/en/ranch/1.8/guide/upcoming_2.0_changes/index.html195
-rw-r--r--docs/en/ranch/1.8/manual/index.html201
-rw-r--r--docs/en/ranch/1.8/manual/ranch.child_spec/index.html219
-rw-r--r--docs/en/ranch/1.8/manual/ranch.get_addr/index.html187
-rw-r--r--docs/en/ranch/1.8/manual/ranch.get_max_connections/index.html185
-rw-r--r--docs/en/ranch/1.8/manual/ranch.get_port/index.html186
-rw-r--r--docs/en/ranch/1.8/manual/ranch.get_protocol_options/index.html185
-rw-r--r--docs/en/ranch/1.8/manual/ranch.get_status/index.html188
-rw-r--r--docs/en/ranch/1.8/manual/ranch.get_transport_options/index.html185
-rw-r--r--docs/en/ranch/1.8/manual/ranch.handshake/index.html208
-rw-r--r--docs/en/ranch/1.8/manual/ranch.info/index.html233
-rw-r--r--docs/en/ranch/1.8/manual/ranch.procs/index.html196
-rw-r--r--docs/en/ranch/1.8/manual/ranch.recv_proxy_header/index.html206
-rw-r--r--docs/en/ranch/1.8/manual/ranch.remove_connection/index.html186
-rw-r--r--docs/en/ranch/1.8/manual/ranch.resume_listener/index.html192
-rw-r--r--docs/en/ranch/1.8/manual/ranch.set_max_connections/index.html190
-rw-r--r--docs/en/ranch/1.8/manual/ranch.set_protocol_options/index.html190
-rw-r--r--docs/en/ranch/1.8/manual/ranch.set_transport_options/index.html195
-rw-r--r--docs/en/ranch/1.8/manual/ranch.start_listener/index.html244
-rw-r--r--docs/en/ranch/1.8/manual/ranch.stop_listener/index.html189
-rw-r--r--docs/en/ranch/1.8/manual/ranch.suspend_listener/index.html193
-rw-r--r--docs/en/ranch/1.8/manual/ranch.wait_for_connections/index.html213
-rw-r--r--docs/en/ranch/1.8/manual/ranch/index.html298
-rw-r--r--docs/en/ranch/1.8/manual/ranch_app/index.html (renamed from docs/en/ranch/1.4/manual/ranch_app/index.html)49
-rw-r--r--docs/en/ranch/1.8/manual/ranch_protocol/index.html (renamed from docs/en/ranch/1.4/manual/ranch_protocol/index.html)50
-rw-r--r--docs/en/ranch/1.8/manual/ranch_proxy_header.header/index.html220
-rw-r--r--docs/en/ranch/1.8/manual/ranch_proxy_header.parse/index.html191
-rw-r--r--docs/en/ranch/1.8/manual/ranch_proxy_header/index.html274
-rw-r--r--docs/en/ranch/1.8/manual/ranch_ssl/index.html (renamed from docs/en/ranch/1.4/manual/ranch_ssl/index.html)123
-rw-r--r--docs/en/ranch/1.8/manual/ranch_tcp/index.html (renamed from docs/en/ranch/1.4/manual/ranch_tcp/index.html)93
-rw-r--r--docs/en/ranch/1.8/manual/ranch_transport.sendfile/index.html220
-rw-r--r--docs/en/ranch/1.8/manual/ranch_transport/index.html385
-rw-r--r--docs/en/ranch/2.0/guide/connection_draining/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/embedded/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/internals/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/introduction/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/listeners/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/migrating_from_1.5/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/migrating_from_1.6/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/migrating_from_1.7/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/migrating_from_1.x/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/parsers/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/protocols/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/ssl_auth/index.html4
-rw-r--r--docs/en/ranch/2.0/guide/transports/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/index.html4
-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.html4
-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.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.handshake_cancel/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.handshake_continue/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.info/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.procs/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch.recv_proxy_header/index.html4
-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.html4
-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.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch_app/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch_protocol/index.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch_proxy_header.header/index.html4
-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.html4
-rw-r--r--docs/en/ranch/2.0/manual/ranch_ssl/index.html4
-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.html4
208 files changed, 7648 insertions, 1300 deletions
diff --git a/docs/en/ranch/1.4/manual/ranch/index.html b/docs/en/ranch/1.4/manual/ranch/index.html
deleted file mode 100644
index 7a2cb741..00000000
--- a/docs/en/ranch/1.4/manual/ranch/index.html
+++ /dev/null
@@ -1,382 +0,0 @@
-<!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(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=7" 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(3)</span></h1>
-
-<h2 id="_name">Name</h2>
-<p>ranch - socket acceptor pool</p>
-<h2 id="_description">Description</h2>
-<p>The <code>ranch</code> module provides functions for starting and manipulating Ranch listeners.</p>
-<h2 id="_types">Types</h2>
-<h3 id="_max_conns_____non_neg_integer_____infinity">max_conns() = non_neg_integer() | infinity</h3>
-<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.9
-by Lorenzo Bettini
-http://www.lorenzobettini.it
-http://www.gnu.org/software/src-highlite -->
-<pre><tt><b><font color="#000000">opt</font></b>() <font color="#990000">=</font> {<font color="#FF6600">ack_timeout</font>, <b><font color="#000000">timeout</font></b>()}
- | {<font color="#FF6600">connection_type</font>, <font color="#FF6600">worker</font> | <font color="#FF6600">supervisor</font>}
- | {<font color="#FF6600">max_connections</font>, <b><font color="#000000">max_conns</font></b>()}
- | {<font color="#FF6600">num_acceptors</font>, <b><font color="#000000">pos_integer</font></b>()}
- | {<font color="#000080">shutdown</font>, <b><font color="#000000">timeout</font></b>() | <font color="#FF6600">brutal_kill</font>}
- | {<font color="#FF6600">socket</font>, <b><font color="#000000">any</font></b>()}</tt></pre>
-</div></div>
-<p>Ranch-specific transport options.</p>
-<p>These options are not passed on to the transports. They are used by Ranch while setting up the listeners.</p>
-<h3 id="_ref_____any">ref() = any()</h3>
-<p>Unique name used to refer to a listener.</p>
-<h2 id="_option_descriptions">Option descriptions</h2>
-<p>None of the options are required.</p>
-<dl><dt>ack_timeout (5000)</dt>
-<dd><p>Maximum allowed time for the <code>ranch:accept_ack/1</code> call to finish.</p>
-</dd>
-<dt>connection_type (worker)</dt>
-<dd><p>Type of process that will handle the connection.</p>
-</dd>
-<dt>max_connections (1024)</dt>
-<dd><p>Maximum number of active connections. Soft limit. Using <code>infinity</code> will disable the limit entirely.</p>
-</dd>
-<dt>num_acceptors (10)</dt>
-<dd><p>Number of processes that accept connections.</p>
-</dd>
-<dt>shutdown (5000)</dt>
-<dd><p>Maximum allowed time for children to stop on listener shutdown.</p>
-</dd>
-<dt>socket</dt>
-<dd><p>Listening socket opened externally to be used instead of calling <code>Transport:listen/1</code>.</p>
-</dd>
-</dl>
-<h2 id="_exports">Exports</h2>
-<h3 id="_accept_ack_ref_____ok">accept_ack(Ref) -&gt; ok</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-</dl>
-<p>Acknowledge that the connection is accepted.</p>
-<p>This function MUST be used by a connection process to inform Ranch that it initialized properly and let it perform any additional operations before the socket can be safely used.</p>
-<h3 id="_child_spec_ref__numacceptors__transport__transopts__protocol__protoopts_____supervisor_child_spec">child_spec(Ref, NumAcceptors, Transport, TransOpts, Protocol, ProtoOpts) -&gt; supervisor:child_spec()</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>NumAcceptors = non_neg_integer()</dt>
-<dd><p>Number of acceptor processes.</p>
-</dd>
-<dt>Transport = module()</dt>
-<dd><p>Transport module.</p>
-</dd>
-<dt>TransOpts = any()</dt>
-<dd><p>Transport options.</p>
-</dd>
-<dt>Protocol = module()</dt>
-<dd><p>Protocol module.</p>
-</dd>
-<dt>ProtoOpts = any()</dt>
-<dd><p>Protocol options.</p>
-</dd>
-</dl>
-<p>Return child specifications for a new listener.</p>
-<p>This function can be used to embed a listener directly in an application instead of letting Ranch handle it.</p>
-<h3 id="_get_addr_ref______ip__port">get_addr(Ref) -&gt; {IP, Port}</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>IP = inet:ip_address()</dt>
-<dd><p>IP of the interface used by this listener.</p>
-</dd>
-<dt>Port = inet:port_number()</dt>
-<dd><p>Port number used by this listener.</p>
-</dd>
-</dl>
-<p>Return the IP address and port for the given listener.</p>
-<h3 id="_get_max_connections_ref_____maxconns">get_max_connections(Ref) -&gt; MaxConns</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>MaxConns = max_conns()</dt>
-<dd><p>Current maximum number of connections.</p>
-</dd>
-</dl>
-<p>Return the max number of connections allowed for the given listener.</p>
-<h3 id="_get_port_ref_____port">get_port(Ref) -&gt; Port</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>Port = inet:port_number()</dt>
-<dd><p>Port number used by this listener.</p>
-</dd>
-</dl>
-<p>Return the port for the given listener.</p>
-<h3 id="_get_protocol_options_ref_____protoopts">get_protocol_options(Ref) -&gt; ProtoOpts</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>ProtoOpts = any()</dt>
-<dd><p>Current protocol options.</p>
-</dd>
-</dl>
-<p>Return the protocol options set for the given listener.</p>
-<h3 id="_info________ref____key__value">info() -&gt; [{Ref, [{Key, Value}]}]</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>Key = atom()</dt>
-<dd><p>Information key.</p>
-</dd>
-<dt>Value = any()</dt>
-<dd><p>Information value.</p>
-</dd>
-</dl>
-<p>Return detailed information about all Ranch listeners.</p>
-<p>The following keys are defined:</p>
-<dl><dt>pid</dt>
-<dd><p>Pid of the listener&apos;s top-level supervisor.</p>
-</dd>
-<dt>ip</dt>
-<dd><p>Interface Ranch listens on.</p>
-</dd>
-<dt>port</dt>
-<dd><p>Port number Ranch listens on.</p>
-</dd>
-<dt>num_acceptors</dt>
-<dd><p>Number of acceptor processes.</p>
-</dd>
-<dt>max_connections</dt>
-<dd><p>Maximum number of connections.</p>
-</dd>
-<dt>active_connections</dt>
-<dd><p>Number of active connections.</p>
-</dd>
-<dt>all_connections</dt>
-<dd><p>Number of connections, including those removed from the count.</p>
-</dd>
-<dt>transport</dt>
-<dd><p>Transport module.</p>
-</dd>
-<dt>transport_options</dt>
-<dd><p>Transport options.</p>
-</dd>
-<dt>protocol</dt>
-<dd><p>Protocol module.</p>
-</dd>
-<dt>protocol_options</dt>
-<dd><p>Protocol options.</p>
-</dd>
-</dl>
-<h3 id="_procs_ref__acceptors___connections______pid">procs(Ref, acceptors | connections) -&gt; [pid()]</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-</dl>
-<p>Return all acceptor or connection processes for one listener.</p>
-<h3 id="_remove_connection_ref_____ok">remove_connection(Ref) -&gt; ok</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-</dl>
-<p>Do not count this connection when limiting the number of connections.</p>
-<p>You can use this function for long-running connection processes which spend most of their time idling rather than consuming resources. This allows Ranch to accept a lot more connections without sacrificing the latency of the system.</p>
-<p>This function may only be called from a connection process.</p>
-<h3 id="_set_max_connections_ref__maxconns_____ok">set_max_connections(Ref, MaxConns) -&gt; ok</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>MaxConns = max_conns()</dt>
-<dd><p>New maximum number of connections.</p>
-</dd>
-</dl>
-<p>Set the max number of connections for the given listener.</p>
-<p>The change will be applied immediately. If the new value is smaller than the previous one, Ranch will not kill the extra connections, but will wait for them to terminate properly.</p>
-<h3 id="_set_protocol_options_ref__protoopts_____ok">set_protocol_options(Ref, ProtoOpts) -&gt; ok</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>ProtoOpts = any()</dt>
-<dd><p>New protocol options.</p>
-</dd>
-</dl>
-<p>Set the protocol options for the given listener.</p>
-<p>The change will be applied immediately for all new connections. Old connections will not receive the new options.</p>
-<h3 id="_start_listener_ref__numacceptors__transport__transopts__protocol__protoopts______ok__pid_______error__badarg">start_listener(Ref, NumAcceptors, Transport, TransOpts, Protocol, ProtoOpts) -&gt; {ok, pid()} | {error, badarg}</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>NumAcceptors = non_neg_integer()</dt>
-<dd><p>Number of acceptor processes.</p>
-</dd>
-<dt>Transport = module()</dt>
-<dd><p>Transport module.</p>
-</dd>
-<dt>TransOpts = any()</dt>
-<dd><p>Transport options.</p>
-</dd>
-<dt>Protocol = module()</dt>
-<dd><p>Protocol module.</p>
-</dd>
-<dt>ProtoOpts = any()</dt>
-<dd><p>Protocol options.</p>
-</dd>
-</dl>
-<p>Start listening for connections using the given transport and protocol. Returns the pid for this listener&apos;s supervisor.</p>
-<p>There are additional transport options that apply regardless of transport. They allow configuring how the connections are supervised, rate limited and more. Please consult the previous section for more details.</p>
-<h3 id="_stop_listener_ref_____ok____error__not_found">stop_listener(Ref) -&gt; ok | {error, not_found}</h3>
-<dl><dt>Ref = ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-</dl>
-<p>Stop the given listener.</p>
-<p>The listener is stopped gracefully, first by closing the listening port, then by stopping the connection processes. These processes are stopped according to the <code>shutdown</code> transport option, which may be set to brutally kill all connection processes or give them some time to stop properly.</p>
-<p>This function does not return until the listener is completely stopped.</p>
-
-
-
-
-
-
-</div>
-
-<div class="span3 sidecol">
-
-
-<h3>
- Ranch
- 1.4
- Function Reference
-
-</h3>
-
-<ul>
-
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
-
-
- <li><a href="/docs/en/ranch/1.4/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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.4/manual/ranch_transport/index.html b/docs/en/ranch/1.4/manual/ranch_transport/index.html
deleted file mode 100644
index b7318620..00000000
--- a/docs/en/ranch/1.4/manual/ranch_transport/index.html
+++ /dev/null
@@ -1,348 +0,0 @@
-<!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_transport(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=7" 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_transport(3)</span></h1>
-
-<h2 id="_name">Name</h2>
-<p>ranch_transport - behaviour for transport modules</p>
-<h2 id="_description">Description</h2>
-<p>The <code>ranch_transport</code> behaviour defines the interface used by Ranch transports.</p>
-<h2 id="_types">Types</h2>
-<h3 id="_sendfile_opts_______chunk_size__non_neg_integer">sendfile_opts() = [{chunk_size, non_neg_integer()}]</h3>
-<p>Options used by the sendfile function and callbacks.</p>
-<p>Allows configuring the chunk size, in bytes. Defaults to 8191 bytes.</p>
-<h2 id="_callbacks">Callbacks</h2>
-<h3 id="_accept_lsocket__timeout______ok__csocket_____error__closed___timeout___atom">accept(LSocket, Timeout) -&gt; {ok, CSocket} | {error, closed | timeout | atom()}</h3>
-<dl><dt>LSocket = CSocket = any()</dt>
-<dd><p>Listening socket.</p>
-</dd>
-<dt>Timeout = timeout()</dt>
-<dd><p>Accept timeout.</p>
-</dd>
-</dl>
-<p>Accept a connection on the given listening socket.</p>
-<p>The <code>accept_ack</code> callback will be used to initialize the socket after accepting the connection. This is most useful when the transport is not raw TCP, like with SSL for example.</p>
-<h3 id="_accept_ack_csocket__timeout_____ok">accept_ack(CSocket, Timeout) -&gt; ok</h3>
-<dl><dt>CSocket = any()</dt>
-<dd><p>Socket for this connection.</p>
-</dd>
-<dt>Timeout = timeout()</dt>
-<dd><p>Ack timeout.</p>
-</dd>
-</dl>
-<p>Perform post-accept initialization of the connection.</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 make the socket ready to use.</p>
-<h3 id="_close_socket_____ok">close(Socket) -&gt; ok</h3>
-<dl><dt>Socket = any()</dt>
-<dd><p>Socket opened with listen/1 or accept/2.</p>
-</dd>
-</dl>
-<p>Close the given socket.</p>
-<h3 id="_controlling_process_socket__pid_____ok____error__closed___not_owner___atom">controlling_process(Socket, Pid) -&gt; ok | {error, closed | not_owner | atom()}</h3>
-<dl><dt>Socket = any()</dt>
-<dd><p>Socket opened with listen/1 or accept/2.</p>
-</dd>
-<dt>Pid = pid()</dt>
-<dd><p>Pid of the new owner of the socket.</p>
-</dd>
-</dl>
-<p>Change the controlling process for the given socket.</p>
-<p>The controlling process is the process that is allowed to perform operations on the socket, and that will receive messages from the socket when active mode is used. When the controlling process dies, the socket is closed.</p>
-<h3 id="_listen_transopts______ok__lsocket_____error__atom">listen(TransOpts) -&gt; {ok, LSocket} | {error, atom()}</h3>
-<dl><dt>TransOpts = any()</dt>
-<dd><p>Transport options.</p>
-</dd>
-<dt>LSocket = any()</dt>
-<dd><p>Listening socket.</p>
-</dd>
-</dl>
-<p>Listen for connections on the given port.</p>
-<p>The port is given as part of the transport options under the key <code>port</code>. Any other option is transport dependent.</p>
-<p>The socket returned by this call can then be used to accept connections. It is not possible to send or receive data from the listening socket.</p>
-<h3 id="_messages_______ok__closed__error">messages() -&gt; {OK, Closed, Error}</h3>
-<dl><dt>OK = Closed = Error = atom()</dt>
-<dd><p>Tuple names.</p>
-</dd>
-</dl>
-<p>Return the atoms used to identify messages sent in active mode.</p>
-<h3 id="_name______name">name() -&gt; Name</h3>
-<dl><dt>Name = atom()</dt>
-<dd><p>Transport module name.</p>
-</dd>
-</dl>
-<p>Return the name of the transport.</p>
-<h3 id="_peername_csocket______ok___ip__port______error__atom">peername(CSocket) -&gt; {ok, {IP, Port}} | {error, atom()}</h3>
-<dl><dt>CSocket = any()</dt>
-<dd><p>Socket for this connection.</p>
-</dd>
-<dt>IP = inet:ip_address()</dt>
-<dd><p>IP of the remote endpoint.</p>
-</dd>
-<dt>Port = inet:port_number()</dt>
-<dd><p>Port of the remote endpoint.</p>
-</dd>
-</dl>
-<p>Return the IP and port of the remote endpoint.</p>
-<h3 id="_recv_csocket__length__timeout______ok__packet_____error__closed___timeout___atom">recv(CSocket, Length, Timeout) -&gt; {ok, Packet} | {error, closed | timeout | atom()}</h3>
-<dl><dt>CSocket = any()</dt>
-<dd><p>Socket for this connection.</p>
-</dd>
-<dt>Length = non_neg_integer()</dt>
-<dd><p>Requested length.</p>
-</dd>
-<dt>Timeout = timeout()</dt>
-<dd><p>Receive timeout.</p>
-</dd>
-<dt>Packet = iodata() | any()</dt>
-<dd><p>Data received.</p>
-</dd>
-</dl>
-<p>Receive data from the given socket when in passive mode.</p>
-<p>Trying to receive data from a socket that is in active mode will return an error.</p>
-<p>A length of 0 will return any data available on the socket.</p>
-<p>While it is possible to use the timeout value <code>infinity</code>, this is highly discouraged as this 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 of this issue.</p>
-<h3 id="_send_csocket__packet_____ok____error__atom">send(CSocket, Packet) -&gt; ok | {error, atom()}</h3>
-<dl><dt>CSocket = any()</dt>
-<dd><p>Socket for this connection.</p>
-</dd>
-<dt>Packet = iodata()</dt>
-<dd><p>Data to be sent.</p>
-</dd>
-</dl>
-<p>Send data to the given socket.</p>
-<h3 id="_sendfile_csocket__file_____sendfile_csocket__file__0__0">sendfile(CSocket, File) -&gt; sendfile(CSocket, File, 0, 0, [])</h3>
-<p>Alias of <code>ranch_transport:sendfile/5</code>.</p>
-<h3 id="_sendfile_csocket__file__offset__bytes_____sendfile_csocket__file__offset__bytes">sendfile(CSocket, File, Offset, Bytes) -&gt; sendfile(CSocket, File, Offset, Bytes, [])</h3>
-<p>Alias of <code>ranch_transport:sendfile/5</code>.</p>
-<h3 id="_sendfile_csocket__file__offset__bytes__sfopts______ok__sentbytes_____error__atom">sendfile(CSocket, File, Offset, Bytes, SfOpts) -&gt; {ok, SentBytes} | {error, atom()}</h3>
-<dl><dt>CSocket = any()</dt>
-<dd><p>Socket for this connection.</p>
-</dd>
-<dt>File = file:filename_all() | file:fd()</dt>
-<dd><p>Filename or file descriptor for the file to be sent.</p>
-</dd>
-<dt>Offset = non_neg_integer()</dt>
-<dd><p>Begin sending at this position in the file.</p>
-</dd>
-<dt>Bytes = non_neg_integer()</dt>
-<dd><p>Send this many bytes.</p>
-</dd>
-<dt>SentBytes = non_neg_integer()</dt>
-<dd><p>This many bytes were sent.</p>
-</dd>
-<dt>SfOpts = sendfile_opts()</dt>
-<dd><p>Sendfile options.</p>
-</dd>
-</dl>
-<p>Send data from a file to the given socket.</p>
-<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 sendfile 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_csocket__sockopts_____ok____error__atom">setopts(CSocket, SockOpts) -&gt; ok | {error, atom()}</h3>
-<dl><dt>CSocket = any()</dt>
-<dd><p>Socket for this connection.</p>
-</dd>
-<dt>SockOpts = any()</dt>
-<dd><p>Socket options.</p>
-</dd>
-</dl>
-<p>Change options for the given socket.</p>
-<p>This is mainly useful for switching to active or passive mode or to set protocol-specific options.</p>
-<h3 id="_shutdown_csocket__how_____ok____error__atom">shutdown(CSocket, How) -&gt; ok | {error, atom()}</h3>
-<dl><dt>CSocket = any()</dt>
-<dd><p>Socket for this connection.</p>
-</dd>
-<dt>How = read | write | read_write</dt>
-<dd><p>Which side(s) of the socket to close.</p>
-</dd>
-</dl>
-<p>Immediately close the socket in one or two directions.</p>
-<h3 id="_sockname_socket______ok___ip__port______error__atom">sockname(Socket) -&gt; {ok, {IP, Port}} | {error, atom()}</h3>
-<dl><dt>Socket = any()</dt>
-<dd><p>Socket opened with listen/1 or accept/2.</p>
-</dd>
-<dt>IP = inet:ip_address()</dt>
-<dd><p>IP of the local endpoint.</p>
-</dd>
-<dt>Port = inet:port_number()</dt>
-<dd><p>Port of the local endpoint.</p>
-</dd>
-</dl>
-<p>Return the IP and port of the local endpoint.</p>
-<h2 id="_exports">Exports</h2>
-<h3 id="_sendfile_transport__csocket__file__offset__bytes__sfopts______ok__sentbytes_____error__atom">sendfile(Transport, CSocket, File, Offset, Bytes, SfOpts) -&gt; {ok, SentBytes} | {error, atom()}</h3>
-<dl><dt>Transport = module()</dt>
-<dd><p>Transport module for this socket.</p>
-</dd>
-<dt>CSocket = any()</dt>
-<dd><p>Socket for this connection.</p>
-</dd>
-<dt>File = file:filename_all() | file:fd()</dt>
-<dd><p>Filename or file descriptor for the file to be sent.</p>
-</dd>
-<dt>Offset = non_neg_integer()</dt>
-<dd><p>Begin sending at this position in the file.</p>
-</dd>
-<dt>Bytes = non_neg_integer()</dt>
-<dd><p>Send this many bytes.</p>
-</dd>
-<dt>SentBytes = non_neg_integer()</dt>
-<dd><p>This many bytes were sent.</p>
-</dd>
-<dt>SfOpts = sendfile_opts()</dt>
-<dd><p>Sendfile options.</p>
-</dd>
-</dl>
-<p>Send data from a file to the given socket.</p>
-<p>This function emulates the function <code>file:sendfile/{2,4,5}</code> and may be used when transports are not manipulating TCP directly.</p>
-
-
-
-
-
-
-</div>
-
-<div class="span3 sidecol">
-
-
-<h3>
- Ranch
- 1.4
- Function Reference
-
-</h3>
-
-<ul>
-
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
-
-
- <li><a href="/docs/en/ranch/1.4/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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.5/guide/embedded/index.html b/docs/en/ranch/1.5/guide/embedded/index.html
index 87f2fd3c..92bce4ec 100644
--- a/docs/en/ranch/1.5/guide/embedded/index.html
+++ b/docs/en/ranch/1.5/guide/embedded/index.html
@@ -144,14 +144,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.5/guide/index.html b/docs/en/ranch/1.5/guide/index.html
index abe45e70..d9046ef3 100644
--- a/docs/en/ranch/1.5/guide/index.html
+++ b/docs/en/ranch/1.5/guide/index.html
@@ -116,14 +116,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.5/guide/internals/index.html b/docs/en/ranch/1.5/guide/internals/index.html
index 27e483f7..57e244db 100644
--- a/docs/en/ranch/1.5/guide/internals/index.html
+++ b/docs/en/ranch/1.5/guide/internals/index.html
@@ -144,14 +144,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.5/guide/introduction/index.html b/docs/en/ranch/1.5/guide/introduction/index.html
index 797135fa..d5a2af7e 100644
--- a/docs/en/ranch/1.5/guide/introduction/index.html
+++ b/docs/en/ranch/1.5/guide/introduction/index.html
@@ -128,14 +128,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.5/guide/listeners/index.html b/docs/en/ranch/1.5/guide/listeners/index.html
index 77f26316..6a8330a6 100644
--- a/docs/en/ranch/1.5/guide/listeners/index.html
+++ b/docs/en/ranch/1.5/guide/listeners/index.html
@@ -327,14 +327,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.5/guide/parsers/index.html b/docs/en/ranch/1.5/guide/parsers/index.html
index f120e03a..7dfa3675 100644
--- a/docs/en/ranch/1.5/guide/parsers/index.html
+++ b/docs/en/ranch/1.5/guide/parsers/index.html
@@ -183,14 +183,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.5/guide/protocols/index.html b/docs/en/ranch/1.5/guide/protocols/index.html
index 1ccfd5de..dcba343e 100644
--- a/docs/en/ranch/1.5/guide/protocols/index.html
+++ b/docs/en/ranch/1.5/guide/protocols/index.html
@@ -190,14 +190,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
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 faf14231..317953d4 100644
--- a/docs/en/ranch/1.5/guide/ssl_auth/index.html
+++ b/docs/en/ranch/1.5/guide/ssl_auth/index.html
@@ -196,14 +196,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.5/guide/transports/index.html b/docs/en/ranch/1.5/guide/transports/index.html
index 84f25c16..edaf0cd4 100644
--- a/docs/en/ranch/1.5/guide/transports/index.html
+++ b/docs/en/ranch/1.5/guide/transports/index.html
@@ -221,14 +221,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.5/manual/index.html b/docs/en/ranch/1.5/manual/index.html
index 40e5f88b..34b26786 100644
--- a/docs/en/ranch/1.5/manual/index.html
+++ b/docs/en/ranch/1.5/manual/index.html
@@ -112,14 +112,14 @@
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.5/manual/ranch/index.html b/docs/en/ranch/1.5/manual/ranch/index.html
index 0b7691d7..d4f19adb 100644
--- a/docs/en/ranch/1.5/manual/ranch/index.html
+++ b/docs/en/ranch/1.5/manual/ranch/index.html
@@ -324,14 +324,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.5/manual/ranch_app/index.html b/docs/en/ranch/1.5/manual/ranch_app/index.html
index 9e6be26e..74797ea0 100644
--- a/docs/en/ranch/1.5/manual/ranch_app/index.html
+++ b/docs/en/ranch/1.5/manual/ranch_app/index.html
@@ -110,14 +110,14 @@
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.5/manual/ranch_protocol/index.html b/docs/en/ranch/1.5/manual/ranch_protocol/index.html
index 982d3b3b..d4ed8a92 100644
--- a/docs/en/ranch/1.5/manual/ranch_protocol/index.html
+++ b/docs/en/ranch/1.5/manual/ranch_protocol/index.html
@@ -125,14 +125,14 @@
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 7c361102..2e732ec8 100644
--- a/docs/en/ranch/1.5/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/1.5/manual/ranch_ssl/index.html
@@ -266,14 +266,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 fb2b1667..6f5113bc 100644
--- a/docs/en/ranch/1.5/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/1.5/manual/ranch_tcp/index.html
@@ -219,14 +219,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.5/manual/ranch_transport/index.html b/docs/en/ranch/1.5/manual/ranch_transport/index.html
index ae45786a..a5057cfa 100644
--- a/docs/en/ranch/1.5/manual/ranch_transport/index.html
+++ b/docs/en/ranch/1.5/manual/ranch_transport/index.html
@@ -323,14 +323,14 @@
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.6/guide/embedded/index.html b/docs/en/ranch/1.6/guide/embedded/index.html
index 0f2f0fc5..c4c06ce5 100644
--- a/docs/en/ranch/1.6/guide/embedded/index.html
+++ b/docs/en/ranch/1.6/guide/embedded/index.html
@@ -144,14 +144,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/index.html b/docs/en/ranch/1.6/guide/index.html
index 97427b53..0709c58a 100644
--- a/docs/en/ranch/1.6/guide/index.html
+++ b/docs/en/ranch/1.6/guide/index.html
@@ -131,14 +131,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/internals/index.html b/docs/en/ranch/1.6/guide/internals/index.html
index 49de2a00..6f81096b 100644
--- a/docs/en/ranch/1.6/guide/internals/index.html
+++ b/docs/en/ranch/1.6/guide/internals/index.html
@@ -148,14 +148,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/introduction/index.html b/docs/en/ranch/1.6/guide/introduction/index.html
index 04b0280b..09bf2d5b 100644
--- a/docs/en/ranch/1.6/guide/introduction/index.html
+++ b/docs/en/ranch/1.6/guide/introduction/index.html
@@ -128,14 +128,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/listeners/index.html b/docs/en/ranch/1.6/guide/listeners/index.html
index 4b6ec9ab..68bcbe3e 100644
--- a/docs/en/ranch/1.6/guide/listeners/index.html
+++ b/docs/en/ranch/1.6/guide/listeners/index.html
@@ -363,14 +363,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/migrating_from_1.5/index.html b/docs/en/ranch/1.6/guide/migrating_from_1.5/index.html
index efe83dc0..4f3d4f52 100644
--- a/docs/en/ranch/1.6/guide/migrating_from_1.5/index.html
+++ b/docs/en/ranch/1.6/guide/migrating_from_1.5/index.html
@@ -163,14 +163,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/migrating_from_1.6/index.html b/docs/en/ranch/1.6/guide/migrating_from_1.6/index.html
index 6b08997b..749ac6eb 100644
--- a/docs/en/ranch/1.6/guide/migrating_from_1.6/index.html
+++ b/docs/en/ranch/1.6/guide/migrating_from_1.6/index.html
@@ -126,14 +126,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/migrating_from_1.x/index.html b/docs/en/ranch/1.6/guide/migrating_from_1.x/index.html
index 8cc76c00..8364a90f 100644
--- a/docs/en/ranch/1.6/guide/migrating_from_1.x/index.html
+++ b/docs/en/ranch/1.6/guide/migrating_from_1.x/index.html
@@ -216,14 +216,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/parsers/index.html b/docs/en/ranch/1.6/guide/parsers/index.html
index 80946740..627d524b 100644
--- a/docs/en/ranch/1.6/guide/parsers/index.html
+++ b/docs/en/ranch/1.6/guide/parsers/index.html
@@ -183,14 +183,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/protocols/index.html b/docs/en/ranch/1.6/guide/protocols/index.html
index bba86d75..4939bfdf 100644
--- a/docs/en/ranch/1.6/guide/protocols/index.html
+++ b/docs/en/ranch/1.6/guide/protocols/index.html
@@ -190,14 +190,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
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 75dbccac..058a22b3 100644
--- a/docs/en/ranch/1.6/guide/ssl_auth/index.html
+++ b/docs/en/ranch/1.6/guide/ssl_auth/index.html
@@ -196,14 +196,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/transports/index.html b/docs/en/ranch/1.6/guide/transports/index.html
index d5cfc3f3..ab24caec 100644
--- a/docs/en/ranch/1.6/guide/transports/index.html
+++ b/docs/en/ranch/1.6/guide/transports/index.html
@@ -230,14 +230,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/guide/upcoming_2.0_changes/index.html b/docs/en/ranch/1.6/guide/upcoming_2.0_changes/index.html
index 37e3ecfc..007b4b6f 100644
--- a/docs/en/ranch/1.6/guide/upcoming_2.0_changes/index.html
+++ b/docs/en/ranch/1.6/guide/upcoming_2.0_changes/index.html
@@ -137,14 +137,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.6/manual/index.html b/docs/en/ranch/1.6/manual/index.html
index 7bea4b7c..d9b2ad1d 100644
--- a/docs/en/ranch/1.6/manual/index.html
+++ b/docs/en/ranch/1.6/manual/index.html
@@ -141,14 +141,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 fdcc3917..686de6a3 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
@@ -161,14 +161,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 2eb6a4aa..ed9ef2fb 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
@@ -129,14 +129,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 5a947ab5..340305de 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
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 f7881318..aead1e9c 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
@@ -128,14 +128,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 ce284b93..efd2a073 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
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 84db922a..bff164d4 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
@@ -130,14 +130,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 a8487bcf..0b8bc9a8 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
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 8b7e4fde..cb0631b5 100644
--- a/docs/en/ranch/1.6/manual/ranch.handshake/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.handshake/index.html
@@ -150,14 +150,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 04b3d7f7..9363446d 100644
--- a/docs/en/ranch/1.6/manual/ranch.info/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.info/index.html
@@ -175,14 +175,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 6e408705..41cade9b 100644
--- a/docs/en/ranch/1.6/manual/ranch.procs/index.html
+++ b/docs/en/ranch/1.6/manual/ranch.procs/index.html
@@ -138,14 +138,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 d48df6fd..9ce3b568 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
@@ -128,14 +128,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 a41912de..bab4fc9f 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
@@ -134,14 +134,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 53560457..866e7010 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
@@ -132,14 +132,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 8460b4bc..1dc723e1 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
@@ -132,14 +132,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 154a947b..41ec2431 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
@@ -137,14 +137,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 fdeaf569..1024db56 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
@@ -186,14 +186,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 02384014..17dc1ba5 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
@@ -131,14 +131,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 08892a30..147a6ba3 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
@@ -135,14 +135,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 d5a2fcad..f38e6c82 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
@@ -155,14 +155,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.6/manual/ranch/index.html b/docs/en/ranch/1.6/manual/ranch/index.html
index 6b6d5d91..1ffd585f 100644
--- a/docs/en/ranch/1.6/manual/ranch/index.html
+++ b/docs/en/ranch/1.6/manual/ranch/index.html
@@ -238,14 +238,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 2e48a05f..c8acc2e0 100644
--- a/docs/en/ranch/1.6/manual/ranch_app/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_app/index.html
@@ -141,14 +141,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 835da7c7..e97c765e 100644
--- a/docs/en/ranch/1.6/manual/ranch_protocol/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_protocol/index.html
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 9346d466..c9ddbcdd 100644
--- a/docs/en/ranch/1.6/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_ssl/index.html
@@ -279,14 +279,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 12c5932f..eb34b470 100644
--- a/docs/en/ranch/1.6/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_tcp/index.html
@@ -226,14 +226,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 6d30c2e0..870c5616 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
@@ -162,14 +162,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 014c489f..b5995224 100644
--- a/docs/en/ranch/1.6/manual/ranch_transport/index.html
+++ b/docs/en/ranch/1.6/manual/ranch_transport/index.html
@@ -327,14 +327,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.7/guide/embedded/index.html b/docs/en/ranch/1.7/guide/embedded/index.html
index ac531b73..2b7e5a77 100644
--- a/docs/en/ranch/1.7/guide/embedded/index.html
+++ b/docs/en/ranch/1.7/guide/embedded/index.html
@@ -144,14 +144,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/index.html b/docs/en/ranch/1.7/guide/index.html
index 951cfca0..747923c4 100644
--- a/docs/en/ranch/1.7/guide/index.html
+++ b/docs/en/ranch/1.7/guide/index.html
@@ -133,14 +133,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/internals/index.html b/docs/en/ranch/1.7/guide/internals/index.html
index 7b486899..7584b9c1 100644
--- a/docs/en/ranch/1.7/guide/internals/index.html
+++ b/docs/en/ranch/1.7/guide/internals/index.html
@@ -148,14 +148,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/introduction/index.html b/docs/en/ranch/1.7/guide/introduction/index.html
index 9ba66e04..f5f99166 100644
--- a/docs/en/ranch/1.7/guide/introduction/index.html
+++ b/docs/en/ranch/1.7/guide/introduction/index.html
@@ -127,14 +127,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/listeners/index.html b/docs/en/ranch/1.7/guide/listeners/index.html
index e2da11d5..15f0979d 100644
--- a/docs/en/ranch/1.7/guide/listeners/index.html
+++ b/docs/en/ranch/1.7/guide/listeners/index.html
@@ -363,14 +363,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/migrating_from_1.5/index.html b/docs/en/ranch/1.7/guide/migrating_from_1.5/index.html
index d701fbf5..2b9cb65c 100644
--- a/docs/en/ranch/1.7/guide/migrating_from_1.5/index.html
+++ b/docs/en/ranch/1.7/guide/migrating_from_1.5/index.html
@@ -163,14 +163,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/migrating_from_1.6/index.html b/docs/en/ranch/1.7/guide/migrating_from_1.6/index.html
index b07aa68d..94d71407 100644
--- a/docs/en/ranch/1.7/guide/migrating_from_1.6/index.html
+++ b/docs/en/ranch/1.7/guide/migrating_from_1.6/index.html
@@ -143,14 +143,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/migrating_from_1.7/index.html b/docs/en/ranch/1.7/guide/migrating_from_1.7/index.html
index 32cd783c..b88e54d4 100644
--- a/docs/en/ranch/1.7/guide/migrating_from_1.7/index.html
+++ b/docs/en/ranch/1.7/guide/migrating_from_1.7/index.html
@@ -125,14 +125,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/migrating_from_1.x/index.html b/docs/en/ranch/1.7/guide/migrating_from_1.x/index.html
index 36747e4c..17bb5aac 100644
--- a/docs/en/ranch/1.7/guide/migrating_from_1.x/index.html
+++ b/docs/en/ranch/1.7/guide/migrating_from_1.x/index.html
@@ -216,14 +216,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/parsers/index.html b/docs/en/ranch/1.7/guide/parsers/index.html
index dbacf921..78a49adc 100644
--- a/docs/en/ranch/1.7/guide/parsers/index.html
+++ b/docs/en/ranch/1.7/guide/parsers/index.html
@@ -183,14 +183,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/protocols/index.html b/docs/en/ranch/1.7/guide/protocols/index.html
index 63a92582..93e8e08a 100644
--- a/docs/en/ranch/1.7/guide/protocols/index.html
+++ b/docs/en/ranch/1.7/guide/protocols/index.html
@@ -190,14 +190,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
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 3f982950..6b5601b2 100644
--- a/docs/en/ranch/1.7/guide/ssl_auth/index.html
+++ b/docs/en/ranch/1.7/guide/ssl_auth/index.html
@@ -196,14 +196,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/transports/index.html b/docs/en/ranch/1.7/guide/transports/index.html
index dbcdff8f..110de678 100644
--- a/docs/en/ranch/1.7/guide/transports/index.html
+++ b/docs/en/ranch/1.7/guide/transports/index.html
@@ -230,14 +230,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/guide/upcoming_2.0_changes/index.html b/docs/en/ranch/1.7/guide/upcoming_2.0_changes/index.html
index d44f8ad2..d6378b69 100644
--- a/docs/en/ranch/1.7/guide/upcoming_2.0_changes/index.html
+++ b/docs/en/ranch/1.7/guide/upcoming_2.0_changes/index.html
@@ -137,14 +137,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.7/manual/index.html b/docs/en/ranch/1.7/manual/index.html
index 565ab309..ef95ccba 100644
--- a/docs/en/ranch/1.7/manual/index.html
+++ b/docs/en/ranch/1.7/manual/index.html
@@ -143,14 +143,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 bd044260..adb5f09d 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
@@ -161,14 +161,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 45312bfc..76bce6c0 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
@@ -129,14 +129,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 60032724..3d224ad6 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
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 3a2fd42c..fdd4ccc1 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
@@ -128,14 +128,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 1ce38f12..56aa1927 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
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 7e88c096..bd793db6 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
@@ -130,14 +130,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 ba09d481..4d3c3549 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
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 637ea1c3..1fae618b 100644
--- a/docs/en/ranch/1.7/manual/ranch.handshake/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.handshake/index.html
@@ -150,14 +150,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 3509c3ba..2d4823fc 100644
--- a/docs/en/ranch/1.7/manual/ranch.info/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.info/index.html
@@ -175,14 +175,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 842efa69..6c8e9034 100644
--- a/docs/en/ranch/1.7/manual/ranch.procs/index.html
+++ b/docs/en/ranch/1.7/manual/ranch.procs/index.html
@@ -138,14 +138,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 7bd22ba0..96c75337 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
@@ -148,14 +148,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 fd3f4145..9652c8f9 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
@@ -128,14 +128,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 3b4c08af..bdf1da3a 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
@@ -134,14 +134,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 86747914..479ea53d 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
@@ -132,14 +132,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 d023ee06..59c46623 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
@@ -132,14 +132,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 486b38c9..ca1d12f0 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
@@ -137,14 +137,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 a7f84420..c9dd2bff 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
@@ -186,14 +186,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 20a45e1f..3ff73f48 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
@@ -131,14 +131,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 db81988f..cc9262ce 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
@@ -135,14 +135,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 47bdde6f..919c1c35 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
@@ -155,14 +155,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.7/manual/ranch/index.html b/docs/en/ranch/1.7/manual/ranch/index.html
index 111ddc3a..cbdf432c 100644
--- a/docs/en/ranch/1.7/manual/ranch/index.html
+++ b/docs/en/ranch/1.7/manual/ranch/index.html
@@ -240,14 +240,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 9152d14b..f58475f7 100644
--- a/docs/en/ranch/1.7/manual/ranch_app/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_app/index.html
@@ -143,14 +143,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 da1d6a4a..a52f14bb 100644
--- a/docs/en/ranch/1.7/manual/ranch_protocol/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_protocol/index.html
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 3a7c3d8d..60ef4508 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
@@ -162,14 +162,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 65085f88..52c8f30b 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
@@ -133,14 +133,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 9ff845ee..ad564bf8 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
@@ -216,14 +216,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 1d8f308d..d470490d 100644
--- a/docs/en/ranch/1.7/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_ssl/index.html
@@ -279,14 +279,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 eeee21d0..41b43189 100644
--- a/docs/en/ranch/1.7/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_tcp/index.html
@@ -226,14 +226,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 e29578a5..1c2b1e9c 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
@@ -162,14 +162,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 17823b41..c03e5d3d 100644
--- a/docs/en/ranch/1.7/manual/ranch_transport/index.html
+++ b/docs/en/ranch/1.7/manual/ranch_transport/index.html
@@ -327,14 +327,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.4/guide/embedded.asciidoc b/docs/en/ranch/1.8/guide/embedded.asciidoc
index 55c018b1..55c018b1 100644
--- a/docs/en/ranch/1.4/guide/embedded.asciidoc
+++ b/docs/en/ranch/1.8/guide/embedded.asciidoc
diff --git a/docs/en/ranch/1.4/guide/embedded/index.html b/docs/en/ranch/1.8/guide/embedded/index.html
index a510f990..f217a78c 100644
--- a/docs/en/ranch/1.4/guide/embedded/index.html
+++ b/docs/en/ranch/1.8/guide/embedded/index.html
@@ -98,13 +98,13 @@ http://www.gnu.org/software/src-highlite -->
<nav style="margin:1em 0">
- <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.4/guide/protocols/">
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/protocols/">
Protocols
</a>
- <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.4/guide/parsers/">
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/parsers/">
Writing parsers
</a>
@@ -120,17 +120,17 @@ http://www.gnu.org/software/src-highlite -->
<h3>
Ranch
- 1.4
+ 1.8
User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -144,14 +144,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.4/guide/index.html b/docs/en/ranch/1.8/guide/index.html
index d0659f1f..9760e234 100644
--- a/docs/en/ranch/1.4/guide/index.html
+++ b/docs/en/ranch/1.8/guide/index.html
@@ -62,6 +62,7 @@
<h1 class="lined-header"><span>Ranch User Guide</span></h1>
+<h2 id="_interface">Interface</h2>
<ul><li><a href="introduction/">Introduction</a>
</li>
<li><a href="listeners/">Listeners</a>
@@ -72,11 +73,27 @@
</li>
<li><a href="embedded/">Embedded mode</a>
</li>
-<li><a href="parsers/">Writing parsers</a>
+</ul>
+<h2 id="_how_to">How to</h2>
+<ul><li><a href="parsers/">Writing parsers</a>
</li>
<li><a href="ssl_auth/">SSL client authentication</a>
</li>
-<li><a href="internals/">Internals</a>
+</ul>
+<h2 id="_advanced">Advanced</h2>
+<ul><li><a href="internals/">Internals</a>
+</li>
+</ul>
+<h2 id="_additional_information">Additional information</h2>
+<ul><li><a href="upcoming_2.0_changes/">Upcoming changes in Ranch 2.0</a>
+</li>
+<li><a href="migrating_from_1.7/">Migrating from Ranch 1.7 to 1.8</a>
+</li>
+<li><a href="migrating_from_1.6/">Migrating from Ranch 1.6 to 1.7</a>
+</li>
+<li><a href="migrating_from_1.5/">Migrating from Ranch 1.5 to 1.6</a>
+</li>
+<li><a href="migrating_from_1.x/">Migrating from Ranch 1.x</a>
</li>
</ul>
@@ -92,17 +109,17 @@
<h3>
Ranch
- 1.4
+ 1.8
User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -116,14 +133,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.4/guide/internals.asciidoc b/docs/en/ranch/1.8/guide/internals.asciidoc
index c5bde58f..c5bde58f 100644
--- a/docs/en/ranch/1.4/guide/internals.asciidoc
+++ b/docs/en/ranch/1.8/guide/internals.asciidoc
diff --git a/docs/en/ranch/1.4/guide/internals/index.html b/docs/en/ranch/1.8/guide/internals/index.html
index 354c8aac..1fe14387 100644
--- a/docs/en/ranch/1.4/guide/internals/index.html
+++ b/docs/en/ranch/1.8/guide/internals/index.html
@@ -102,12 +102,16 @@ http://www.gnu.org/software/src-highlite -->
<nav style="margin:1em 0">
- <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.4/guide/ssl_auth/">
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/ssl_auth/">
SSL client authentication
</a>
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/upcoming_2.0_changes/">
+ Upcoming changes in Ranch 2.0
+ </a>
+
</nav>
@@ -120,17 +124,17 @@ http://www.gnu.org/software/src-highlite -->
<h3>
Ranch
- 1.4
+ 1.8
User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -144,14 +148,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.4/guide/introduction.asciidoc b/docs/en/ranch/1.8/guide/introduction.asciidoc
index ac27862e..16449217 100644
--- a/docs/en/ranch/1.4/guide/introduction.asciidoc
+++ b/docs/en/ranch/1.8/guide/introduction.asciidoc
@@ -15,10 +15,7 @@ with socket programming and TCP protocols.
Ranch is tested and supported on Linux, FreeBSD, OSX and Windows.
-Ranch is developed for Erlang/OTP R16B+.
-
-There are known issues with the SSL application found in Erlang/OTP
-18.3.2 and 18.3.3. These versions are therefore not supported.
+Ranch is developed for Erlang/OTP 19+.
Ranch may be compiled on earlier Erlang versions with small source code
modifications but there is no guarantee that it will work as expected.
diff --git a/docs/en/ranch/1.4/guide/introduction/index.html b/docs/en/ranch/1.8/guide/introduction/index.html
index 91b491af..a7ae89f8 100644
--- a/docs/en/ranch/1.4/guide/introduction/index.html
+++ b/docs/en/ranch/1.8/guide/introduction/index.html
@@ -68,8 +68,7 @@
<p>It is assumed the developer already knows Erlang and has some experience with socket programming and TCP protocols.</p>
<h2 id="_supported_platforms">Supported platforms</h2>
<p>Ranch is tested and supported on Linux, FreeBSD, OSX and Windows.</p>
-<p>Ranch is developed for Erlang/OTP R16B+.</p>
-<p>There are known issues with the SSL application found in Erlang/OTP 18.3.2 and 18.3.3. These versions are therefore not supported.</p>
+<p>Ranch is developed for Erlang/OTP 19+.</p>
<p>Ranch may be compiled on earlier Erlang versions with small source code modifications but there is no guarantee that it will work as expected.</p>
<h2 id="_versioning">Versioning</h2>
<p>Ranch uses <a href="http://semver.org/">Semantic Versioning 2.0.0</a></p>
@@ -88,7 +87,7 @@
- <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.4/guide/listeners/">
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/listeners/">
Listeners
</a>
@@ -104,17 +103,17 @@
<h3>
Ranch
- 1.4
+ 1.8
User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -128,14 +127,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.4/guide/listeners.asciidoc b/docs/en/ranch/1.8/guide/listeners.asciidoc
index 97afa223..e8ca6949 100644
--- a/docs/en/ranch/1.4/guide/listeners.asciidoc
+++ b/docs/en/ranch/1.8/guide/listeners.asciidoc
@@ -91,6 +91,34 @@ named `tcp_echo`. We can now stop it.
[source,erlang]
ranch:stop_listener(tcp_echo).
+=== Suspending and resuming a listener
+
+Listeners can be suspended and resumed by calling
+`ranch:suspend_listener/1` and `ranch:resume_listener/1`,
+respectively, with the name of the listener as argument.
+
+Suspending a listener will cause it to stop listening and not accept
+new connections, but existing connection processes will not be stopped.
+
+.Suspending a listener
+
+[source,erlang]
+ranch:suspend_listener(tcp_echo).
+
+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.
+
+.Resuming a listener
+
+[source,erlang]
+ranch:resume_listener(tcp_echo).
+
+Whether a listener is currently running or suspended can be queried
+by calling `ranch:get_status/1` with the listener name as argument.
+
=== Default transport options
By default the socket will be set to return `binary` data, with the
@@ -141,14 +169,6 @@ from the connect function for the transport or the underlying socket library
called on the passed in socket. You should connect the socket in
`{active, false}` mode, as well.
-Note, however, that because of a bug in SSL, you cannot change ownership of an
-SSL listen socket prior to R16. Ranch will catch the error thrown, but the
-owner of the SSL socket will remain as whatever process created the socket.
-However, this will not affect accept behaviour unless the owner process dies,
-in which case the socket is closed. Therefore, to use this feature with SSL
-with an erlang release prior to R16, ensure that the SSL socket is opened in a
-persistant process.
-
=== Limiting the number of concurrent connections
The `max_connections` transport option allows you to limit the number
@@ -296,6 +316,30 @@ calling `ranch:get_protocol_options/1`.
[source,erlang]
Opts = ranch:get_protocol_options(tcp_echo).
+=== Changing transport options
+
+Ranch allows you to change the transport options of a listener, for
+example to make it listen on a different port.
+
+To change transport options, the listener has to be suspended first.
+Then you are allowed to change the transport options by calling
+`ranch:set_transport_options/2` with the listener name and the new
+transport options as arguments.
+After that, you can resume the listener.
+
+.Changing the transport options
+
+[source,erlang]
+ranch:set_transport_options(tcp_echo, NewOpts).
+
+You can retrieve the current transport options by calling
+`ranch:get_transport_options/1`.
+
+.Retrieving the current transport options
+
+[source,erlang]
+Opts = ranch:get_transport_options(tcp_echo).
+
=== Obtaining information about listeners
Ranch provides two functions for retrieving information about the
diff --git a/docs/en/ranch/1.4/guide/listeners/index.html b/docs/en/ranch/1.8/guide/listeners/index.html
index 58d7b8d6..7614cbd3 100644
--- a/docs/en/ranch/1.4/guide/listeners/index.html
+++ b/docs/en/ranch/1.8/guide/listeners/index.html
@@ -133,6 +133,25 @@ http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ranch:stop_listener</font></b>(<font color="#FF6600">tcp_echo</font>)<font color="#990000">.</font></tt></pre>
</div></div>
+<h2 id="_suspending_and_resuming_a_listener">Suspending and resuming a listener</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">ranch:suspend_listener</font></b>(<font color="#FF6600">tcp_echo</font>)<font color="#990000">.</font></tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">ranch:resume_listener</font></b>(<font color="#FF6600">tcp_echo</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<p>Whether a listener is currently running or suspended can be queried by calling <code>ranch:get_status/1</code> with the listener name as argument.</p>
<h2 id="_default_transport_options">Default transport options</h2>
<p>By default the socket will be set to return <code>binary</code> data, with the options <code>{active, false}</code>, <code>{packet, raw}</code>, <code>{reuseaddr, true}</code> set. These values can&apos;t be overriden when starting the listener, but they can be overriden using <code>Transport:setopts/2</code> in the protocol.</p>
<p>It will also set <code>{backlog, 1024}</code> and <code>{nodelay, true}</code>, which can be overriden at listener startup.</p>
@@ -156,7 +175,6 @@ http://www.gnu.org/software/src-highlite -->
<p>We recommend the use of port rewriting for systems with a single server, and load balancing for systems with multiple servers. Documenting these solutions is however out of the scope of this guide.</p>
<h2 id="_accepting_connections_on_an_existing_socket">Accepting connections on an existing socket</h2>
<p>If you want to accept connections on an existing socket, you can use the <code>socket</code> transport option, which should just be the relevant data returned from the connect function for the transport or the underlying socket library (<code>gen_tcp:connect</code>, <code>ssl:connect</code>). The accept function will then be called on the passed in socket. You should connect the socket in <code>{active, false}</code> mode, as well.</p>
-<p>Note, however, that because of a bug in SSL, you cannot change ownership of an SSL listen socket prior to R16. Ranch will catch the error thrown, but the owner of the SSL socket will remain as whatever process created the socket. However, this will not affect accept behaviour unless the owner process dies, in which case the socket is closed. Therefore, to use this feature with SSL with an erlang release prior to R16, ensure that the SSL socket is opened in a persistant process.</p>
<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>
@@ -243,6 +261,24 @@ http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#009900">Opts</font> <font color="#990000">=</font> <b><font color="#000000">ranch:get_protocol_options</font></b>(<font color="#FF6600">tcp_echo</font>)<font color="#990000">.</font></tt></pre>
</div></div>
+<h2 id="_changing_transport_options">Changing transport options</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">ranch:set_transport_options</font></b>(<font color="#FF6600">tcp_echo</font>, <font color="#009900">NewOpts</font>)<font color="#990000">.</font></tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">Opts</font> <font color="#990000">=</font> <b><font color="#000000">ranch:get_transport_options</font></b>(<font color="#FF6600">tcp_echo</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
<h2 id="_obtaining_information_about_listeners">Obtaining information about listeners</h2>
<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>
@@ -281,13 +317,13 @@ http://www.gnu.org/software/src-highlite -->
<nav style="margin:1em 0">
- <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.4/guide/introduction/">
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/introduction/">
Introduction
</a>
- <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.4/guide/transports/">
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/transports/">
Transports
</a>
@@ -303,17 +339,17 @@ http://www.gnu.org/software/src-highlite -->
<h3>
Ranch
- 1.4
+ 1.8
User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -327,14 +363,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.8/guide/migrating_from_1.5.asciidoc b/docs/en/ranch/1.8/guide/migrating_from_1.5.asciidoc
new file mode 100644
index 00000000..a454f932
--- /dev/null
+++ b/docs/en/ranch/1.8/guide/migrating_from_1.5.asciidoc
@@ -0,0 +1,76 @@
+[appendix]
+== Migrating from Ranch 1.5 to 1.6
+
+Ranch 1.6 added the ability to suspend and resume listeners.
+It also deprecates a number of features and add interfaces
+that will be used in Ranch 2.0.
+
+Ranch 1.6 is compatible with Erlang/OTP 18.0 onward. Support
+for older releases has been removed.
+
+=== Features added
+
+* Listeners can now be suspended/resumed without stopping existing
+ connection processes. This effectively closes the listening socket
+ and stops the acceptor processes.
+
+* Transport options can now be updated for suspended listeners.
+
+* The `Socket` argument given when the protocol starts has been
+ deprecated. In Ranch 2.0 the socket will be obtainable only
+ by calling `ranch:handshake/1,2`.
+
+* Ranch-specific transport options and socket options are now
+ better separated. When passing Ranch-specific transport options,
+ Ranch now expects to receive a map, in which case socket
+ options are passed in the `socket_opts` value. When there
+ are only socket options they can be passed to Ranch directly
+ as a convenience.
+
+* Any future transport option will only be added to the map
+ type. This includes transport options added in this release.
+
+* The transport option `ack_timeout` was renamed to `handshake_timeout`
+ in the map type.
+
+* The `cacerts` socket option is now silenced in error logs
+ just like the `certs` and `key` options.
+
+* The manual has been heavily updated and now features one
+ manual page per function and module, complete with a per-function
+ changelog, examples and more.
+
+=== Experimental features added
+
+* It is now possible to configure the restart intensity for
+ `ranch_sup` using the OTP application environment. This
+ feature will remain undocumented unless there is popular
+ demand for it.
+
+* Add the transport option `logger` that allows configuring
+ which logger module will be used. The logger module must
+ follow the interface of the new `logger` module in Erlang/OTP 21,
+ or be set to `error_logger` to keep the old behavior.
+
+=== Changed behaviors
+
+* Transport modules must now implement `Transport:handshake/2,3`
+ which deprecates and will replace `Transport:accept_ack/1` in
+ Ranch 2.0. It returns a new socket and can therefore be used
+ for implementing TLS upgrade mechanisms.
+
+=== New functions
+
+* The functions `ranch:suspend_listener/1` and `ranch:resume_listener/1`
+ were added. In addition the function `ranch:get_state/1` can be used
+ to obtain the running state of a listener.
+
+* A function `ranch:wait_for_connections/3` was added.
+
+* A function `ranch:handshake/1,2` was added to replace the
+ function `ranch:accept_ack/1`.
+
+=== Bugs fixed
+
+* The specs for the function `Transport:sendfile/2,4,5` have been
+ corrected. The type used for the filename was too restricting.
diff --git a/docs/en/ranch/1.8/guide/migrating_from_1.5/index.html b/docs/en/ranch/1.8/guide/migrating_from_1.5/index.html
new file mode 100644
index 00000000..db170a9d
--- /dev/null
+++ b/docs/en/ranch/1.8/guide/migrating_from_1.5/index.html
@@ -0,0 +1,221 @@
+<!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: Migrating from Ranch 1.5 to 1.6</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=7" 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>Migrating from Ranch 1.5 to 1.6</span></h1>
+
+<p>Ranch 1.6 added the ability to suspend and resume listeners. It also deprecates a number of features and add interfaces that will be used in Ranch 2.0.</p>
+<p>Ranch 1.6 is compatible with Erlang/OTP 18.0 onward. Support for older releases has been removed.</p>
+<h2 id="_features_added">Features added</h2>
+<ul><li>Listeners can now be suspended/resumed without stopping existing connection processes. This effectively closes the listening socket and stops the acceptor processes.
+</li>
+<li>Transport options can now be updated for suspended listeners.
+</li>
+<li>The <code>Socket</code> argument given when the protocol starts has been deprecated. In Ranch 2.0 the socket will be obtainable only by calling <code>ranch:handshake/1,2</code>.
+</li>
+<li>Ranch-specific transport options and socket options are now better separated. When passing Ranch-specific transport options, Ranch now expects to receive a map, in which case socket options are passed in the <code>socket_opts</code> value. When there are only socket options they can be passed to Ranch directly as a convenience.
+</li>
+<li>Any future transport option will only be added to the map type. This includes transport options added in this release.
+</li>
+<li>The transport option <code>ack_timeout</code> was renamed to <code>handshake_timeout</code> in the map type.
+</li>
+<li>The <code>cacerts</code> socket option is now silenced in error logs just like the <code>certs</code> and <code>key</code> options.
+</li>
+<li>The manual has been heavily updated and now features one manual page per function and module, complete with a per-function changelog, examples and more.
+</li>
+</ul>
+<h2 id="_experimental_features_added">Experimental features added</h2>
+<ul><li>It is now possible to configure the restart intensity for <code>ranch_sup</code> using the OTP application environment. This feature will remain undocumented unless there is popular demand for it.
+</li>
+<li>Add the transport option <code>logger</code> that allows configuring which logger module will be used. The logger module must follow the interface of the new <code>logger</code> module in Erlang/OTP 21, or be set to <code>error_logger</code> to keep the old behavior.
+</li>
+</ul>
+<h2 id="_changed_behaviors">Changed behaviors</h2>
+<ul><li>Transport modules must now implement <code>Transport:handshake/2,3</code> which deprecates and will replace <code>Transport:accept_ack/1</code> in Ranch 2.0. It returns a new socket and can therefore be used for implementing TLS upgrade mechanisms.
+</li>
+</ul>
+<h2 id="_new_functions">New functions</h2>
+<ul><li>The functions <code>ranch:suspend_listener/1</code> and <code>ranch:resume_listener/1</code> were added. In addition the function <code>ranch:get_state/1</code> can be used to obtain the running state of a listener.
+</li>
+<li>A function <code>ranch:wait_for_connections/3</code> was added.
+</li>
+<li>A function <code>ranch:handshake/1,2</code> was added to replace the function <code>ranch:accept_ack/1</code>.
+</li>
+</ul>
+<h2 id="_bugs_fixed">Bugs fixed</h2>
+<ul><li>The specs for the function <code>Transport:sendfile/2,4,5</code> have been corrected. The type used for the filename was too restricting.
+</li>
+</ul>
+
+
+
+
+
+
+
+
+
+
+
+ <nav style="margin:1em 0">
+
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/migrating_from_1.6/">
+ Migrating from Ranch 1.6 to 1.7
+ </a>
+
+
+
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/migrating_from_1.x/">
+ Migrating from Ranch 1.x
+ </a>
+
+ </nav>
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+
+ User Guide
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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/guide">2.0</a></li>
+
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
+ <li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
+
+ <li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
+
+ <li><a href="/docs/en/ranch/1.5/guide">1.5</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/guide/migrating_from_1.6.asciidoc b/docs/en/ranch/1.8/guide/migrating_from_1.6.asciidoc
new file mode 100644
index 00000000..f0c32e88
--- /dev/null
+++ b/docs/en/ranch/1.8/guide/migrating_from_1.6.asciidoc
@@ -0,0 +1,46 @@
+[appendix]
+== Migrating from Ranch 1.6 to 1.7
+
+Ranch 1.7 adds built-in support for the PROXY protocol.
+
+The PROXY protocol is a simple and efficient way for proxies
+to transmit information about the client.
+
+While a third-party library already existed, it was not
+entirely compatible with the Ranch interface, in particular
+when socket active mode was involved. This new implementation
+fixes that and supports the full protocol with as little
+overhead as possible compared to normal operations: just one
+extra function call.
+
+Ranch 1.7 is compatible with Erlang/OTP 19.0 onward. Support
+for Erlang/OTP 18 has been removed.
+
+=== Features added
+
+* Full support for the PROXY protocol was added.
+
+=== New functions
+
+* Add the function `ranch:recv_proxy_header/2` to receive
+ the PROXY protocol header and parse it. It must be called
+ before `ranch:handshake/1,2`.
+
+* Add the functions `ranch_proxy_header:parse/1` and
+ `ranch_proxy_header:header/1,2` to parse and build a
+ PROXY protocol header, respectively.
+
+=== Bugs fixed
+
+* Fix a race condition when the listener is restarted
+ after `ranch_listener_sup` crashes. This resulted in
+ the original options being used even if the options
+ were updated at runtime.
+
+* Make the acceptors exit instead of crash when the
+ listening socket has been closed to prevent
+ unnecessary logs.
+
+* Fix an issue where listener information would not get
+ cleaned up when an embedded listener was stopped. This
+ was fixed in Ranch 1.6.2.
diff --git a/docs/en/ranch/1.8/guide/migrating_from_1.6/index.html b/docs/en/ranch/1.8/guide/migrating_from_1.6/index.html
new file mode 100644
index 00000000..9d2c5e17
--- /dev/null
+++ b/docs/en/ranch/1.8/guide/migrating_from_1.6/index.html
@@ -0,0 +1,201 @@
+<!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: Migrating from Ranch 1.6 to 1.7</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=7" 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>Migrating from Ranch 1.6 to 1.7</span></h1>
+
+<p>Ranch 1.7 adds built-in support for the PROXY protocol.</p>
+<p>The PROXY protocol is a simple and efficient way for proxies to transmit information about the client.</p>
+<p>While a third-party library already existed, it was not entirely compatible with the Ranch interface, in particular when socket active mode was involved. This new implementation fixes that and supports the full protocol with as little overhead as possible compared to normal operations: just one extra function call.</p>
+<p>Ranch 1.7 is compatible with Erlang/OTP 19.0 onward. Support for Erlang/OTP 18 has been removed.</p>
+<h2 id="_features_added">Features added</h2>
+<ul><li>Full support for the PROXY protocol was added.
+</li>
+</ul>
+<h2 id="_new_functions">New functions</h2>
+<ul><li>Add the function <code>ranch:recv_proxy_header/2</code> to receive the PROXY protocol header and parse it. It must be called before <code>ranch:handshake/1,2</code>.
+</li>
+<li>Add the functions <code>ranch_proxy_header:parse/1</code> and <code>ranch_proxy_header:header/1,2</code> to parse and build a PROXY protocol header, respectively.
+</li>
+</ul>
+<h2 id="_bugs_fixed">Bugs fixed</h2>
+<ul><li>Fix a race condition when the listener is restarted after <code>ranch_listener_sup</code> crashes. This resulted in the original options being used even if the options were updated at runtime.
+</li>
+<li>Make the acceptors exit instead of crash when the listening socket has been closed to prevent unnecessary logs.
+</li>
+<li>Fix an issue where listener information would not get cleaned up when an embedded listener was stopped. This was fixed in Ranch 1.6.2.
+</li>
+</ul>
+
+
+
+
+
+
+
+
+
+
+
+ <nav style="margin:1em 0">
+
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/migrating_from_1.7/">
+ Migrating from Ranch 1.7 to 1.8
+ </a>
+
+
+
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/migrating_from_1.5/">
+ Migrating from Ranch 1.5 to 1.6
+ </a>
+
+ </nav>
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+
+ User Guide
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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/guide">2.0</a></li>
+
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
+ <li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
+
+ <li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
+
+ <li><a href="/docs/en/ranch/1.5/guide">1.5</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/guide/migrating_from_1.7.asciidoc b/docs/en/ranch/1.8/guide/migrating_from_1.7.asciidoc
new file mode 100644
index 00000000..b337f953
--- /dev/null
+++ b/docs/en/ranch/1.8/guide/migrating_from_1.7.asciidoc
@@ -0,0 +1,15 @@
+[appendix]
+== Migrating from Ranch 1.7 to 1.8
+
+Ranch 1.8 is a compatibility update for Erlang/OTP 24.
+
+Ranch 1.8 is compatible with Erlang/OTP 21.0 onward. Support
+for Erlang/OTP 19 and 20 has been removed.
+
+=== Bugs fixed
+
+* An issue with the PROXY protocol was fixed in Ranch 1.7.1.
+ The wrong CRC32 algorithm was used and would cause
+ checksum verification to fail when used. The configuration
+ value when building PROXY headers has been changed to
+ `crc32c` to reflect the correct algorithm.
diff --git a/docs/en/ranch/1.4/manual/index.html b/docs/en/ranch/1.8/guide/migrating_from_1.7/index.html
index f8c5aa74..1aa9376c 100644
--- a/docs/en/ranch/1.4/manual/index.html
+++ b/docs/en/ranch/1.8/guide/migrating_from_1.7/index.html
@@ -7,7 +7,7 @@
<meta name="description" content="">
<meta name="author" content="Loïc Hoguin based on a design from (Soft10) Pol Cámara">
- <title>Nine Nines: Ranch Function Reference</title>
+ <title>Nine Nines: Migrating from Ranch 1.7 to 1.8</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=7" rel="stylesheet">
@@ -60,25 +60,40 @@
<div class="row">
<div id="docs" class="span9 maincol">
-<h1 class="lined-header"><span>Ranch Function Reference</span></h1>
+<h1 class="lined-header"><span>Migrating from Ranch 1.7 to 1.8</span></h1>
-<ul><li><a href="ranch_app">ranch(7)</a>
-</li>
-<li><a href="ranch">ranch(3)</a>
-</li>
-<li><a href="ranch_protocol">ranch_protocol(3)</a>
-</li>
-<li><a href="ranch_ssl">ranch_ssl(3)</a>
-</li>
-<li><a href="ranch_tcp">ranch_tcp(3)</a>
-</li>
-<li><a href="ranch_transport">ranch_transport(3)</a>
+<p>Ranch 1.8 is a compatibility update for Erlang/OTP 24.</p>
+<p>Ranch 1.8 is compatible with Erlang/OTP 21.0 onward. Support for Erlang/OTP 19 and 20 has been removed.</p>
+<h2 id="_bugs_fixed">Bugs fixed</h2>
+<ul><li>An issue with the PROXY protocol was fixed in Ranch 1.7.1. The wrong CRC32 algorithm was used and would cause checksum verification to fail when used. The configuration value when building PROXY headers has been changed to <code>crc32c</code> to reflect the correct algorithm.
</li>
</ul>
+
+
+
+
+
+
+
+ <nav style="margin:1em 0">
+
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/upcoming_2.0_changes/">
+ Upcoming changes in Ranch 2.0
+ </a>
+
+
+
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/migrating_from_1.6/">
+ Migrating from Ranch 1.6 to 1.7
+ </a>
+
+ </nav>
+
+
</div>
@@ -88,17 +103,17 @@
<h3>
Ranch
- 1.4
- Function Reference
+ 1.8
+ User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -110,15 +125,15 @@
- <li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
- <li><a href="/docs/en/ranch/1.7/manual">1.7</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
- <li><a href="/docs/en/ranch/1.6/manual">1.6</a></li>
+ <li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
- <li><a href="/docs/en/ranch/1.5/manual">1.5</a></li>
+ <li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">1.4</a></li>
+ <li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
</ul>
diff --git a/docs/en/ranch/1.8/guide/migrating_from_1.x.asciidoc b/docs/en/ranch/1.8/guide/migrating_from_1.x.asciidoc
new file mode 100644
index 00000000..44babf17
--- /dev/null
+++ b/docs/en/ranch/1.8/guide/migrating_from_1.x.asciidoc
@@ -0,0 +1,70 @@
+[appendix]
+== Migrating from Ranch 1.x
+
+The changelog for Ranch releases before 1.6 can be found
+in this section.
+
+=== 1.5.0
+
+* Add transport functions getopts/2, getstat/1 and getstat/2
+* Fix ranch:info/0 and ranch:procs/2 in embedded mode
+* Prevent ranch_conns_sup from stopping on unexpected messages
+
+=== 1.4.0
+
+* Add new transport option num_acceptor
+* Deprecate ranch:start_listener/6 in favor of start_listener/5
+* Deprecate ranch:child_spec/6 in favor of child_spec/5
+
+=== 1.3.0
+
+The version numbers 1.3.1 and 1.3.2 were later made to fix
+small mistakes made during the 1.3.0 release process. They
+do not include code changes.
+
+* Tested with OTP R16B+ on Linux, FreeBSD, OSX and Windows
+* Add ssl to the list of dependencies
+* Add ranch:info/0 and ranch:procs/2 to retrieve Ranch state information
+* Allow configuring a listener with only SNI, without a default certificate
+* Blacklist transport options instead of whitelist
+** Unknown options are now allowed, but will result in a Dialyzer warning
+* Add many transport options typespecs and documentation
+* Don't silently drop the accept rate when running out of fds
+* Prevent a race condition when stopping listeners
+* Improve reporting for common errors, for example eaddrinuse
+* Fix double removal of connections bug
+** The number of active connections should now be exact
+* Fix stuck acceptor bug when controlling_socket returned errors
+* Numerous documentation and examples improvements
+
+=== 1.2.1
+
+* Fix bug preventing node shutdown when SSL is used with OTP 17.1+
+* Tune restart intensity in all supervisors
+
+=== 1.2.0
+
+* Allow the supervised process and the process owning the socket to be different
+* Add many transport options (please refer to the documentation)
+* Add function ranch:get_addr/1 to retrieve both IP and port of listener
+* Don't pass Ranch-specific options down to transports
+** Should make Dialyzer happy in user projects
+** New types ranch:opt(), ranch_tcp:opt(), ranch_ssl:ssl_opt() and ranch_ssl:opt()
+* Fix crash when filtering unknown options out
+* Print a warning for each option filtered out
+* Handle Transport:controlling_socket/2 errors and close the socket
+* Handle Protocol:start_link/4 crashes to avoid killing all active connections
+* Use Asciidoc for documentation
+* Test Ranch across 14 Erlang versions on CircleCI
+* Improve and document test suites with recent ct_helper improvements
+* Fix a number of intermittent test issues
+
+=== 1.1.0
+
+* Add Transport:secure/0
+* Add SSL partial_chain option
+* Stop reporting errors on {error, closed} in accept_ack
+
+=== 1.0.0
+
+* Initial release
diff --git a/docs/en/ranch/1.8/guide/migrating_from_1.x/index.html b/docs/en/ranch/1.8/guide/migrating_from_1.x/index.html
new file mode 100644
index 00000000..ba0cbeb5
--- /dev/null
+++ b/docs/en/ranch/1.8/guide/migrating_from_1.x/index.html
@@ -0,0 +1,274 @@
+<!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: Migrating from Ranch 1.x</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=7" 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>Migrating from Ranch 1.x</span></h1>
+
+<p>The changelog for Ranch releases before 1.6 can be found in this section.</p>
+<h2 id="_1_5_0">1.5.0</h2>
+<ul><li>Add transport functions getopts/2, getstat/1 and getstat/2
+</li>
+<li>Fix ranch:info/0 and ranch:procs/2 in embedded mode
+</li>
+<li>Prevent ranch_conns_sup from stopping on unexpected messages
+</li>
+</ul>
+<h2 id="_1_4_0">1.4.0</h2>
+<ul><li>Add new transport option num_acceptor
+</li>
+<li>Deprecate ranch:start_listener/6 in favor of start_listener/5
+</li>
+<li>Deprecate ranch:child_spec/6 in favor of child_spec/5
+</li>
+</ul>
+<h2 id="_1_3_0">1.3.0</h2>
+<p>The version numbers 1.3.1 and 1.3.2 were later made to fix small mistakes made during the 1.3.0 release process. They do not include code changes.</p>
+<ul><li>Tested with OTP R16B+ on Linux, FreeBSD, OSX and Windows
+</li>
+<li>Add ssl to the list of dependencies
+</li>
+<li>Add ranch:info/0 and ranch:procs/2 to retrieve Ranch state information
+</li>
+<li>Allow configuring a listener with only SNI, without a default certificate
+</li>
+<li>Blacklist transport options instead of whitelist
+<ul><li>Unknown options are now allowed, but will result in a Dialyzer warning
+</li>
+</ul>
+</li>
+<li>Add many transport options typespecs and documentation
+</li>
+<li>Don&apos;t silently drop the accept rate when running out of fds
+</li>
+<li>Prevent a race condition when stopping listeners
+</li>
+<li>Improve reporting for common errors, for example eaddrinuse
+</li>
+<li>Fix double removal of connections bug
+<ul><li>The number of active connections should now be exact
+</li>
+</ul>
+</li>
+<li>Fix stuck acceptor bug when controlling_socket returned errors
+</li>
+<li>Numerous documentation and examples improvements
+</li>
+</ul>
+<h2 id="_1_2_1">1.2.1</h2>
+<ul><li>Fix bug preventing node shutdown when SSL is used with OTP 17.1+
+</li>
+<li>Tune restart intensity in all supervisors
+</li>
+</ul>
+<h2 id="_1_2_0">1.2.0</h2>
+<ul><li>Allow the supervised process and the process owning the socket to be different
+</li>
+<li>Add many transport options (please refer to the documentation)
+</li>
+<li>Add function ranch:get_addr/1 to retrieve both IP and port of listener
+</li>
+<li>Don&apos;t pass Ranch-specific options down to transports
+<ul><li>Should make Dialyzer happy in user projects
+</li>
+<li>New types ranch:opt(), ranch_tcp:opt(), ranch_ssl:ssl_opt() and ranch_ssl:opt()
+</li>
+</ul>
+</li>
+<li>Fix crash when filtering unknown options out
+</li>
+<li>Print a warning for each option filtered out
+</li>
+<li>Handle Transport:controlling_socket/2 errors and close the socket
+</li>
+<li>Handle Protocol:start_link/4 crashes to avoid killing all active connections
+</li>
+<li>Use Asciidoc for documentation
+</li>
+<li>Test Ranch across 14 Erlang versions on CircleCI
+</li>
+<li>Improve and document test suites with recent ct_helper improvements
+</li>
+<li>Fix a number of intermittent test issues
+</li>
+</ul>
+<h2 id="_1_1_0">1.1.0</h2>
+<ul><li>Add Transport:secure/0
+</li>
+<li>Add SSL partial_chain option
+</li>
+<li>Stop reporting errors on {error, closed} in accept_ack
+</li>
+</ul>
+<h2 id="_1_0_0">1.0.0</h2>
+<ul><li>Initial release
+</li>
+</ul>
+
+
+
+
+
+
+
+
+
+
+
+ <nav style="margin:1em 0">
+
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/migrating_from_1.5/">
+ Migrating from Ranch 1.5 to 1.6
+ </a>
+
+
+
+ </nav>
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+
+ User Guide
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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/guide">2.0</a></li>
+
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
+ <li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
+
+ <li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
+
+ <li><a href="/docs/en/ranch/1.5/guide">1.5</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.4/guide/parsers.asciidoc b/docs/en/ranch/1.8/guide/parsers.asciidoc
index 9eacbfa9..7a9c5a53 100644
--- a/docs/en/ranch/1.4/guide/parsers.asciidoc
+++ b/docs/en/ranch/1.8/guide/parsers.asciidoc
@@ -21,7 +21,7 @@ will only cover the first two.
Text protocols are generally line based. This means that we can't
do anything with them until we receive the full line.
-A simple way to get a full line is to use `binary:split/{2,3}`.
+A simple way to get a full line is to use `binary:split/2,3`.
.Using binary:split/2 to get a line of input
diff --git a/docs/en/ranch/1.4/guide/parsers/index.html b/docs/en/ranch/1.8/guide/parsers/index.html
index b533cde8..6bb5cde8 100644
--- a/docs/en/ranch/1.4/guide/parsers/index.html
+++ b/docs/en/ranch/1.8/guide/parsers/index.html
@@ -74,7 +74,7 @@
<p>This chapter isn&apos;t specifically about Ranch, we assume here that you know how to read data from the socket. The data you read and the data that hasn&apos;t been parsed is saved in a buffer. Every time you read from the socket, the data read is appended to the buffer. What happens next depends on the kind of protocol. We will only cover the first two.</p>
<h2 id="_parsing_text">Parsing text</h2>
<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>
+<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.9
by Lorenzo Bettini
@@ -137,13 +137,13 @@ http://www.gnu.org/software/src-highlite -->
<nav style="margin:1em 0">
- <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.4/guide/embedded/">
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/embedded/">
Embedded mode
</a>
- <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.4/guide/ssl_auth/">
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/ssl_auth/">
SSL client authentication
</a>
@@ -159,17 +159,17 @@ http://www.gnu.org/software/src-highlite -->
<h3>
Ranch
- 1.4
+ 1.8
User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -183,14 +183,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.4/guide/protocols.asciidoc b/docs/en/ranch/1.8/guide/protocols.asciidoc
index b9a31f27..8f77ef49 100644
--- a/docs/en/ranch/1.4/guide/protocols.asciidoc
+++ b/docs/en/ranch/1.8/guide/protocols.asciidoc
@@ -14,18 +14,18 @@ the call to `ranch:start_listener/5`. This callback must
return `{ok, Pid}`, with `Pid` the pid of the new process.
The newly started process can then freely initialize itself. However,
-it must call `ranch:accept_ack/1` before doing any socket operation.
+it must call `ranch:handshake/1,2` before doing any socket operation.
This will ensure the connection process is the owner of the socket.
It expects the listener's name as argument.
-.Acknowledge accepting the socket
+.Perform the socket handshake
[source,erlang]
-ok = ranch:accept_ack(Ref).
+{ok, Socket} = ranch:handshake(Ref).
If your protocol code requires specific socket options, you should
set them while initializing your connection process, after
-calling `ranch:accept_ack/1`. You can use `Transport:setopts/2`
+calling `ranch:handshake/1,2`. You can use `Transport:setopts/2`
for that purpose.
Following is the complete protocol code for the example found
@@ -39,14 +39,14 @@ in `examples/tcp_echo/`.
-behaviour(ranch_protocol).
-export([start_link/4]).
--export([init/4]).
+-export([init/3]).
-start_link(Ref, Socket, Transport, Opts) ->
- Pid = spawn_link(?MODULE, init, [Ref, Socket, Transport, Opts]),
+start_link(Ref, _Socket, Transport, Opts) ->
+ Pid = spawn_link(?MODULE, init, [Ref, Transport, Opts]),
{ok, Pid}.
-init(Ref, Socket, Transport, _Opts = []) ->
- ok = ranch:accept_ack(Ref),
+init(Ref, Transport, _Opts = []) ->
+ {ok, Socket} = ranch:handshake(Ref),
loop(Socket, Transport).
loop(Socket, Transport) ->
@@ -59,41 +59,41 @@ loop(Socket, Transport) ->
end.
----
-=== Using gen_server
+=== Using gen_statem
-Special processes like the ones that use the `gen_server` or `gen_fsm`
+Special processes like the ones that use the `gen_statem` or `gen_server`
behaviours have the particularity of having their `start_link` call not
return until the `init` function returns. This is problematic, because
-you won't be able to call `ranch:accept_ack/1` from the `init` callback
+you won't be able to call `ranch:handshake/1,2` from the `init` callback
as this would cause a deadlock to happen.
-Use the `gen_server:enter_loop/3` function. It allows you to start your process
+Use the `gen_statem:enter_loop/4` function. It allows you to start your process
normally (although it must be started with `proc_lib` like all special
processes), then perform any needed operations before falling back into
-the normal `gen_server` execution loop.
+the normal `gen_statem` execution loop.
-.Use a gen_server for protocol handling
+.Use a gen_statem for protocol handling
[source,erlang]
----
-module(my_protocol).
--behaviour(gen_server).
+-behaviour(gen_statem).
-behaviour(ranch_protocol).
-export([start_link/4]).
-export([init/1]).
-%% Exports of other gen_server callbacks here.
+%% Exports of other gen_statem callbacks here.
-start_link(Ref, Socket, Transport, Opts) ->
- {ok, proc_lib:spawn_link(?MODULE, init, [{Ref, Socket, Transport, Opts}])}.
+start_link(Ref, _Socket, Transport, Opts) ->
+ {ok, proc_lib:spawn_link(?MODULE, init, [{Ref, Transport, Opts}])}.
-init({Ref, Socket, Transport, _Opts = []}) ->
+init({Ref, Transport, _Opts = []}) ->
%% Perform any required state initialization here.
- ok = ranch:accept_ack(Ref),
+ {ok, Socket} = ranch:handshake(Ref),
ok = Transport:setopts(Socket, [{active, once}]),
- gen_server:enter_loop(?MODULE, [], {state, Socket, Transport}).
+ gen_statem:enter_loop(?MODULE, [], state_name, {state_data, Socket, Transport}).
-%% Other gen_server callbacks here.
+%% Other gen_statem callbacks here.
----
Check the `tcp_reverse` example for a complete example.
diff --git a/docs/en/ranch/1.4/guide/protocols/index.html b/docs/en/ranch/1.8/guide/protocols/index.html
index db0ed1bd..427423c2 100644
--- a/docs/en/ranch/1.4/guide/protocols/index.html
+++ b/docs/en/ranch/1.8/guide/protocols/index.html
@@ -65,15 +65,15 @@
<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>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>
+<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.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><tt><font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:accept_ack</font></b>(<font color="#009900">Ref</font>)<font color="#990000">.</font></tt></pre>
+<pre><tt>{<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:handshake</font></b>(<font color="#009900">Ref</font>)<font color="#990000">.</font></tt></pre>
</div></div>
-<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>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.9
@@ -84,14 +84,14 @@ http://www.gnu.org/software/src-highlite -->
<b><font color="#000080">-behaviour</font></b>(<font color="#FF6600">ranch_protocol</font>)<font color="#990000">.</font>
<b><font color="#000080">-export</font></b>([<b><font color="#000000">start_link</font></b><font color="#990000">/</font><font color="#993399">4</font>])<font color="#990000">.</font>
-<b><font color="#000080">-export</font></b>([<b><font color="#000000">init</font></b><font color="#990000">/</font><font color="#993399">4</font>])<font color="#990000">.</font>
+<b><font color="#000080">-export</font></b>([<b><font color="#000000">init</font></b><font color="#990000">/</font><font color="#993399">3</font>])<font color="#990000">.</font>
-<b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Socket</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="#000080">spawn_link</font></b>(<b><font color="#000080">?MODULE</font></b>, <font color="#FF6600">init</font>, [<font color="#009900">Ref</font>, <font color="#009900">Socket</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>]),
+<b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#009900">_Socket</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="#000080">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">Socket</font>, <font color="#009900">Transport</font>, <font color="#009900">_Opts</font> <font color="#990000">=</font> []) <font color="#990000">-&gt;</font>
- <font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:accept_ack</font></b>(<font color="#009900">Ref</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">=</font> []) <font color="#990000">-&gt;</font>
+ {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:handshake</font></b>(<font color="#009900">Ref</font>),
<b><font color="#000000">loop</font></b>(<font color="#009900">Socket</font>, <font color="#009900">Transport</font>)<font color="#990000">.</font>
<b><font color="#000000">loop</font></b>(<font color="#009900">Socket</font>, <font color="#009900">Transport</font>) <font color="#990000">-&gt;</font>
@@ -103,32 +103,32 @@ http://www.gnu.org/software/src-highlite -->
<font color="#0000FF">ok</font> <font color="#990000">=</font> <font color="#009900">Transport</font><font color="#990000">:</font><b><font color="#000000">close</font></b>(<font color="#009900">Socket</font>)
<b><font color="#0000FF">end</font></b><font color="#990000">.</font></tt></pre>
</div></div>
-<h2 id="_using_gen_server">Using gen_server</h2>
-<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>
+<h2 id="_using_gen_statem">Using gen_statem</h2>
+<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.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000080">-module</font></b>(<font color="#FF6600">my_protocol</font>)<font color="#990000">.</font>
-<b><font color="#000080">-behaviour</font></b>(<font color="#FF6600">gen_server</font>)<font color="#990000">.</font>
+<b><font color="#000080">-behaviour</font></b>(<font color="#FF6600">gen_statem</font>)<font color="#990000">.</font>
<b><font color="#000080">-behaviour</font></b>(<font color="#FF6600">ranch_protocol</font>)<font color="#990000">.</font>
<b><font color="#000080">-export</font></b>([<b><font color="#000000">start_link</font></b><font color="#990000">/</font><font color="#993399">4</font>])<font color="#990000">.</font>
<b><font color="#000080">-export</font></b>([<b><font color="#000000">init</font></b><font color="#990000">/</font><font color="#993399">1</font>])<font color="#990000">.</font>
-<i><font color="#9A1900">%% Exports of other gen_server callbacks here.</font></i>
+<i><font color="#9A1900">%% Exports of other gen_statem callbacks here.</font></i>
-<b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#009900">Socket</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
- {<font color="#FF6600">ok</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">Socket</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>}])}<font color="#990000">.</font>
+<b><font color="#000000">start_link</font></b>(<font color="#009900">Ref</font>, <font color="#009900">_Socket</font>, <font color="#009900">Transport</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
+ {<font color="#FF6600">ok</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="#990000">.</font>
-<b><font color="#000000">init</font></b>({<font color="#009900">Ref</font>, <font color="#009900">Socket</font>, <font color="#009900">Transport</font>, <font color="#009900">_Opts</font> <font color="#990000">=</font> []}) <font color="#990000">-&gt;</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">=</font> []}) <font color="#990000">-&gt;</font>
<i><font color="#9A1900">%% Perform any required state initialization here.</font></i>
- <font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:accept_ack</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</font></b>(<font color="#009900">Ref</font>),
<font color="#0000FF">ok</font> <font color="#990000">=</font> <font color="#009900">Transport</font><font color="#990000">:</font><b><font color="#000000">setopts</font></b>(<font color="#009900">Socket</font>, [{<font color="#FF6600">active</font>, <font color="#FF6600">once</font>}]),
- <b><font color="#000000">gen_server:enter_loop</font></b>(<b><font color="#000080">?MODULE</font></b>, [], {<font color="#FF6600">state</font>, <font color="#009900">Socket</font>, <font color="#009900">Transport</font>})<font color="#990000">.</font>
+ <b><font color="#000000">gen_statem:enter_loop</font></b>(<b><font color="#000080">?MODULE</font></b>, [], <font color="#FF6600">state_name</font>, {<font color="#FF6600">state_data</font>, <font color="#009900">Socket</font>, <font color="#009900">Transport</font>})<font color="#990000">.</font>
-<i><font color="#9A1900">%% Other gen_server callbacks here.</font></i></tt></pre>
+<i><font color="#9A1900">%% Other gen_statem callbacks here.</font></i></tt></pre>
</div></div>
<p>Check the <code>tcp_reverse</code> example for a complete example.</p>
@@ -144,13 +144,13 @@ http://www.gnu.org/software/src-highlite -->
<nav style="margin:1em 0">
- <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.4/guide/transports/">
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/transports/">
Transports
</a>
- <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.4/guide/embedded/">
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/embedded/">
Embedded mode
</a>
@@ -166,17 +166,17 @@ http://www.gnu.org/software/src-highlite -->
<h3>
Ranch
- 1.4
+ 1.8
User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -190,14 +190,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.4/guide/ssl_auth.asciidoc b/docs/en/ranch/1.8/guide/ssl_auth.asciidoc
index de16107a..de16107a 100644
--- a/docs/en/ranch/1.4/guide/ssl_auth.asciidoc
+++ b/docs/en/ranch/1.8/guide/ssl_auth.asciidoc
diff --git a/docs/en/ranch/1.4/guide/ssl_auth/index.html b/docs/en/ranch/1.8/guide/ssl_auth/index.html
index 4b0d53a8..f63a2040 100644
--- a/docs/en/ranch/1.4/guide/ssl_auth/index.html
+++ b/docs/en/ranch/1.8/guide/ssl_auth/index.html
@@ -150,13 +150,13 @@ http://www.gnu.org/software/src-highlite -->
<nav style="margin:1em 0">
- <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.4/guide/parsers/">
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/parsers/">
Writing parsers
</a>
- <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.4/guide/internals/">
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/internals/">
Internals
</a>
@@ -172,17 +172,17 @@ http://www.gnu.org/software/src-highlite -->
<h3>
Ranch
- 1.4
+ 1.8
User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -196,14 +196,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.4/guide/transports.asciidoc b/docs/en/ranch/1.8/guide/transports.asciidoc
index f5bb17eb..70efa1be 100644
--- a/docs/en/ranch/1.4/guide/transports.asciidoc
+++ b/docs/en/ranch/1.8/guide/transports.asciidoc
@@ -144,6 +144,17 @@ possible to use a file descriptor opened in raw mode:
{ok, RawFile} = file:open(Filename, [raw, read, binary]),
{ok, SentBytes} = Transport:sendfile(Socket, RawFile, Offset, Bytes, Opts).
+=== Upgrading a TCP socket to SSL
+
+A connected TCP socket can be upgraded to a SSL socket via the function
+`ranch_ssl:handshake/3`. The socket *must* be in `{active, false}` mode
+before telling the client that the server is ready to upgrade in order
+to avoid race conditions.
+
+.Performing a TLS handshake on a TCP socket
+[source,erlang]
+{ok, NewSocket} = ranch_ssl:handshake(Socket, SslOpts, 5000).
+
=== Writing a transport handler
A transport handler is a module implementing the `ranch_transport` behavior.
diff --git a/docs/en/ranch/1.4/guide/transports/index.html b/docs/en/ranch/1.8/guide/transports/index.html
index d910929d..aa0274f4 100644
--- a/docs/en/ranch/1.4/guide/transports/index.html
+++ b/docs/en/ranch/1.8/guide/transports/index.html
@@ -158,6 +158,15 @@ http://www.gnu.org/software/src-highlite -->
<pre><tt>{<font color="#FF6600">ok</font>, <font color="#009900">RawFile</font>} <font color="#990000">=</font> <b><font color="#000000">file:open</font></b>(<font color="#009900">Filename</font>, [<font color="#FF6600">raw</font>, <font color="#FF6600">read</font>, <b><font color="#000080">binary</font></b>]),
{<font color="#FF6600">ok</font>, <font color="#009900">SentBytes</font>} <font color="#990000">=</font> <font color="#009900">Transport</font><font color="#990000">:</font><b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">RawFile</font>, <font color="#009900">Offset</font>, <font color="#009900">Bytes</font>, <font color="#009900">Opts</font>)<font color="#990000">.</font></tt></pre>
</div></div>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>{<font color="#FF6600">ok</font>, <font color="#009900">NewSocket</font>} <font color="#990000">=</font> <b><font color="#000000">ranch_ssl:handshake</font></b>(<font color="#009900">Socket</font>, <font color="#009900">SslOpts</font>, <font color="#993399">5000</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
<h2 id="_writing_a_transport_handler">Writing a transport handler</h2>
<p>A transport handler is a module implementing the <code>ranch_transport</code> behavior. It defines a certain number of callbacks that must be written in order to allow transparent usage of the transport handler.</p>
<p>The behavior doesn&apos;t define the socket options available when opening a socket. These do not need to be common to all transports as it&apos;s easy enough to write different initialization functions for the different transports that will be used. With one exception though. The <code>setopts/2</code> function <strong>must</strong> implement the <code>{active, once}</code> and the <code>{active, true}</code> options.</p>
@@ -175,13 +184,13 @@ http://www.gnu.org/software/src-highlite -->
<nav style="margin:1em 0">
- <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.4/guide/listeners/">
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/listeners/">
Listeners
</a>
- <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.4/guide/protocols/">
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/protocols/">
Protocols
</a>
@@ -197,17 +206,17 @@ http://www.gnu.org/software/src-highlite -->
<h3>
Ranch
- 1.4
+ 1.8
User Guide
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -221,14 +230,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/1.8/guide/upcoming_2.0_changes.asciidoc b/docs/en/ranch/1.8/guide/upcoming_2.0_changes.asciidoc
new file mode 100644
index 00000000..d7430901
--- /dev/null
+++ b/docs/en/ranch/1.8/guide/upcoming_2.0_changes.asciidoc
@@ -0,0 +1,34 @@
+[appendix]
+== Upcoming changes in Ranch 2.0
+
+The following changes will be done in Ranch 2.0. In most
+cases an alternative is already available in the most
+recent Ranch version.
+
+* The function `ranch:start_listener/6` has been deprecated
+ in favor of `ranch:start_listener/5`. The number of acceptors
+ was removed and will be taken from the transport options.
+
+* The function `ranch:child_spec/6` has also been deprecated,
+ in favor of `ranch:child_spec/5`.
+
+* The function `ranch:accept_ack/1` has been deprecated in
+ favor of `ranch:handshake/1,2`.
+
+* The function `ranch:info/1,2` will return a map containing
+ each listener's information rather than a list of key/values.
+ The `num_acceptors` key will be removed.
+
+* The socket will no longer be passed to the protocol when
+ starting it. It will be available as a return value from
+ `ranch:handshake/1,2` only.
+
+* Starting from Ranch 2.0 it will no longer be allowed to
+ pass Ranch options along with socket options as a proplist.
+ The only forms allowed will be the `ranch:opts()` map or socket
+ options as-is. The `ranch:opts()` map must be used in case socket
+ options also use a map.
+
+* The `socket` option will be removed. A more viable solution
+ is to define a custom transport module that returns a fresh
+ socket when `Transport:listen/1` is called.
diff --git a/docs/en/ranch/1.8/guide/upcoming_2.0_changes/index.html b/docs/en/ranch/1.8/guide/upcoming_2.0_changes/index.html
new file mode 100644
index 00000000..59c70a06
--- /dev/null
+++ b/docs/en/ranch/1.8/guide/upcoming_2.0_changes/index.html
@@ -0,0 +1,195 @@
+<!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: Upcoming changes in Ranch 2.0</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=7" 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>Upcoming changes in Ranch 2.0</span></h1>
+
+<p>The following changes will be done in Ranch 2.0. In most cases an alternative is already available in the most recent Ranch version.</p>
+<ul><li>The function <code>ranch:start_listener/6</code> has been deprecated in favor of <code>ranch:start_listener/5</code>. The number of acceptors was removed and will be taken from the transport options.
+</li>
+<li>The function <code>ranch:child_spec/6</code> has also been deprecated, in favor of <code>ranch:child_spec/5</code>.
+</li>
+<li>The function <code>ranch:accept_ack/1</code> has been deprecated in favor of <code>ranch:handshake/1,2</code>.
+</li>
+<li>The function <code>ranch:info/1,2</code> will return a map containing each listener&apos;s information rather than a list of key/values. The <code>num_acceptors</code> key will be removed.
+</li>
+<li>The socket will no longer be passed to the protocol when starting it. It will be available as a return value from <code>ranch:handshake/1,2</code> only.
+</li>
+<li>Starting from Ranch 2.0 it will no longer be allowed to pass Ranch options along with socket options as a proplist. The only forms allowed will be the <code>ranch:opts()</code> map or socket options as-is. The <code>ranch:opts()</code> map must be used in case socket options also use a map.
+</li>
+<li>The <code>socket</code> option will be removed. A more viable solution is to define a custom transport module that returns a fresh socket when <code>Transport:listen/1</code> is called.
+</li>
+</ul>
+
+
+
+
+
+
+
+
+
+
+
+ <nav style="margin:1em 0">
+
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.8/guide/internals/">
+ Internals
+ </a>
+
+
+
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.8/guide/migrating_from_1.7/">
+ Migrating from Ranch 1.7 to 1.8
+ </a>
+
+ </nav>
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+
+ User Guide
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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/guide">2.0</a></li>
+
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
+ <li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
+
+ <li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
+
+ <li><a href="/docs/en/ranch/1.5/guide">1.5</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/index.html b/docs/en/ranch/1.8/manual/index.html
new file mode 100644
index 00000000..feaaaf49
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/index.html
@@ -0,0 +1,201 @@
+<!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 Function Reference</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=7" 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 Function Reference</span></h1>
+
+<h2 id="_name">Name</h2>
+<p>ranch - Socket acceptor pool for TCP protocols</p>
+<h2 id="_description">Description</h2>
+<p>Ranch is a socket acceptor pool for TCP protocols.</p>
+<p>Ranch manages listeners which are a set of processes that accept and manage connections. The connection&apos;s transport and protocol modules are configured per listener. Listeners can be inspected and reconfigured without interruptions in service.</p>
+<h2 id="_modules">Modules</h2>
+<p>Functions:</p>
+<ul><li><a href="ranch">ranch(3)</a> - Socket acceptor pool
+</li>
+<li><a href="ranch_proxy_header">ranch_proxy_header(3)</a> - PROXY protocol
+</li>
+</ul>
+<p>Transports:</p>
+<ul><li><a href="ranch_ssl">ranch_ssl(3)</a> - SSL transport
+</li>
+<li><a href="ranch_tcp">ranch_tcp(3)</a> - TCP transport
+</li>
+</ul>
+<p>Behaviors:</p>
+<ul><li><a href="ranch_protocol">ranch_protocol(3)</a> - Protocol modules
+</li>
+<li><a href="ranch_transport">ranch_transport(3)</a> - Transport modules
+</li>
+</ul>
+<h2 id="_dependencies">Dependencies</h2>
+<ul><li>ssl - Secure communication over sockets
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>{<font color="#FF6600">ok</font>, <font color="#990000">_</font>} <font color="#990000">=</font> <b><font color="#000000">application:ensure_all_started</font></b>(<font color="#FF6600">ranch</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_environment">Environment</h2>
+<p>The <code>ranch</code> application defines one application environment configuration parameter.</p>
+<dl><dt>profile (false)</dt>
+<dd><p>When enabled, Ranch will start <code>eprof</code> profiling automatically.</p>
+<p>You can use the <code>ranch_app:profile_output/0</code> function to stop profiling and output the results to the files <em>procs.profile</em> and <em>total.profile</em>. Do not use in production.</p>
+</dd>
+</dl>
+<h2 id="_see_also">See also</h2>
+<p>ssl(7)</p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.child_spec/index.html b/docs/en/ranch/1.8/manual/ranch.child_spec/index.html
new file mode 100644
index 00000000..768ec5ab
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.child_spec/index.html
@@ -0,0 +1,219 @@
+<!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:child_spec(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=7" 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:child_spec(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">child_spec</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch_ref</font></b>(),
+ <font color="#009900">Transport</font> <font color="#990000">::</font> <b><font color="#000000">module</font></b>(),
+ <font color="#009900">TransOpts</font> <font color="#990000">::</font> <b><font color="#000000">ranch:opts</font></b>(),
+ <font color="#009900">Protocol</font> <font color="#990000">::</font> <b><font color="#000000">module</font></b>(),
+ <font color="#009900">ProtoOpts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>())
+ <font color="#990000">-&gt;</font> <b><font color="#000000">supervisor:child_spec</font></b>()</tt></pre>
+</div></div>
+<p>Build child specifications for a new listener.</p>
+<p>This function can be used to embed a listener directly in an application&apos;s supervision tree.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name is used to refer to this listener in future calls, for example when stopping it or when updating the configuration.</p>
+<p>It can be any Erlang term. An atom is generally good enough, for example <code>api</code>, <code>my_app_clear</code> or <code>my_app_tls</code>.</p>
+</dd>
+<dt>Transport</dt>
+<dd><p>The transport module that will be used by Ranch to accept connections and that will be passed to the protocol module along with the socket.</p>
+<p>The interface of the transport module is documented in the <a href="../ranch_transport">ranch_transport(3)</a> manual.</p>
+</dd>
+<dt>TransportOpts</dt>
+<dd><p>Transport options include the Ranch-specific options and the socket options. The listener&apos;s port number must be defined in the socket options.</p>
+<p>Socket options may be given directly if there are no Ranch-specific options.</p>
+<p>The available options for the built-in Ranch transports are documented in the <a href="../ranch_tcp">ranch_tcp(3)</a> and <a href="../ranch_ssl">ranch_ssl(3)</a> manuals.</p>
+</dd>
+<dt>Protocol</dt>
+<dd><p>The protocol module that will be used by Ranch after the connection has been accepted.</p>
+<p>The interface of the protocol module is documented in the <a href="../ranch_protocol">ranch_protocol(3)</a> manual.</p>
+</dd>
+<dt>ProtocolOpts</dt>
+<dd><p>The protocol options given when calling the protocol module. Please consult the documentation of the protocol module you are using for more details.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>Child specifications are returned.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.4</strong>: The <code>NumAcceptors</code> argument was moved to the transport options.
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000080">-behavior</font></b>(<font color="#FF6600">supervisor</font>)<font color="#990000">.</font>
+
+<b><font color="#000000">init</font></b>(<font color="#990000">_</font>) <font color="#990000">-&gt;</font>
+ {<font color="#FF6600">ok</font>, {#{<font color="#0000FF">strategy</font> <font color="#990000">=&gt;</font> <font color="#FF6600">one_for_one</font>}, [
+ <b><font color="#000000">ranch:child_spec</font></b>(<font color="#FF6600">echo</font>,
+ <font color="#FF6600">ranch_tcp</font>, [{<font color="#FF6600">port</font>, <font color="#993399">5555</font>}],
+ <font color="#FF6600">echo_protocol</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.stop_listener">ranch:stop_listener(3)</a>, <a href="../ranch">ranch(3)</a>, <a href="../ranch_tcp">ranch_tcp(3)</a>, <a href="../ranch_ssl">ranch_ssl(3)</a>, <a href="../ranch_transport">ranch_transport(3)</a>, <a href="../ranch_protocol">ranch_protocol(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.get_addr/index.html b/docs/en/ranch/1.8/manual/ranch.get_addr/index.html
new file mode 100644
index 00000000..75c68874
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.get_addr/index.html
@@ -0,0 +1,187 @@
+<!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:get_addr(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=7" 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:get_addr(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">get_addr</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="#009900">IP</font> <font color="#990000">::</font> <b><font color="#000000">inet:ip_address</font></b>(),
+ <font color="#009900">Port</font> <font color="#990000">::</font> <b><font color="#000000">inet:port_number</font></b>()}</tt></pre>
+</div></div>
+<p>Get the listening port and IP.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>The address of the listener is returned as a tuple.</p>
+<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.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>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.start_listener">ranch:start_listener(3)</a>, <a href="../ranch.get_port">ranch:get_port(3)</a>, <a href="../ranch.info">ranch:info(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.get_max_connections/index.html b/docs/en/ranch/1.8/manual/ranch.get_max_connections/index.html
new file mode 100644
index 00000000..a5725f25
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.get_max_connections/index.html
@@ -0,0 +1,185 @@
+<!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:get_max_connections(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=7" 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:get_max_connections(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">get_max_connections</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="#009900">MaxConns</font> <font color="#990000">::</font> <b><font color="#000000">ranch:max_conns</font></b>()</tt></pre>
+</div></div>
+<p>Get the max number of connections.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">MaxConns</font> <font color="#990000">=</font> <b><font color="#000000">ranch:get_max_connections</font></b>(<font color="#FF6600">example</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.get_protocol_options">ranch:get_protocol_options(3)</a>, <a href="../ranch.get_transport_options">ranch:get_transport_options(3)</a>, <a href="../ranch.set_max_connections">ranch:set_max_connections(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.get_port/index.html b/docs/en/ranch/1.8/manual/ranch.get_port/index.html
new file mode 100644
index 00000000..654e1bf0
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.get_port/index.html
@@ -0,0 +1,186 @@
+<!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:get_port(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=7" 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:get_port(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">get_port</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="#009900">Port</font> <font color="#990000">::</font> <b><font color="#000000">inet:port_number</font></b>()</tt></pre>
+</div></div>
+<p>Get the listening port.</p>
+<p>This function is particularly useful to retrieve the listening port number when it was not provided in the options and was chosen randomly instead.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">Port</font> <font color="#990000">=</font> <b><font color="#000000">ranch:get_port</font></b>(<font color="#FF6600">example</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.get_addr">ranch:get_addr(3)</a>, <a href="../ranch.info">ranch:info(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.get_protocol_options/index.html b/docs/en/ranch/1.8/manual/ranch.get_protocol_options/index.html
new file mode 100644
index 00000000..fb328f7f
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.get_protocol_options/index.html
@@ -0,0 +1,185 @@
+<!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:get_protocol_options(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=7" 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:get_protocol_options(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">get_protocol_options</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="#009900">ProtoOpts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()</tt></pre>
+</div></div>
+<p>Get the current protocol options.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">ProtoOpts</font> <font color="#990000">=</font> <b><font color="#000000">ranch:get_protocol_options</font></b>(<font color="#FF6600">example</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.get_max_connections">ranch:get_max_connections(3)</a>, <a href="../ranch.get_transport_options">ranch:get_transport_options(3)</a>, <a href="../ranch.set_protocol_options">ranch:set_protocol_options(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.get_status/index.html b/docs/en/ranch/1.8/manual/ranch.get_status/index.html
new file mode 100644
index 00000000..c40608d1
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.get_status/index.html
@@ -0,0 +1,188 @@
+<!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:get_status(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=7" 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:get_status(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">get_status</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch_ref</font></b>()) <font color="#990000">-&gt;</font> <b><font color="#000080">running</font></b> | <font color="#FF6600">suspended</font></tt></pre>
+</div></div>
+<p>Get a listener&apos;s running state.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>An atom is returned indicating the running status of the listener.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.6</strong>: Function introduced.
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">ranch:get_status</font></b>(<font color="#FF6600">example</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.stop_listener">ranch:stop_listener(3)</a>, <a href="../ranch.suspend_listener">ranch:suspend_listener(3)</a>, <a href="../ranch.resume_listener">ranch:resume_listener(3)</a>, <a href="../ranch.set_transport_options">ranch:set_transport_options(3)</a>, <a href="../ranch.wait_for_connections">ranch:wait_for_connections(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.get_transport_options/index.html b/docs/en/ranch/1.8/manual/ranch.get_transport_options/index.html
new file mode 100644
index 00000000..fea15783
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.get_transport_options/index.html
@@ -0,0 +1,185 @@
+<!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:get_transport_options(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=7" 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:get_transport_options(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">get_transport_options</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="#009900">TransOpts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()</tt></pre>
+</div></div>
+<p>Get the current transport options.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">TransOpts</font> <font color="#990000">=</font> <b><font color="#000000">ranch:get_transport_options</font></b>(<font color="#FF6600">example</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.get_max_connections">ranch:get_max_connections(3)</a>, <a href="../ranch.get_protocol_options">ranch:get_protocol_options(3)</a>, <a href="../ranch.set_transport_options">ranch:set_transport_options(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.handshake/index.html b/docs/en/ranch/1.8/manual/ranch.handshake/index.html
new file mode 100644
index 00000000..0397df7b
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.handshake/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(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=7" 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(3)</span></h1>
+
+<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.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>}
+
+<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>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>
+<p>Currently the socket can be obtained from a <code>Protocol:start_link/4</code> argument and as a return value from <code>ranch:handshake/1,2</code>. In Ranch 2.0 the socket will only be available from <code>ranch:handshake/1,2</code>.</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>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.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>
+ <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">ok</font>, <font color="#009900">Socket</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:handshake</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.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>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.info/index.html b/docs/en/ranch/1.8/manual/ranch.info/index.html
new file mode 100644
index 00000000..36ca7392
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.info/index.html
@@ -0,0 +1,233 @@
+<!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:info(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=7" 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:info(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">info</font></b>() <font color="#990000">-&gt;</font> [{<font color="#009900">Ref</font>, <font color="#009900">Info</font>}]
+<b><font color="#000000">info</font></b>(<font color="#009900">Ref</font>) <font color="#990000">-&gt;</font> <font color="#009900">Info</font>
+
+<font color="#009900">Info</font> <font color="#990000">::</font> [{<font color="#009900">Key</font> <font color="#990000">::</font> <b><font color="#000080">atom</font></b>(), <font color="#009900">Value</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()}]</tt></pre>
+</div></div>
+<p>Overview of Ranch listeners.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>Returns detailed information about one or all Ranch listeners. The following keys are returned:</p>
+<dl><dt>pid</dt>
+<dd><p>Pid of the listener&apos;s top-level supervisor.</p>
+</dd>
+<dt>status</dt>
+<dd><p>Listener status, either running or suspended.</p>
+</dd>
+<dt>ip</dt>
+<dd><p>Interface Ranch listens on.</p>
+</dd>
+<dt>port</dt>
+<dd><p>Port number Ranch listens on.</p>
+</dd>
+<dt>num_acceptors</dt>
+<dd><p>Number of acceptor processes.</p>
+</dd>
+<dt>max_connections</dt>
+<dd><p>Maximum number of connections.</p>
+</dd>
+<dt>active_connections</dt>
+<dd><p>Number of active connections.</p>
+</dd>
+<dt>all_connections</dt>
+<dd><p>Number of connections, including those removed from the count.</p>
+</dd>
+<dt>transport</dt>
+<dd><p>Transport module.</p>
+</dd>
+<dt>transport_options</dt>
+<dd><p>Transport options.</p>
+</dd>
+<dt>protocol</dt>
+<dd><p>Protocol module.</p>
+</dd>
+<dt>protocol_options</dt>
+<dd><p>Protocol options.</p>
+</dd>
+</dl>
+<!-- @todo I mistakenly removed the num_acceptors key,-->
+<!-- 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.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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">Info</font> <font color="#990000">=</font> <b><font color="#000000">ranch:info</font></b>(<font color="#FF6600">example</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.get_addr">ranch:get_addr(3)</a>, <a href="../ranch.get_port">ranch:get_port(3)</a>, <a href="../ranch.procs">ranch:procs(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.procs/index.html b/docs/en/ranch/1.8/manual/ranch.procs/index.html
new file mode 100644
index 00000000..e72bfd83
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.procs/index.html
@@ -0,0 +1,196 @@
+<!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:procs(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=7" 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:procs(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">procs</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch:ref</font></b>(),
+ <font color="#009900">Type</font> <font color="#990000">::</font> <font color="#FF6600">acceptors</font> | <font color="#FF6600">connections</font>)
+ <font color="#990000">-&gt;</font> <font color="#009900">Pids</font> <font color="#990000">::</font> [<b><font color="#000080">pid</font></b>()]</tt></pre>
+</div></div>
+<p>Retrieve pids from a listener.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+<dt>Type</dt>
+<dd><p>The type of process that will be returned.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<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.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.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">connections</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.get_addr">ranch:get_addr(3)</a>, <a href="../ranch.get_port">ranch:get_port(3)</a>, <a href="../ranch.info">ranch:info(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.recv_proxy_header/index.html b/docs/en/ranch/1.8/manual/ranch.recv_proxy_header/index.html
new file mode 100644
index 00000000..91874776
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.recv_proxy_header/index.html
@@ -0,0 +1,206 @@
+<!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:recv_proxy_header(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=7" 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:recv_proxy_header(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">recv_proxy_header</font></b>(<b><font color="#000000">ranch:ref</font></b>(), <b><font color="#000000">timeout</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <b><font color="#000000">ranch_proxy_header:proxy_info</font></b>()}
+ | {<font color="#FF6600">error</font>, <font color="#009900">Reason</font> <font color="#990000">::</font> <b><font color="#000080">atom</font></b>()}
+ | {<font color="#FF6600">error</font>, <font color="#FF6600">protocol_error</font>, <font color="#009900">HumanReadable</font> <font color="#990000">::</font> <b><font color="#000080">atom</font></b>()}</tt></pre>
+</div></div>
+<p>Receive the PROXY protocol header.</p>
+<p>This function must be called before <code>ranch:handshake/1,2</code> on newly accepted connections to read and parse the PROXY protocol header, if any.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+<dt>Timeout</dt>
+<dd><p>Receive timeout in milliseconds.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>An <code>ok</code> tuple is returned containing PROXY header information on success.</p>
+<p>An <code>error</code> 2-tuple is returned when a socket error occurs.</p>
+<p>An <code>error</code> 3-tuple is returned when a protocol error occurs and Ranch was not able to parse the PROXY header information. The third element contains a human-readable description of the error.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.7</strong>: Function introduced.
+</li>
+</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.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>
+ <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">ok</font>, <font color="#009900">ProxyInfo</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:recv_proxy_header</font></b>(<font color="#009900">Ref</font>, <font color="#993399">1000</font>),
+ {<font color="#FF6600">ok</font>, <font color="#009900">Socket</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:handshake</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">proxy_info</font><font color="#990000">=</font><font color="#009900">ProxyInfo</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.handshake">ranch:handshake(3)</a>, <a href="../ranch.remove_connection">ranch:remove_connection(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.remove_connection/index.html b/docs/en/ranch/1.8/manual/ranch.remove_connection/index.html
new file mode 100644
index 00000000..fd9e107a
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.remove_connection/index.html
@@ -0,0 +1,186 @@
+<!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:remove_connection(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=7" 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:remove_connection(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">remove_connection</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>Remove connection from the count.</p>
+<p>This connection will no longer be included in the count when limiting the number of connections. This can be useful in a mixed environment where some connections are active and others are passive. Passive connections spend most of their time idling and are not consuming much resources.</p>
+<p>This function may only be called from a connection process.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<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.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="#FF6600">example</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.handshake">ranch:handshake(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.resume_listener/index.html b/docs/en/ranch/1.8/manual/ranch.resume_listener/index.html
new file mode 100644
index 00000000..cc3eda7d
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.resume_listener/index.html
@@ -0,0 +1,192 @@
+<!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:resume_listener(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=7" 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:resume_listener(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">resume_listener</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> | {<font color="#FF6600">error</font>, <b><font color="#000000">any</font></b>()}</tt></pre>
+</div></div>
+<p>Resume a suspended listener.</p>
+<p>Ranch will start listening for and accepting connections again. The function <a href="../ranch.set_transport_options">ranch:set_transport_options(3)</a> can be used to change the transport options before resuming the listener.</p>
+<p>Nothing is done when the listener is already running.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>The atom <code>ok</code> is returned on success.</p>
+<p>An error tuple is returned when the listener could not be restarted.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.6</strong>: Function introduced.
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:resume_listener</font></b>(<font color="#FF6600">example</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.stop_listener">ranch:stop_listener(3)</a>, <a href="../ranch.suspend_listener">ranch:suspend_listener(3)</a>, <a href="../ranch.get_status">ranch:get_status(3)</a>, <a href="../ranch.set_transport_options">ranch:set_transport_options(3)</a>, <a href="../ranch.wait_for_connections">ranch:wait_for_connections(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.set_max_connections/index.html b/docs/en/ranch/1.8/manual/ranch.set_max_connections/index.html
new file mode 100644
index 00000000..7a5d226b
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.set_max_connections/index.html
@@ -0,0 +1,190 @@
+<!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:set_max_connections(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=7" 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:set_max_connections(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">set_max_connections</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch:ref</font></b>(),
+ <font color="#009900">MaxConns</font> <font color="#990000">::</font> <b><font color="#000000">ranch:max_conns</font></b>())
+ <font color="#990000">-&gt;</font> <font color="#FF6600">ok</font></tt></pre>
+</div></div>
+<p>Set the max number of connections.</p>
+<p>The change will be applied immediately. If the new value is smaller than the previous one, Ranch will wait for the extra connections to terminate and will not accept new connections until the number of connections goes below the limit.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+<dt>MaxConns</dt>
+<dd><p>The new maximum number of connections.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">ranch:set_max_connections</font></b>(<font color="#FF6600">example</font>, <font color="#993399">10000</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.get_max_connections">ranch:get_max_connections(3)</a>, <a href="../ranch.set_protocol_options">ranch:set_protocol_options(3)</a>, <a href="../ranch.set_transport_options">ranch:set_transport_options(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.set_protocol_options/index.html b/docs/en/ranch/1.8/manual/ranch.set_protocol_options/index.html
new file mode 100644
index 00000000..3e4e4632
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.set_protocol_options/index.html
@@ -0,0 +1,190 @@
+<!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:set_protocol_options(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=7" 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:set_protocol_options(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">set_protocol_options</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch:ref</font></b>(),
+ <font color="#009900">ProtoOpts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>())
+ <font color="#990000">-&gt;</font> <font color="#FF6600">ok</font></tt></pre>
+</div></div>
+<p>Set the protocol options.</p>
+<p>The change will be applied immediately for all new connections. Old connections will not receive the new options.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+<dt>ProtoOpts</dt>
+<dd><p>The new protocol options.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">ranch:set_protocol_options</font></b>(<font color="#FF6600">example</font>, <font color="#009900">ProtoOpts</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.get_protocol_options">ranch:get_protocol_options(3)</a>, <a href="../ranch.set_max_connections">ranch:set_max_connections(3)</a>, <a href="../ranch.set_transport_options">ranch:set_transport_options(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.set_transport_options/index.html b/docs/en/ranch/1.8/manual/ranch.set_transport_options/index.html
new file mode 100644
index 00000000..9b174655
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.set_transport_options/index.html
@@ -0,0 +1,195 @@
+<!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:set_transport_options(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=7" 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:set_transport_options(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">set_transport_options</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch:ref</font></b>(),
+ <font color="#009900">TransOpts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>())
+ <font color="#990000">-&gt;</font> <font color="#FF6600">ok</font> | {<font color="#FF6600">error</font>, <b><font color="#000080">running</font></b>}</tt></pre>
+</div></div>
+<p>Set the transport options.</p>
+<p>The listener must be suspended for this call to succeed. If the listener is running, <code>{error, running}</code> will be returned.</p>
+<p>The change will take effect when the listener resumes.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+<dt>TransOpts</dt>
+<dd><p>The new transport options.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">Ref</font> <font color="#990000">=</font> <font color="#FF6600">example</font>,
+
+<font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:suspend_listener</font></b>(<font color="#009900">Ref</font>),
+<font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:set_transport_options</font></b>(<font color="#009900">Ref</font>, <font color="#009900">TransOpts</font>),
+<font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:resume_listener</font></b>(<font color="#009900">Ref</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.suspend_listener">ranch:suspend_listener(3)</a>, <a href="../ranch.resume_listener">ranch:resume_listener(3)</a>, <a href="../ranch.get_transport_options">ranch:get_transport_options(3)</a>, <a href="../ranch.set_max_connections">ranch:set_max_connections(3)</a>, <a href="../ranch.set_protocol_options">ranch:set_protocol_options(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.start_listener/index.html b/docs/en/ranch/1.8/manual/ranch.start_listener/index.html
new file mode 100644
index 00000000..9a4d173d
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.start_listener/index.html
@@ -0,0 +1,244 @@
+<!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:start_listener(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=7" 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:start_listener(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">start_listener</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch_ref</font></b>(),
+ <font color="#009900">Transport</font> <font color="#990000">::</font> <b><font color="#000000">module</font></b>(),
+ <font color="#009900">TransOpts</font> <font color="#990000">::</font> <b><font color="#000000">ranch:opts</font></b>(),
+ <font color="#009900">Protocol</font> <font color="#990000">::</font> <b><font color="#000000">module</font></b>(),
+ <font color="#009900">ProtoOpts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">ListenerPid</font> <font color="#990000">::</font> <b><font color="#000080">pid</font></b>()}
+ | {<font color="#FF6600">error</font>, <b><font color="#000000">any</font></b>()}</tt></pre>
+</div></div>
+<p>Start a listener.</p>
+<p>A listener is a set of processes that accepts and manages connections using the given transport and protocol modules.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name is used to refer to this listener in future calls, for example when stopping it or when updating the configuration.</p>
+<p>It can be any Erlang term. An atom is generally good enough, for example <code>api</code>, <code>my_app_clear</code> or <code>my_app_tls</code>.</p>
+</dd>
+<dt>Transport</dt>
+<dd><p>The transport module that will be used by Ranch to accept connections and that will be passed to the protocol module along with the socket.</p>
+<p>The interface of the transport module is documented in the <a href="../ranch_transport">ranch_transport(3)</a> manual.</p>
+</dd>
+<dt>TransportOpts</dt>
+<dd><p>Transport options include the Ranch-specific options and the socket options. The listener&apos;s port number must be defined in the socket options.</p>
+<p>Socket options may be given directly if there are no Ranch-specific options.</p>
+<p>The available options for the built-in Ranch transports are documented in the <a href="../ranch_tcp">ranch_tcp(3)</a> and <a href="../ranch_ssl">ranch_ssl(3)</a> manuals.</p>
+</dd>
+<dt>Protocol</dt>
+<dd><p>The protocol module that will be used by Ranch after the connection has been accepted.</p>
+<p>The interface of the protocol module is documented in the <a href="../ranch_protocol">ranch_protocol(3)</a> manual.</p>
+</dd>
+<dt>ProtocolOpts</dt>
+<dd><p>The protocol options given when calling the protocol module. Please consult the documentation of the protocol module you are using for more details.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>An ok tuple is returned on success. It contains the pid of the top-level supervisor for the listener.</p>
+<p>An error tuple is returned on error. The error reason may be any Erlang term.</p>
+<p>A common error is <code>eaddrinuse</code>. It indicates that the port configured for Ranch is already in use.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.4</strong>: The <code>NumAcceptors</code> argument was moved to the transport options.
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>{<font color="#FF6600">ok</font>, <font color="#990000">_</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:start_listener</font></b>(<font color="#FF6600">example</font>,
+ <font color="#FF6600">ranch_tcp</font>, [{<font color="#FF6600">port</font>, <font color="#993399">8080</font>}],
+ <font color="#FF6600">cowboy_http2</font>, #{}
+)<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>{<font color="#FF6600">ok</font>, <font color="#990000">_</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:start_listener</font></b>(<font color="#FF6600">example</font>,
+ <font color="#FF6600">ranch_tcp</font>, #{
+ <font color="#0000FF">num_acceptors</font> <font color="#990000">=&gt;</font> <font color="#993399">75</font>,
+ <font color="#0000FF">socket_opts</font> <font color="#990000">=&gt;</font> [{<font color="#FF6600">port</font>, <font color="#993399">8080</font>}]
+ },
+ <font color="#FF6600">cowboy_http2</font>, #{}
+)<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">Ref</font> <font color="#990000">=</font> <font color="#FF6600">example</font>,
+
+{<font color="#FF6600">ok</font>, <font color="#990000">_</font>} <font color="#990000">=</font> <b><font color="#000000">ranch:start_listener</font></b>(<font color="#009900">Ref</font>,
+ <font color="#FF6600">ranch_tcp</font>, #{},
+ <font color="#FF6600">cowboy_http2</font>, #{}
+),
+
+<font color="#009900">Port</font> <font color="#990000">=</font> <b><font color="#000000">ranch:get_port</font></b>(<font color="#009900">Ref</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.stop_listener">ranch:stop_listener(3)</a>, <a href="../ranch.child_spec">ranch:child_spec(3)</a>, <a href="../ranch">ranch(3)</a>, <a href="../ranch_tcp">ranch_tcp(3)</a>, <a href="../ranch_ssl">ranch_ssl(3)</a>, <a href="../ranch_transport">ranch_transport(3)</a>, <a href="../ranch_protocol">ranch_protocol(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.stop_listener/index.html b/docs/en/ranch/1.8/manual/ranch.stop_listener/index.html
new file mode 100644
index 00000000..f5e820b2
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.stop_listener/index.html
@@ -0,0 +1,189 @@
+<!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:stop_listener(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=7" 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:stop_listener(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">stop_listener</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> | {<font color="#FF6600">error</font>, <font color="#FF6600">not_found</font>}</tt></pre>
+</div></div>
+<p>Stop a listener.</p>
+<p>The listener is stopped gracefully, first by closing the listening port, then by stopping the connection processes. These processes are stopped according to the <code>shutdown</code> transport option, which may be set to brutally kill all connection processes or give them some time to stop properly.</p>
+<p>In order for the connection processes to exit gracefully, they need to trap exit signals and stop before the configured shutdown timeout. If greater control over the shutdown is required the functions <a href="../ranch.suspend_listener">ranch:suspend_listener(3)</a> and <a href="../ranch.wait_for_connections">ranch:wait_for_connections(3)</a> can be used.</p>
+<p>This function does not return until the listener is completely stopped.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>The atom <code>ok</code> is returned on success.</p>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:stop_listener</font></b>(<font color="#FF6600">example</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.child_spec">ranch:child_spec(3)</a>, <a href="../ranch.suspend_listener">ranch:suspend_listener(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.suspend_listener/index.html b/docs/en/ranch/1.8/manual/ranch.suspend_listener/index.html
new file mode 100644
index 00000000..61549a9c
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.suspend_listener/index.html
@@ -0,0 +1,193 @@
+<!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:suspend_listener(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=7" 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:suspend_listener(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">suspend_listener</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> | {<font color="#FF6600">error</font>, <b><font color="#000000">any</font></b>()}</tt></pre>
+</div></div>
+<p>Suspend a running listener.</p>
+<p>Ranch will stop listening for and accepting connections and the listening socket will be closed. Existing connections will continue undisturbed. The function <a href="../ranch.wait_for_connections">ranch:wait_for_connections(3)</a> can be used to wait for connections to be closed if necessary.</p>
+<p>Some transport options can only be changed when the listener is suspended. Please consult the <a href="../ranch.set_transport_options">ranch:set_transport_options(3)</a> manual for more information.</p>
+<p>Nothing is done when the listener is already suspended.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>The atom <code>ok</code> is returned on success.</p>
+<p>An error tuple is returned when the listener could not be suspended.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.6</strong>: Function introduced.
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:suspend_listener</font></b>(<font color="#FF6600">example</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.stop_listener">ranch:stop_listener(3)</a>, <a href="../ranch.resume_listener">ranch:resume_listener(3)</a>, <a href="../ranch.get_status">ranch:get_status(3)</a>, <a href="../ranch.set_transport_options">ranch:set_transport_options(3)</a>, <a href="../ranch.wait_for_connections">ranch:wait_for_connections(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch.wait_for_connections/index.html b/docs/en/ranch/1.8/manual/ranch.wait_for_connections/index.html
new file mode 100644
index 00000000..7a661190
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch.wait_for_connections/index.html
@@ -0,0 +1,213 @@
+<!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:wait_for_connections(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=7" 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:wait_for_connections(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">wait_for_connections</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch:ref</font></b>(),
+ <font color="#009900">Operator</font>,
+ <font color="#009900">NumConns</font> <font color="#990000">::</font> <b><font color="#000000">non_neg_integer</font></b>())
+ <font color="#990000">-&gt;</font> <font color="#FF6600">ok</font>
+
+<font color="#009900">Operator</font> <font color="#990000">::</font> <font color="#FF6600">'&gt;'</font> | <font color="#FF6600">'&gt;='</font> | <font color="#FF6600">'=='</font> | <font color="#FF6600">'=&lt;'</font> | <font color="#FF6600">'&lt;'</font></tt></pre>
+</div></div>
+<p>Wait for a specific number of connections.</p>
+<p>This function waits until the number of connections on the given listener becomes higher than, equal to or lower than the given number. It never returns otherwise.</p>
+<p>This function can be used to gracefully shutdown a listener by first suspending the listener and then waiting for connections to terminate before finally stopping the listener.</p>
+<!-- @todo The suspend/wait/stop pattern should be tested.-->
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Ref</dt>
+<dd><p>The listener name.</p>
+</dd>
+<dt>Operator</dt>
+<dd><p>The operator to use for the comparison.</p>
+</dd>
+<dt>NumConns</dt>
+<dd><p>The number of connections to reach.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>The atom <code>ok</code> is always returned. It can be safely ignored.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.6</strong>: Function introduced.
+</li>
+</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.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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">Ref</font> <font color="#990000">=</font> <font color="#FF6600">example</font>,
+
+<font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:suspend_listener</font></b>(<font color="#009900">Ref</font>),
+<b><font color="#000000">ranch:wait_for_connections</font></b>(<font color="#009900">Ref</font>, <font color="#FF6600">'=='</font>, <font color="#993399">0</font>),
+<font color="#0000FF">ok</font> <font color="#990000">=</font> <b><font color="#000000">ranch:stop_listener</font></b>(<font color="#009900">Ref</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.stop_listener">ranch:stop_listener(3)</a>, <a href="../ranch.suspend_listener">ranch:suspend_listener(3)</a>, <a href="../ranch.resume_listener">ranch:resume_listener(3)</a>, <a href="../ranch">ranch(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch/index.html b/docs/en/ranch/1.8/manual/ranch/index.html
new file mode 100644
index 00000000..b12eadbc
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch/index.html
@@ -0,0 +1,298 @@
+<!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(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=7" 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(3)</span></h1>
+
+<h2 id="_name">Name</h2>
+<p>ranch - Socket acceptor pool</p>
+<h2 id="_description">Description</h2>
+<p>The module <code>ranch</code> provides functions for starting and manipulating Ranch listeners.</p>
+<h2 id="_exports">Exports</h2>
+<p>Start/stop:</p>
+<ul><li><a href="../ranch.start_listener">ranch:start_listener(3)</a> - Start a listener
+</li>
+<li><a href="../ranch.stop_listener">ranch:stop_listener(3)</a> - Stop a listener
+</li>
+<li><a href="../ranch.child_spec">ranch:child_spec(3)</a> - Build child specifications for a new listener
+</li>
+</ul>
+<p>Suspend/resume:</p>
+<ul><li><a href="../ranch.suspend_listener">ranch:suspend_listener(3)</a> - Suspend a running listener
+</li>
+<li><a href="../ranch.resume_listener">ranch:resume_listener(3)</a> - Resume a suspended listener
+</li>
+<li><a href="../ranch.get_status">ranch:get_status(3)</a> - Get a listener&apos;s running state
+</li>
+</ul>
+<p>Connections:</p>
+<ul><li>ranch:accept_ack(3) - Deprecated in favor of <a href="../ranch.handshake">ranch:handshake(3)</a>
+</li>
+<li><a href="../ranch.handshake">ranch:handshake(3)</a> - Perform the 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
+</li>
+</ul>
+<p>Options:</p>
+<ul><li><a href="../ranch.get_max_connections">ranch:get_max_connections(3)</a> - Get the max number of connections
+</li>
+<li><a href="../ranch.get_protocol_options">ranch:get_protocol_options(3)</a> - Get the current protocol options
+</li>
+<li><a href="../ranch.get_transport_options">ranch:get_transport_options(3)</a> - Get the current transport options
+</li>
+<li><a href="../ranch.set_max_connections">ranch:set_max_connections(3)</a> - Set the max number of connections
+</li>
+<li><a href="../ranch.set_protocol_options">ranch:set_protocol_options(3)</a> - Set the protocol options
+</li>
+<li><a href="../ranch.set_transport_options">ranch:set_transport_options(3)</a> - Set the transport options
+</li>
+</ul>
+<p>Introspection:</p>
+<ul><li><a href="../ranch.get_addr">ranch:get_addr(3)</a> - Get the listening port and IP
+</li>
+<li><a href="../ranch.get_port">ranch:get_port(3)</a> - Get the listening port
+</li>
+<li><a href="../ranch.info">ranch:info(3)</a> - Overview of Ranch listeners
+</li>
+<li><a href="../ranch.procs">ranch:procs(3)</a> - Retrieve pids from a listener
+</li>
+<li><a href="../ranch.wait_for_connections">ranch:wait_for_connections(3)</a> - Wait for a specific number of connections
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">max_conns</font></b>() <font color="#990000">=</font> <b><font color="#000000">non_neg_integer</font></b>() | <font color="#FF6600">infinity</font></tt></pre>
+</div></div>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">opt</font></b>() <font color="#990000">=</font> {<font color="#FF6600">ack_timeout</font>, <b><font color="#000000">timeout</font></b>()}
+ | {<font color="#FF6600">connection_type</font>, <font color="#FF6600">worker</font> | <font color="#FF6600">supervisor</font>}
+ | {<font color="#FF6600">max_connections</font>, <b><font color="#000000">max_conns</font></b>()}
+ | {<font color="#FF6600">num_acceptors</font>, <b><font color="#000000">pos_integer</font></b>()}
+ | {<font color="#000080">shutdown</font>, <b><font color="#000000">timeout</font></b>() | <font color="#FF6600">brutal_kill</font>}
+ | {<font color="#FF6600">socket</font>, <b><font color="#000000">any</font></b>()}</tt></pre>
+</div></div>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">opts</font></b>() <font color="#990000">=</font> <b><font color="#000000">any</font></b>() | #{
+ <font color="#0000FF">connection_type</font> <font color="#990000">=&gt;</font> <font color="#FF6600">worker</font> | <font color="#FF6600">supervisor</font>,
+ <font color="#0000FF">handshake_timeout</font> <font color="#990000">=&gt;</font> <b><font color="#000000">timeout</font></b>(),
+ <font color="#0000FF">max_connections</font> <font color="#990000">=&gt;</font> <b><font color="#000000">max_conns</font></b>(),
+ <font color="#0000FF">logger</font> <font color="#990000">=&gt;</font> <b><font color="#000000">module</font></b>(),
+ <font color="#0000FF">num_acceptors</font> <font color="#990000">=&gt;</font> <b><font color="#000000">pos_integer</font></b>(),
+ <font color="#000080">shutdown</font> <font color="#990000">=&gt;</font> <b><font color="#000000">timeout</font></b>() | <font color="#FF6600">brutal_kill</font>,
+ <font color="#0000FF">socket</font> <font color="#990000">=&gt;</font> <b><font color="#000000">any</font></b>(),
+ <font color="#0000FF">socket_opts</font> <font color="#990000">=&gt;</font> <b><font color="#000000">any</font></b>()
+}</tt></pre>
+</div></div>
+<p>Transport options.</p>
+<p>The transport options are a combination of Ranch-specific options and socket options. Socket options may be given directly (assuming they are not a map and no Ranch-specific option needs to be given) or as part of <code>socket_opts</code>.</p>
+<p>None of the options are required.</p>
+<dl><dt>ack_timeout</dt>
+<dd><p>When <code>ack_timeout</code> is found in a transport options proplist, it is converted to the <code>handshake_timeout</code> option from the map. They are equivalent. The <code>ack_timeout</code> option will be removed in Ranch 2.0.</p>
+</dd>
+<dt>connection_type (worker)</dt>
+<dd><p>Type of process that will handle the connection.</p>
+</dd>
+<dt>handshake_timeout (5000)</dt>
+<dd><p>Maximum allowed time for the <code>ranch:handshake/1,2</code> call to finish.</p>
+</dd>
+<dt>max_connections (1024)</dt>
+<dd><p>Maximum number of active connections. Soft limit. Use <code>infinity</code> to disable the limit entirely.</p>
+</dd>
+<dt>num_acceptors (10)</dt>
+<dd><p>Number of processes that accept connections.</p>
+</dd>
+<dt>shutdown (5000)</dt>
+<dd><p>Maximum allowed time for children to stop on listener shutdown.</p>
+</dd>
+<dt>socket</dt>
+<dd><p>Listening socket opened externally to be used instead of calling <code>Transport:listen/1</code>. This option will be removed in Ranch 2.0. Use a custom transport module acting as a wrapper for <code>ranch_tcp</code> or <code>ranch_ssl</code> instead.</p>
+</dd>
+<dt>socket_opts</dt>
+<dd><p>Socket options given to <code>Transport:listen/1</code>. Please refer to the documentation of the transport module you are using for more details.</p>
+</dd>
+</dl>
+<h3 id="_ref">ref()</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">ref</font></b>() <font color="#990000">=</font> <b><font color="#000000">any</font></b>()</tt></pre>
+</div></div>
+<p>Unique name used to refer to a listener.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.6</strong>: The <code>logger</code> option was added.
+</li>
+<li><strong>1.6</strong>: The <code>opt()</code> type was deprecated in favor of the new <code>opts()</code> type.
+</li>
+</ul>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch_app">ranch(7)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.4/manual/ranch_app/index.html b/docs/en/ranch/1.8/manual/ranch_app/index.html
index b0f12daf..95a21bc1 100644
--- a/docs/en/ranch/1.4/manual/ranch_app/index.html
+++ b/docs/en/ranch/1.8/manual/ranch_app/index.html
@@ -63,16 +63,49 @@
<h1 class="lined-header"><span>ranch(7)</span></h1>
<h2 id="_name">Name</h2>
-<p>ranch - Socket acceptor pool for TCP protocols.</p>
+<p>ranch - Socket acceptor pool for TCP protocols</p>
+<h2 id="_description">Description</h2>
+<p>Ranch is a socket acceptor pool for TCP protocols.</p>
+<p>Ranch manages listeners which are a set of processes that accept and manage connections. The connection&apos;s transport and protocol modules are configured per listener. Listeners can be inspected and reconfigured without interruptions in service.</p>
+<h2 id="_modules">Modules</h2>
+<p>Functions:</p>
+<ul><li><a href="../ranch">ranch(3)</a> - Socket acceptor pool
+</li>
+<li><a href="../ranch_proxy_header">ranch_proxy_header(3)</a> - PROXY protocol
+</li>
+</ul>
+<p>Transports:</p>
+<ul><li><a href="../ranch_ssl">ranch_ssl(3)</a> - SSL transport
+</li>
+<li><a href="../ranch_tcp">ranch_tcp(3)</a> - TCP transport
+</li>
+</ul>
+<p>Behaviors:</p>
+<ul><li><a href="../ranch_protocol">ranch_protocol(3)</a> - Protocol modules
+</li>
+<li><a href="../ranch_transport">ranch_transport(3)</a> - Transport modules
+</li>
+</ul>
<h2 id="_dependencies">Dependencies</h2>
-<p>The <code>ranch</code> application depends on the <code>ssl</code> application to start. It is used for handling secure connections, when the transport is <code>ranch_ssl</code>. It can be disabled if SSL is not used.</p>
+<ul><li>ssl - Secure communication over sockets
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>{<font color="#FF6600">ok</font>, <font color="#990000">_</font>} <font color="#990000">=</font> <b><font color="#000000">application:ensure_all_started</font></b>(<font color="#FF6600">ranch</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
<h2 id="_environment">Environment</h2>
<p>The <code>ranch</code> application defines one application environment configuration parameter.</p>
<dl><dt>profile (false)</dt>
<dd><p>When enabled, Ranch will start <code>eprof</code> profiling automatically.</p>
+<p>You can use the <code>ranch_app:profile_output/0</code> function to stop profiling and output the results to the files <em>procs.profile</em> and <em>total.profile</em>. Do not use in production.</p>
</dd>
</dl>
-<p>You can use the <code>ranch_app:profile_output/0</code> function to stop profiling and output the results to the files <em>procs.profile</em> and <em>total.profile</em>. Do not use in production.</p>
+<h2 id="_see_also">See also</h2>
+<p>ssl(7)</p>
@@ -86,17 +119,17 @@
<h3>
Ranch
- 1.4
+ 1.8
Function Reference
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -110,14 +143,14 @@
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.4/manual/ranch_protocol/index.html b/docs/en/ranch/1.8/manual/ranch_protocol/index.html
index d536f100..9607bb31 100644
--- a/docs/en/ranch/1.4/manual/ranch_protocol/index.html
+++ b/docs/en/ranch/1.8/manual/ranch_protocol/index.html
@@ -63,31 +63,33 @@
<h1 class="lined-header"><span>ranch_protocol(3)</span></h1>
<h2 id="_name">Name</h2>
-<p>ranch_protocol - behaviour for protocol modules</p>
+<p>ranch_protocol - Protocol modules</p>
<h2 id="_description">Description</h2>
-<p>The <code>ranch_protocol</code> behaviour defines the interface used by Ranch protocols.</p>
-<h2 id="_types">Types</h2>
-<p>None.</p>
+<p>The module <code>ranch_protocol</code> defines the interface used by Ranch protocols.</p>
<h2 id="_callbacks">Callbacks</h2>
-<h3 id="_start_link_ref__socket__transport__protoopts______ok__pid_______ok__pid____pid">start_link(Ref, Socket, Transport, ProtoOpts) -&gt; {ok, pid()} | {ok, pid(), pid()}</h3>
-<dl><dt>Ref = ranch:ref()</dt>
-<dd><p>Listener name.</p>
-</dd>
-<dt>Socket = any()</dt>
-<dd><p>Socket for this connection.</p>
-</dd>
-<dt>Transport = module()</dt>
-<dd><p>Transport module for this socket.</p>
-</dd>
-<dt>ProtoOpts = any()</dt>
-<dd><p>Protocol options.</p>
-</dd>
-</dl>
-<p>Start a new connection process for the given socket.</p>
+<p>Ranch protocols implement the following interface:</p>
+<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">start_link</font></b>(<font color="#009900">Ref</font> <font color="#990000">::</font> <b><font color="#000000">ranch:ref</font></b>(),
+ <font color="#990000">_</font>,
+ <font color="#009900">Transport</font> <font color="#990000">::</font> <b><font color="#000000">module</font></b>(),
+ <font color="#009900">ProtoOpts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">ConnPid</font> <font color="#990000">::</font> <b><font color="#000080">pid</font></b>()}
+ | {<font color="#FF6600">ok</font>, <font color="#009900">SupPid</font> <font color="#990000">::</font> <b><font color="#000080">pid</font></b>(), <font color="#009900">ConnPid</font> <font color="#990000">::</font> <b><font color="#000080">pid</font></b>()}</tt></pre>
+</div></div>
+<p>Start a new connection process.</p>
<p>The only purpose of this callback is to start a process that will handle the socket. It must spawn the process, link and then return the new pid. This function will always be called from inside a supervisor.</p>
<p>This callback can also return two pids. The first pid is the pid of the process that will be supervised. The second pid is the pid of the process that will receive ownership of the socket. This second process must be a child of the first. This form is only available when <code>connection_type</code> is set to <code>supervisor</code>.</p>
<p>If any other value is returned, the supervisor will close the socket and assume no process has been started.</p>
<p>Do not perform any operations in this callback, as this would block the supervisor responsible for starting connection processes and degrade performance severely.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.6</strong>: The second argument <code>Socket</code> was deprecated and will be removed in Ranch 2.0. The socket should be obtained by calling <a href="../ranch.handshake">ranch:handshake(3)</a>.
+</li>
+</ul>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch.handshake">ranch:handshake(3)</a>, <a href="../ranch_app">ranch(7)</a></p>
@@ -101,17 +103,17 @@
<h3>
Ranch
- 1.4
+ 1.8
Function Reference
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -125,14 +127,14 @@
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.8/manual/ranch_proxy_header.header/index.html b/docs/en/ranch/1.8/manual/ranch_proxy_header.header/index.html
new file mode 100644
index 00000000..a8d3e9d0
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch_proxy_header.header/index.html
@@ -0,0 +1,220 @@
+<!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_proxy_header:header(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=7" 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_proxy_header:header(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">header</font></b>(<font color="#009900">ProxyInfo</font>) <font color="#990000">-&gt;</font> <b><font color="#000000">header</font></b>(<font color="#009900">ProxyInfo</font>, #{})
+<b><font color="#000000">header</font></b>(<font color="#009900">ProxyInfo</font>, <font color="#009900">BuildOpts</font>) <font color="#990000">-&gt;</font> <b><font color="#000000">iodata</font></b>()
+
+<font color="#009900">ProxyInfo</font> <font color="#990000">::</font> <b><font color="#000000">ranch_proxy_header:proxy_info</font></b>()
+<font color="#009900">BuildOpts</font> <font color="#990000">::</font> #{
+ <font color="#0000FF">checksum</font> <font color="#990000">=&gt;</font> <font color="#FF6600">crc32c</font>,
+ <font color="#0000FF">padding</font> <font color="#990000">=&gt;</font> <b><font color="#000000">pos_integer</font></b>() <i><font color="#9A1900">%% &gt;= 3</font></i>
+}</tt></pre>
+</div></div>
+<p>Build a PROXY protocol header.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>ProxyInfo</dt>
+<dd><p>The proxy information to encode.</p>
+</dd>
+<dt>BuildOpts</dt>
+<dd><p>Options to control whether to add a checksum or padding should be included in the encoded PROXY protocol header.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>The PROXY protocol header is returned.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.7</strong>: Function introduced.
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">ProxyInfo</font> <font color="#990000">=</font> #{
+ <font color="#0000FF">version</font> <font color="#990000">=&gt;</font> <font color="#993399">2</font>,
+ <b><font color="#000080">command</font></b> <font color="#990000">=&gt;</font> <font color="#FF6600">proxy</font>,
+
+ <font color="#0000FF">transport_family</font> <font color="#990000">=&gt;</font> <font color="#FF6600">ipv4</font>,
+ <font color="#0000FF">transport_protocol</font> <font color="#990000">=&gt;</font> <font color="#FF6600">stream</font>,
+
+ <font color="#0000FF">src_address</font> <font color="#990000">=&gt;</font> {<font color="#993399">192</font>, <font color="#993399">168</font>, <font color="#993399">1</font>, <font color="#993399">11</font>},
+ <font color="#0000FF">src_port</font> <font color="#990000">=&gt;</font> <font color="#993399">54321</font>,
+ <font color="#0000FF">dest_address</font> <font color="#990000">=&gt;</font> {<font color="#993399">192</font>, <font color="#993399">168</font>, <font color="#993399">1</font>, <font color="#993399">42</font>},
+ <font color="#0000FF">dest_port</font> <font color="#990000">=&gt;</font> <font color="#993399">443</font>
+},
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><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="#0000FF">checksum</font> <font color="#990000">=&gt;</font> <font color="#FF6600">crc32c</font>,
+ <font color="#0000FF">padding</font> <font color="#990000">=&gt;</font> <font color="#993399">7</font>
+})<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch_proxy_header.header">ranch_proxy_header:header(3)</a>, <a href="../ranch_proxy_header">ranch_proxy_header(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch_proxy_header.parse/index.html b/docs/en/ranch/1.8/manual/ranch_proxy_header.parse/index.html
new file mode 100644
index 00000000..2489ce91
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch_proxy_header.parse/index.html
@@ -0,0 +1,191 @@
+<!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_proxy_header:parse(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=7" 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_proxy_header:parse(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">parse</font></b>(<font color="#009900">Data</font> <font color="#990000">::</font> <b><font color="#000080">binary</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <b><font color="#000000">ranch_proxy_header:proxy_info</font></b>(), <font color="#009900">Rest</font> <font color="#990000">::</font> <b><font color="#000080">binary</font></b>()}
+ | {<font color="#FF6600">error</font>, <font color="#009900">HumanReadable</font> <font color="#990000">::</font> <b><font color="#000080">atom</font></b>()}</tt></pre>
+</div></div>
+<p>Parse a PROXY protocol header.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Data</dt>
+<dd><p>The PROXY protocol header optionally followed by more data.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>An <code>ok</code> tuple is returned on success, containing the proxy information found in the header and the rest of the data if more was provided.</p>
+<p>An <code>error</code> tuple is returned when a protocol error is detected. It contains a human readable message about the error.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.7</strong>: Function introduced.
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>{<font color="#FF6600">ok</font> <font color="#009900">ProxyInfo</font>, <font color="#009900">Rest</font>} <font color="#990000">=</font> <b><font color="#000000">ranch_proxy_header:parse</font></b>(<font color="#009900">Data</font>)<font color="#990000">.</font></tt></pre>
+</div></div>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch_proxy_header.header">ranch_proxy_header:header(3)</a>, <a href="../ranch_proxy_header">ranch_proxy_header(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch_proxy_header/index.html b/docs/en/ranch/1.8/manual/ranch_proxy_header/index.html
new file mode 100644
index 00000000..3aae5bda
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch_proxy_header/index.html
@@ -0,0 +1,274 @@
+<!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_proxy_header(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=7" 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_proxy_header(3)</span></h1>
+
+<h2 id="_name">Name</h2>
+<p>ranch_proxy_header - PROXY protocol</p>
+<h2 id="_description">Description</h2>
+<p>The module <code>ranch_proxy_header</code> provides functions for parsing and building the PROXY protocol header.</p>
+<h2 id="_exports">Exports</h2>
+<ul><li><a href="../ranch_proxy_header.parse">ranch_proxy_header:parse(3)</a> - Parse a PROXY protocol header
+</li>
+<li><a href="../ranch_proxy_header.header">ranch_proxy_header:header(3)</a> - Build a PROXY protocol header
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">proxy_info</font></b>() <font color="#990000">=</font> #{
+ <i><font color="#9A1900">%% Mandatory part.</font></i>
+ <font color="#FF6600">version</font> <font color="#990000">:=</font> <font color="#993399">1</font> | <font color="#993399">2</font>,
+ <font color="#FF6600">command</font> <font color="#990000">:=</font> <font color="#FF6600">local</font> | <font color="#FF6600">proxy</font>,
+ <font color="#0000FF">transport_family</font> <font color="#990000">=&gt;</font> <font color="#000080">undefined</font> | <font color="#FF6600">ipv4</font> | <font color="#FF6600">ipv6</font> | <font color="#FF6600">unix</font>,
+ <font color="#0000FF">transport_protocol</font> <font color="#990000">=&gt;</font> <font color="#000080">undefined</font> | <font color="#FF6600">stream</font> | <font color="#FF6600">dgram</font>,
+
+ <i><font color="#9A1900">%% Addresses.</font></i>
+ <font color="#0000FF">src_address</font> <font color="#990000">=&gt;</font> <b><font color="#000000">inet:ip_address</font></b>() | <b><font color="#000080">binary</font></b>(),
+ <font color="#0000FF">src_port</font> <font color="#990000">=&gt;</font> <b><font color="#000000">inet:port_number</font></b>(),
+ <font color="#0000FF">dest_address</font> <font color="#990000">=&gt;</font> <b><font color="#000000">inet:ip_address</font></b>() | <b><font color="#000080">binary</font></b>(),
+ <font color="#0000FF">dest_port</font> <font color="#990000">=&gt;</font> <b><font color="#000000">inet:port_number</font></b>(),
+
+ <i><font color="#9A1900">%% Extra TLV-encoded data.</font></i>
+ <font color="#0000FF">alpn</font> <font color="#990000">=&gt;</font> <b><font color="#000080">binary</font></b>(), <i><font color="#9A1900">%% US-ASCII.</font></i>
+ <font color="#0000FF">authority</font> <font color="#990000">=&gt;</font> <b><font color="#000080">binary</font></b>(), <i><font color="#9A1900">%% UTF-8.</font></i>
+ <font color="#0000FF">netns</font> <font color="#990000">=&gt;</font> <b><font color="#000080">binary</font></b>(), <i><font color="#9A1900">%% US-ASCII.</font></i>
+ <font color="#0000FF">ssl</font> <font color="#990000">=&gt;</font> #{
+ <font color="#FF6600">client</font> <font color="#990000">:=</font> [<font color="#FF6600">ssl</font> | <font color="#FF6600">cert_conn</font> | <font color="#FF6600">cert_sess</font>],
+ <font color="#FF6600">verified</font> <font color="#990000">:=</font> <b><font color="#000000">boolean</font></b>(),
+ <font color="#0000FF">version</font> <font color="#990000">=&gt;</font> <b><font color="#000080">binary</font></b>(), <i><font color="#9A1900">%% US-ASCII.</font></i>
+ <font color="#0000FF">cipher</font> <font color="#990000">=&gt;</font> <b><font color="#000080">binary</font></b>(), <i><font color="#9A1900">%% US-ASCII.</font></i>
+ <font color="#0000FF">sig_alg</font> <font color="#990000">=&gt;</font> <b><font color="#000080">binary</font></b>(), <i><font color="#9A1900">%% US-ASCII.</font></i>
+ <font color="#0000FF">key_alg</font> <font color="#990000">=&gt;</font> <b><font color="#000080">binary</font></b>(), <i><font color="#9A1900">%% US-ASCII.</font></i>
+ <font color="#0000FF">cn</font> <font color="#990000">=&gt;</font> <b><font color="#000080">binary</font></b>() <i><font color="#9A1900">%% UTF-8.</font></i>
+ },
+
+ <i><font color="#9A1900">%% Unknown TLVs can't be parsed so the raw data is given.</font></i>
+ <font color="#0000FF">raw_tlvs</font> <font color="#990000">=&gt;</font> [{<font color="#993399">0</font><font color="#990000">..</font><font color="#993399">255</font>, <b><font color="#000080">binary</font></b>()}]
+}<font color="#990000">.</font></tt></pre>
+</div></div>
+<p>The PROXY protocol information.</p>
+<p>The following fields may be found, although most of them are optional:</p>
+<dl><dt>version</dt>
+<dd><p>The PROXY protocol version used.</p>
+</dd>
+<dt>command</dt>
+<dd><p><code>proxy</code> is used for proxied connections. <code>local</code> for non-proxied connections. Those do not have any additional information.</p>
+</dd>
+<dt>transport_family</dt>
+<dd><p>The transport family of the original connection.</p>
+</dd>
+<dt>transport_protocol</dt>
+<dd><p>The transport protocol of the original connection.</p>
+</dd>
+<dt>src_address</dt>
+<dd><p>The source address of the original connection. This is the original address of the client.</p>
+</dd>
+<dt>src_port</dt>
+<dd><p>The source port of the original connection. This is the port the client opened on its end for the connection. It is not defined for UNIX domain sockets.</p>
+</dd>
+<dt>dest_address</dt>
+<dd><p>The destination address of the original connection.</p>
+</dd>
+<dt>dest_port</dt>
+<dd><p>The destination port of the original connection. It is not defined for UNIX domain sockets.</p>
+</dd>
+<dt>alpn</dt>
+<dd><p>The upper layer protocol in use over the connection. This is typically negotiated via the ALPN extension for TLS.</p>
+</dd>
+<dt>authority</dt>
+<dd><p>The host name serving as authority for the connection. This is typically passed using the SNI extension for TLS.</p>
+</dd>
+<dt>netns</dt>
+<dd><p>The namespace&apos;s name for the original connection.</p>
+</dd>
+<dt>ssl</dt>
+<dd><p>Various informations pertaining to the original SSL/TLS connection.</p>
+<dl><dt>client</dt>
+<dd><p>A list containing a number of flags. <code>ssl</code> indicates that the client connected over SSL/TLS. <code>cert_conn</code> indicates that the client provided a certificate over the original connection. <code>cert_sess</code> indicates that the client provided a certificate at least once over the TLS session this connection belongs to.</p>
+</dd>
+<dt>verified</dt>
+<dd><p>Whether the client presented a certificate and it was successfully verified.</p>
+</dd>
+<dt>version</dt>
+<dd><p>The US-ASCII string containing the SSL/TLS version used for the original connection.</p>
+</dd>
+<dt>cipher</dt>
+<dd><p>The US-ASCII string name of the cipher used.</p>
+</dd>
+<dt>sig_alg</dt>
+<dd><p>The US-ASCII string name of the algorithm used to sign the certificate provided by the client.</p>
+</dd>
+<dt>key_alg</dt>
+<dd><p>The US-ASCII string name of the algorithm used to generate the key of the certificate provided by the client.</p>
+</dd>
+<dt>cn</dt>
+<dd><p>The UTF-8 string representation of the Common Name field of the client certificate&apos;s Distinguished Name.</p>
+</dd>
+</dl>
+</dd>
+<dt>raw_tlvs</dt>
+<dd><p>The non-standard TLVs that Ranch was not able to parse.</p>
+</dd>
+</dl>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.7</strong>: Module introduced.
+</li>
+</ul>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch_app">ranch(7)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.4/manual/ranch_ssl/index.html b/docs/en/ranch/1.8/manual/ranch_ssl/index.html
index 86b23fbf..ff227404 100644
--- a/docs/en/ranch/1.4/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/1.8/manual/ranch_ssl/index.html
@@ -63,59 +63,75 @@
<h1 class="lined-header"><span>ranch_ssl(3)</span></h1>
<h2 id="_name">Name</h2>
-<p>ranch_ssl - SSL transport module</p>
+<p>ranch_ssl - SSL transport</p>
<h2 id="_description">Description</h2>
-<p>The <code>ranch_ssl</code> module implements an SSL Ranch transport.</p>
+<p>The module <code>ranch_ssl</code> implements an SSL Ranch transport.</p>
+<h2 id="_exports">Exports</h2>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">opt</font></b>() <font color="#990000">::</font> <b><font color="#000000">ranch_tcp:opt</font></b>() | <b><font color="#000000">ssl_opt</font></b>()</tt></pre>
+</div></div>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">opts</font></b>() <font color="#990000">::</font> [<b><font color="#000000">opt</font></b>()]</tt></pre>
+</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.9
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">ssl_opt</font></b>() <font color="#990000">=</font> {<font color="#FF6600">alpn_preferred_protocols</font>, [<b><font color="#000080">binary</font></b>()]}
- | {<font color="#FF6600">beast_mitigation</font>, <font color="#FF6600">one_n_minus_one</font> | <font color="#FF6600">zero_n</font> | <font color="#FF6600">disabled</font>}
- | {<font color="#FF6600">cacertfile</font>, <b><font color="#000000">string</font></b>()}
- | {<font color="#FF6600">cacerts</font>, [<b><font color="#000000">public_key:der_encoded</font></b>()]}
- | {<font color="#FF6600">cert</font>, <b><font color="#000000">public_key:der_encoded</font></b>()}
- | {<font color="#FF6600">certfile</font>, <b><font color="#000000">string</font></b>()}
- | {<font color="#FF6600">ciphers</font>, [<b><font color="#000000">ssl:erl_cipher_suite</font></b>()] | <b><font color="#000000">string</font></b>()}
- | {<font color="#FF6600">client_renegotiation</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">crl_cache</font>, {<b><font color="#000000">module</font></b>(), {<font color="#FF6600">internal</font> | <b><font color="#000000">any</font></b>(), <b><font color="#000080">list</font></b>()}}}
- | {<font color="#FF6600">crl_check</font>, <b><font color="#000000">boolean</font></b>() | <font color="#FF6600">peer</font> | <font color="#FF6600">best_effort</font>}
- | {<font color="#FF6600">depth</font>, <font color="#993399">0</font><font color="#990000">..</font><font color="#993399">255</font>}
- | {<font color="#FF6600">dh</font>, <b><font color="#000000">public_key:der_encoded</font></b>()}
- | {<font color="#FF6600">dhfile</font>, <b><font color="#000000">string</font></b>()}
- | {<font color="#FF6600">fail_if_no_peer_cert</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">hibernate_after</font>, <b><font color="#000080">integer</font></b>() | <font color="#000080">undefined</font>}
- | {<font color="#FF6600">honor_cipher_order</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">key</font>, {<font color="#FF6600">'RSAPrivateKey'</font> | <font color="#FF6600">'DSAPrivateKey'</font> | <font color="#FF6600">'PrivateKeyInfo'</font>, <b><font color="#000000">public_key:der_encoded</font></b>()}}
- | {<font color="#FF6600">keyfile</font>, <b><font color="#000000">string</font></b>()}
- | {<font color="#FF6600">log_alert</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">next_protocols_advertised</font>, [<b><font color="#000080">binary</font></b>()]}
- | {<font color="#FF6600">padding_check</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">partial_chain</font>, <b><font color="#0000FF">fun</font></b>(([<b><font color="#000000">public_key:der_encoded</font></b>()]) <font color="#990000">-&gt;</font> {<font color="#FF6600">trusted_ca</font>, <b><font color="#000000">public_key:der_encoded</font></b>()} | <font color="#FF6600">unknown_ca</font>)}
- | {<font color="#FF6600">password</font>, <b><font color="#000000">string</font></b>()}
- | {<font color="#FF6600">psk_identity</font>, <b><font color="#000000">string</font></b>()}
- | {<font color="#FF6600">reuse_session</font>, <b><font color="#0000FF">fun</font></b>()}
- | {<font color="#FF6600">reuse_sessions</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">secure_renegotiate</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">signature_algs</font>, [{<b><font color="#000080">atom</font></b>(), <b><font color="#000080">atom</font></b>()}]}
- | {<font color="#FF6600">sni_fun</font>, <b><font color="#0000FF">fun</font></b>()}
- | {<font color="#FF6600">sni_hosts</font>, [{<b><font color="#000000">string</font></b>(), <b><font color="#000000">ssl_opt</font></b>()}]}
- | {<font color="#FF6600">user_lookup_fun</font>, {<b><font color="#0000FF">fun</font></b>(), <b><font color="#000000">any</font></b>()}}
- | {<font color="#FF6600">v2_hello_compatible</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">verify</font>, <b><font color="#000000">ssl:verify_type</font></b>()}
- | {<font color="#FF6600">verify_fun</font>, {<b><font color="#0000FF">fun</font></b>(), <b><font color="#000000">any</font></b>()}}
- | {<font color="#FF6600">versions</font>, [<b><font color="#000080">atom</font></b>()]}<font color="#990000">.</font></tt></pre>
+ | {<font color="#FF6600">beast_mitigation</font>, <font color="#FF6600">one_n_minus_one</font> | <font color="#FF6600">zero_n</font> | <font color="#FF6600">disabled</font>}
+ | {<font color="#FF6600">cacertfile</font>, <b><font color="#000000">string</font></b>()}
+ | {<font color="#FF6600">cacerts</font>, [<b><font color="#000000">public_key:der_encoded</font></b>()]}
+ | {<font color="#FF6600">cert</font>, <b><font color="#000000">public_key:der_encoded</font></b>()}
+ | {<font color="#FF6600">certfile</font>, <b><font color="#000000">string</font></b>()}
+ | {<font color="#FF6600">ciphers</font>, [<b><font color="#000000">ssl:erl_cipher_suite</font></b>()] | <b><font color="#000000">string</font></b>()}
+ | {<font color="#FF6600">client_renegotiation</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">crl_cache</font>, {<b><font color="#000000">module</font></b>(), {<font color="#FF6600">internal</font> | <b><font color="#000000">any</font></b>(), <b><font color="#000080">list</font></b>()}}}
+ | {<font color="#FF6600">crl_check</font>, <b><font color="#000000">boolean</font></b>() | <font color="#FF6600">peer</font> | <font color="#FF6600">best_effort</font>}
+ | {<font color="#FF6600">depth</font>, <font color="#993399">0</font><font color="#990000">..</font><font color="#993399">255</font>}
+ | {<font color="#FF6600">dh</font>, <b><font color="#000000">public_key:der_encoded</font></b>()}
+ | {<font color="#FF6600">dhfile</font>, <b><font color="#000000">string</font></b>()}
+ | {<font color="#FF6600">fail_if_no_peer_cert</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">hibernate_after</font>, <b><font color="#000080">integer</font></b>() | <font color="#000080">undefined</font>}
+ | {<font color="#FF6600">honor_cipher_order</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">key</font>, {<font color="#FF6600">'RSAPrivateKey'</font> | <font color="#FF6600">'DSAPrivateKey'</font> | <font color="#FF6600">'PrivateKeyInfo'</font>,
+ <b><font color="#000000">public_key:der_encoded</font></b>()}}
+ | {<font color="#FF6600">keyfile</font>, <b><font color="#000000">string</font></b>()}
+ | {<font color="#FF6600">log_alert</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">next_protocols_advertised</font>, [<b><font color="#000080">binary</font></b>()]}
+ | {<font color="#FF6600">padding_check</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">partial_chain</font>, <b><font color="#0000FF">fun</font></b>(([<b><font color="#000000">public_key:der_encoded</font></b>()])
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">trusted_ca</font>, <b><font color="#000000">public_key:der_encoded</font></b>()} | <font color="#FF6600">unknown_ca</font>)}
+ | {<font color="#FF6600">password</font>, <b><font color="#000000">string</font></b>()}
+ | {<font color="#FF6600">psk_identity</font>, <b><font color="#000000">string</font></b>()}
+ | {<font color="#FF6600">reuse_session</font>, <b><font color="#0000FF">fun</font></b>()}
+ | {<font color="#FF6600">reuse_sessions</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">secure_renegotiate</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">signature_algs</font>, [{<b><font color="#000080">atom</font></b>(), <b><font color="#000080">atom</font></b>()}]}
+ | {<font color="#FF6600">sni_fun</font>, <b><font color="#0000FF">fun</font></b>()}
+ | {<font color="#FF6600">sni_hosts</font>, [{<b><font color="#000000">string</font></b>(), <b><font color="#000000">ssl_opt</font></b>()}]}
+ | {<font color="#FF6600">user_lookup_fun</font>, {<b><font color="#0000FF">fun</font></b>(), <b><font color="#000000">any</font></b>()}}
+ | {<font color="#FF6600">v2_hello_compatible</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">verify</font>, <b><font color="#000000">ssl:verify_type</font></b>()}
+ | {<font color="#FF6600">verify_fun</font>, {<b><font color="#0000FF">fun</font></b>(), <b><font color="#000000">any</font></b>()}}
+ | {<font color="#FF6600">versions</font>, [<b><font color="#000080">atom</font></b>()]}</tt></pre>
</div></div>
<p>SSL-specific listen options.</p>
-<h3 id="_opt_____ranch_tcp_opt_____ssl_opt">opt() = ranch_tcp:opt() | ssl_opt()</h3>
-<p>Listen options.</p>
-<h3 id="_opts______opt">opts() = [opt()]</h3>
-<p>List of listen options.</p>
-<h2 id="_option_descriptions">Option descriptions</h2>
-<p>Specifying a certificate is mandatory, either through the <code>cert</code> or the <code>certfile</code> option. None of the other options are required.</p>
-<p>The default value is given next to the option name.</p>
+<p>Specifying a certificate is mandatory, either through the <code>cert</code> or <code>certfile</code> option, or by configuring SNI. None of the other options are required.</p>
+<p>The default value is given next to the option name:</p>
<dl><dt>alpn_preferred_protocols</dt>
<dd><p>Perform Application-Layer Protocol Negotiation with the given list of preferred protocols.</p>
</dd>
@@ -168,7 +184,7 @@ http://www.gnu.org/software/src-highlite -->
<dd><p>DER encoded user private key.</p>
</dd>
<dt>keyfile</dt>
-<dd><p>Path to the PEM encoded private key file, if different than the certfile.</p>
+<dd><p>Path to the PEM encoded private key file, if different from the certfile.</p>
</dd>
<dt>log_alert (true)</dt>
<dd><p>If false, error reports will not be displayed.</p>
@@ -176,9 +192,6 @@ http://www.gnu.org/software/src-highlite -->
<dt>next_protocols_advertised</dt>
<dd><p>List of protocols to send to the client if it supports the Next Protocol extension.</p>
</dd>
-<dt>nodelay (true)</dt>
-<dd><p>Whether to enable TCP_NODELAY.</p>
-</dd>
<dt>padding_check</dt>
<dd><p>Allow disabling the block cipher padding check for TLS-1.0 to be able to interoperate with legacy software.</p>
</dd>
@@ -225,10 +238,10 @@ http://www.gnu.org/software/src-highlite -->
<dd><p>TLS protocol versions that will be supported.</p>
</dd>
</dl>
-<p>Note that the client will not send a certificate unless the value for the <code>verify</code> option is set to <code>verify_peer</code>. This means that the <code>fail_if_no_peer_cert</code> only apply when combined with the <code>verify</code> option. The <code>verify_fun</code> option allows greater control over the client certificate validation.</p>
+<p>Note that the client will not send a certificate unless the value for the <code>verify</code> option is set to <code>verify_peer</code>. This means that <code>fail_if_no_peer_cert</code> only applies when combined with the <code>verify</code> option. The <code>verify_fun</code> option allows greater control over the client certificate validation.</p>
<p>The options <code>sni_fun</code> and <code>sni_hosts</code> are mutually exclusive.</p>
-<h2 id="_exports">Exports</h2>
-<p>None.</p>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch_app">ranch(7)</a>, <a href="../ranch_transport">ranch_transport(3)</a>, <a href="../ranch_tcp">ranch_tcp(3)</a>, ssl(3)</p>
@@ -242,17 +255,17 @@ http://www.gnu.org/software/src-highlite -->
<h3>
Ranch
- 1.4
+ 1.8
Function Reference
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -266,14 +279,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.4/manual/ranch_tcp/index.html b/docs/en/ranch/1.8/manual/ranch_tcp/index.html
index 3a409a8c..e23ed610 100644
--- a/docs/en/ranch/1.4/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/1.8/manual/ranch_tcp/index.html
@@ -63,10 +63,12 @@
<h1 class="lined-header"><span>ranch_tcp(3)</span></h1>
<h2 id="_name">Name</h2>
-<p>ranch_tcp - TCP transport module</p>
+<p>ranch_tcp - TCP transport</p>
<h2 id="_description">Description</h2>
-<p>The <code>ranch_tcp</code> module implements a TCP Ranch transport.</p>
-<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>
+<p>The module <code>ranch_tcp</code> implements a TCP Ranch transport.</p>
+<p>The function <code>sendfile</code> may not work correctly when used against files stored in a VirtualBox shared folder.</p>
+<h2 id="_exports">Exports</h2>
+<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.9
@@ -74,38 +76,35 @@ by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><b><font color="#000000">opt</font></b>() <font color="#990000">=</font> {<font color="#FF6600">backlog</font>, <b><font color="#000000">non_neg_integer</font></b>()}
- | {<font color="#FF6600">buffer</font>, <b><font color="#000000">non_neg_integer</font></b>()}
- | {<font color="#FF6600">delay_send</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">dontroute</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">exit_on_close</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">fd</font>, <b><font color="#000000">non_neg_integer</font></b>()}
- | {<font color="#FF6600">high_msgq_watermark</font>, <b><font color="#000000">non_neg_integer</font></b>()}
- | {<font color="#FF6600">high_watermark</font>, <b><font color="#000000">non_neg_integer</font></b>()}
- | <font color="#FF6600">inet</font>
- | <font color="#FF6600">inet6</font>
- | {<font color="#FF6600">ip</font>, <b><font color="#000000">inet:ip_address</font></b>()}
- | {<font color="#FF6600">ipv6_v6only</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">keepalive</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">linger</font>, {<b><font color="#000000">boolean</font></b>(), <b><font color="#000000">non_neg_integer</font></b>()}}
- | {<font color="#FF6600">low_msgq_watermark</font>, <b><font color="#000000">non_neg_integer</font></b>()}
- | {<font color="#FF6600">low_watermark</font>, <b><font color="#000000">non_neg_integer</font></b>()}
- | {<font color="#FF6600">nodelay</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">port</font>, <b><font color="#000000">inet:port_number</font></b>()}
- | {<b><font color="#000080">priority</font></b>, <b><font color="#000080">integer</font></b>()}
- | {<font color="#FF6600">raw</font>, <b><font color="#000000">non_neg_integer</font></b>(), <b><font color="#000000">non_neg_integer</font></b>(), <b><font color="#000080">binary</font></b>()}
- | {<font color="#FF6600">recbuf</font>, <b><font color="#000000">non_neg_integer</font></b>()}
- | {<font color="#FF6600">send_timeout</font>, <b><font color="#000000">timeout</font></b>()}
- | {<font color="#FF6600">send_timeout_close</font>, <b><font color="#000000">boolean</font></b>()}
- | {<font color="#FF6600">sndbuf</font>, <b><font color="#000000">non_neg_integer</font></b>()}
- | {<font color="#FF6600">tos</font>, <b><font color="#000080">integer</font></b>()}</tt></pre>
+ | {<font color="#FF6600">buffer</font>, <b><font color="#000000">non_neg_integer</font></b>()}
+ | {<font color="#FF6600">delay_send</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">dontroute</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">exit_on_close</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">fd</font>, <b><font color="#000000">non_neg_integer</font></b>()}
+ | {<font color="#FF6600">high_msgq_watermark</font>, <b><font color="#000000">non_neg_integer</font></b>()}
+ | {<font color="#FF6600">high_watermark</font>, <b><font color="#000000">non_neg_integer</font></b>()}
+ | <font color="#FF6600">inet</font>
+ | <font color="#FF6600">inet6</font>
+ | {<font color="#FF6600">ip</font>, <b><font color="#000000">inet:ip_address</font></b>()}
+ | {<font color="#FF6600">ipv6_v6only</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">keepalive</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">linger</font>, {<b><font color="#000000">boolean</font></b>(), <b><font color="#000000">non_neg_integer</font></b>()}}
+ | {<font color="#FF6600">low_msgq_watermark</font>, <b><font color="#000000">non_neg_integer</font></b>()}
+ | {<font color="#FF6600">low_watermark</font>, <b><font color="#000000">non_neg_integer</font></b>()}
+ | {<font color="#FF6600">nodelay</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">port</font>, <b><font color="#000000">inet:port_number</font></b>()}
+ | {<b><font color="#000080">priority</font></b>, <b><font color="#000080">integer</font></b>()}
+ | {<font color="#FF6600">raw</font>, <b><font color="#000000">non_neg_integer</font></b>(), <b><font color="#000000">non_neg_integer</font></b>(), <b><font color="#000080">binary</font></b>()}
+ | {<font color="#FF6600">recbuf</font>, <b><font color="#000000">non_neg_integer</font></b>()}
+ | {<font color="#FF6600">send_timeout</font>, <b><font color="#000000">timeout</font></b>()}
+ | {<font color="#FF6600">send_timeout_close</font>, <b><font color="#000000">boolean</font></b>()}
+ | {<font color="#FF6600">sndbuf</font>, <b><font color="#000000">non_neg_integer</font></b>()}
+ | {<font color="#FF6600">tos</font>, <b><font color="#000080">integer</font></b>()}</tt></pre>
</div></div>
<p>Listen options.</p>
-<p>This does not represent the entirety of the options that can be set on the socket, but only the options that may be set independently of protocol implementation.</p>
-<h3 id="_opts______opt">opts() = [opt()]</h3>
-<p>List of listen options.</p>
-<h2 id="_option_descriptions">Option descriptions</h2>
+<p>Note that additional options may be set by the protocol module using <code>Transport:setopts/2</code>.</p>
<p>None of the options are required.</p>
-<p>Please consult the <code>gen_tcp</code> and <code>inet</code> manuals for a more thorough description of these options. This manual only aims to provide a short description along with what the defaults are. Defaults may be different in Ranch compared to <code>gen_tcp</code>. Defaults are given next to the option name.</p>
+<p>Please consult the <code>gen_tcp</code> and <code>inet</code> manuals for a more thorough description of these options. This manual only aims to provide a short description along with what the defaults are. Defaults may be different in Ranch compared to <code>gen_tcp</code>. Defaults are given next to the option name:</p>
<dl><dt>backlog (1024)</dt>
<dd><p>Max length of the queue of pending connections.</p>
</dd>
@@ -113,7 +112,7 @@ http://www.gnu.org/software/src-highlite -->
<dd><p>Size of the buffer used by the Erlang driver. Default is system-dependent.</p>
</dd>
<dt>delay_send (false)</dt>
-<dd><p>Always queue packets before sending, to send fewer, larger packets over the network.</p>
+<dd><p>Always queue data before sending, to send fewer, larger packets over the network.</p>
</dd>
<dt>dontroute (false)</dt>
<dd><p>Don&apos;t send via a gateway, only send to directly connected hosts.</p>
@@ -125,7 +124,7 @@ http://www.gnu.org/software/src-highlite -->
<dd><p>File descriptor of the socket, if it was opened externally.</p>
</dd>
<dt>high_msgq_watermark (8192)</dt>
-<dd><p>Limit in the amount of data in the socket message queue before the socket queue becomes busy.</p>
+<dd><p>Limit in the amount of data in the socket message queue before the queue becomes busy.</p>
</dd>
<dt>high_watermark (8192)</dt>
<dd><p>Limit in the amount of data in the ERTS socket implementation&apos;s queue before the socket becomes busy.</p>
@@ -149,7 +148,7 @@ http://www.gnu.org/software/src-highlite -->
<dd><p>Whether to wait and how long to flush data sent before closing the socket.</p>
</dd>
<dt>low_msgq_watermark (4096)</dt>
-<dd><p>Amount of data in the socket message queue before the socket queue leaves busy state.</p>
+<dd><p>Amount of data in the socket message queue before the queue leaves busy state.</p>
</dd>
<dt>low_watermark (4096)</dt>
<dd><p>Amount of data in the ERTS socket implementation&apos;s queue before the socket leaves busy state.</p>
@@ -161,7 +160,7 @@ http://www.gnu.org/software/src-highlite -->
<dd><p>TCP port number to listen on. 0 means a random port will be used.</p>
</dd>
<dt>priority (0)</dt>
-<dd><p>Priority value for all packets to be sent by this socket.</p>
+<dd><p>Priority value for all packets to be sent on this socket.</p>
</dd>
<dt>recbuf</dt>
<dd><p>Minimum size of the socket&apos;s receive buffer. Default is system-dependent.</p>
@@ -180,8 +179,16 @@ http://www.gnu.org/software/src-highlite -->
</dd>
</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>
-<h2 id="_exports">Exports</h2>
-<p>None.</p>
+<h3 id="_opts">opts()</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">opts</font></b>() <font color="#990000">::</font> [<b><font color="#000000">opt</font></b>()]</tt></pre>
+</div></div>
+<p>List of listen options.</p>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch_app">ranch(7)</a>, <a href="../ranch_transport">ranch_transport(3)</a>, <a href="../ranch_ssl">ranch_ssl(3)</a>, gen_tcp(3), inet(3)</p>
@@ -195,17 +202,17 @@ http://www.gnu.org/software/src-highlite -->
<h3>
Ranch
- 1.4
+ 1.8
Function Reference
</h3>
<ul>
- <li><a href="/docs/en/ranch/1.4/guide">User Guide</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
- <li><a href="/docs/en/ranch/1.4/manual">Function Reference</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">Function Reference</a></li>
</ul>
@@ -219,14 +226,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/1.8/manual/ranch_transport.sendfile/index.html b/docs/en/ranch/1.8/manual/ranch_transport.sendfile/index.html
new file mode 100644
index 00000000..86134512
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch_transport.sendfile/index.html
@@ -0,0 +1,220 @@
+<!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_transport:sendfile(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=7" 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_transport:sendfile(3)</span></h1>
+
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">sendfile</font></b>(<font color="#009900">Transport</font> <font color="#990000">::</font> <b><font color="#000000">module</font></b>(),
+ <font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">ranch_transport:socket</font></b>(),
+ <font color="#009900">File</font> <font color="#990000">::</font> <b><font color="#000000">file:name_all</font></b>() | <b><font color="#000000">file:fd</font></b>(),
+ <font color="#009900">Offset</font> <font color="#990000">::</font> <b><font color="#000000">non_neg_integer</font></b>(),
+ <font color="#009900">Bytes</font> <font color="#990000">::</font> <b><font color="#000000">non_neg_integer</font></b>(),
+ <font color="#009900">Opts</font> <font color="#990000">::</font> <b><font color="#000000">ranch_transport:sendfile_opts</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">SentBytes</font> <font color="#990000">::</font> <b><font color="#000000">non_neg_integer</font></b>()} | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}</tt></pre>
+</div></div>
+<p>Send a file on the socket.</p>
+<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>This function emulates the function <code>file:sendfile/2,4,5</code> and may be used when transports are not manipulating TCP directly.</p>
+<h2 id="_arguments">Arguments</h2>
+<dl><dt>Transport</dt>
+<dd><p>The transport module.</p>
+</dd>
+<dt>Socket</dt>
+<dd><p>The socket.</p>
+</dd>
+<dt>File</dt>
+<dd><p>The filename or file descriptor for the file to be sent.</p>
+</dd>
+<dt>Offset</dt>
+<dd><p>Start position in the file, in bytes.</p>
+</dd>
+<dt>Bytes</dt>
+<dd><p>Length in bytes.</p>
+</dd>
+<dt>Opts</dt>
+<dd><p>Additional options.</p>
+</dd>
+</dl>
+<h2 id="_return_value">Return value</h2>
+<p>The number of bytes actually sent is returned on success inside an <code>ok</code> tuple.</p>
+<p>An <code>error</code> tuple is returned otherwise.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.6</strong>: The type of the <code>File</code> argument was extended.
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">Filename</font>) <font color="#990000">-&gt;</font>
+ <b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">Filename</font>, <font color="#993399">0</font>, <font color="#993399">0</font>, [])<font color="#990000">.</font>
+
+<b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">File</font>, <font color="#009900">Offset</font>, <font color="#009900">Bytes</font>) <font color="#990000">-&gt;</font>
+ <b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">File</font>, <font color="#009900">Offset</font>, <font color="#009900">Bytes</font>, [])<font color="#990000">.</font>
+
+<b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">File</font>, <font color="#009900">Offset</font>, <font color="#009900">Bytes</font>, <font color="#009900">Opts</font>) <font color="#990000">-&gt;</font>
+ <b><font color="#000000">ranch_transport:sendfile</font></b>(<b><font color="#000080">?MODULE</font></b>, <font color="#009900">Socket</font>,
+ <font color="#009900">File</font>, <font color="#009900">Offset</font>, <font color="#009900">Bytes</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_transport">ranch_transport(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/1.8/manual/ranch_transport/index.html b/docs/en/ranch/1.8/manual/ranch_transport/index.html
new file mode 100644
index 00000000..add1765d
--- /dev/null
+++ b/docs/en/ranch/1.8/manual/ranch_transport/index.html
@@ -0,0 +1,385 @@
+<!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_transport(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=7" 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_transport(3)</span></h1>
+
+<h2 id="_name">Name</h2>
+<p>ranch_transport - Transport modules</p>
+<h2 id="_description">Description</h2>
+<p>The module <code>ranch_transport</code> defines the interface used by Ranch transports.</p>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">accept</font></b>(<font color="#009900">LSocket</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>, <font color="#FF6600">closed</font> | <font color="#FF6600">timeout</font> | <b><font color="#000080">atom</font></b>()}</tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">close</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>Close the socket.</p>
+<h3 id="_controlling_process">controlling_process</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">controlling_process</font></b>(<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(), <font color="#009900">Pid</font> <font color="#990000">::</font> <b><font color="#000080">pid</font></b>())
+ <font color="#990000">-&gt;</font> <font color="#FF6600">ok</font> | {<font color="#FF6600">error</font>, <font color="#FF6600">closed</font> | <font color="#FF6600">not_owner</font> | <b><font color="#000080">atom</font></b>()}</tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">getopts</font></b>(<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(), <font color="#009900">SockOpts</font> <font color="#990000">::</font> [<b><font color="#000080">atom</font></b>()])
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</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 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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">getstat</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>, <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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">getstat</font></b>(<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(), <font color="#009900">SockStats</font> <font color="#990000">::</font> [<b><font color="#000080">atom</font></b>()])
+ <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 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.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>
+</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>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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">listen</font></b>(<font color="#009900">SockOpts</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">LSocket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>()} | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}</tt></pre>
+</div></div>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">messages</font></b>()
+ <font color="#990000">-&gt;</font> {<font color="#009900">OK</font> <font color="#990000">::</font> <b><font color="#000080">atom</font></b>(),
+ <font color="#009900">Closed</font> <font color="#990000">::</font> <b><font color="#000080">atom</font></b>(),
+ <font color="#009900">Error</font> <font color="#990000">::</font> <b><font color="#000080">atom</font></b>()}</tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000080">name</font></b>() <font color="#990000">-&gt;</font> <font color="#009900">Name</font> <font color="#990000">::</font> <b><font color="#000080">atom</font></b>()</tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">peername</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>, {<b><font color="#000000">inet:ip_address</font></b>(), <b><font color="#000000">inet:port_number</font></b>()}}
+ | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}<font color="#990000">.</font></tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">recv</font></b>(<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(),
+ <font color="#009900">Length</font> <font color="#990000">::</font> <b><font color="#000000">non_neg_integer</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">Packet</font> <font color="#990000">::</font> <b><font color="#000000">any</font></b>()}
+ | {<font color="#FF6600">error</font>, <font color="#FF6600">closed</font> | <font color="#FF6600">timeout</font> | <b><font color="#000080">atom</font></b>()}</tt></pre>
+</div></div>
+<p>Receive a packet from the socket in passive mode.</p>
+<p>Attempting to receive data from a socket that is in active mode will return an error.</p>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">secure</font></b>() <font color="#990000">-&gt;</font> <b><font color="#000000">boolean</font></b>()</tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">send</font></b>(<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(), <font color="#009900">Packet</font> <font color="#990000">::</font> <b><font color="#000000">iodata</font></b>())
+ <font color="#990000">-&gt;</font> <font color="#FF6600">ok</font> | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}</tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">File</font>)
+ <font color="#990000">-&gt;</font> <b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">File</font>, <font color="#993399">0</font>, <font color="#993399">0</font>, [])
+
+<b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">File</font>, <font color="#009900">Offset</font>, <font color="#009900">Bytes</font>)
+ <font color="#990000">-&gt;</font> <b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font>, <font color="#009900">File</font>, <font color="#009900">Offset</font>, <font color="#009900">Bytes</font>, [])
+
+<b><font color="#000000">sendfile</font></b>(<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(),
+ <font color="#009900">File</font> <font color="#990000">::</font> <b><font color="#000000">file:name_all</font></b>() | <b><font color="#000000">file:fd</font></b>(),
+ <font color="#009900">Offset</font> <font color="#990000">::</font> <b><font color="#000000">non_neg_integer</font></b>(),
+ <font color="#009900">Bytes</font> <font color="#990000">::</font> <b><font color="#000000">non_neg_integer</font></b>(),
+ <font color="#009900">Opts</font> <font color="#990000">::</font> <b><font color="#000000">sendfile_opts</font></b>())
+ <font color="#990000">-&gt;</font> {<font color="#FF6600">ok</font>, <font color="#009900">SentBytes</font> <font color="#990000">::</font> <b><font color="#000000">non_neg_integer</font></b>()} | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}</tt></pre>
+</div></div>
+<p>Send a file on the socket.</p>
+<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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">setopts</font></b>(<font color="#009900">Socket</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="#990000">-&gt;</font> <font color="#FF6600">ok</font> | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}</tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#000080">shutdown</font>(<font color="#009900">Socket</font> <font color="#990000">::</font> <b><font color="#000000">socket</font></b>(),
+ <font color="#009900">How</font> <font color="#990000">::</font> <font color="#FF6600">read</font> | <font color="#FF6600">write</font> | <font color="#FF6600">read_write</font>)
+ <font color="#990000">-&gt;</font> <font color="#FF6600">ok</font> | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}</tt></pre>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">sockname</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>, {<b><font color="#000000">inet:ip_address</font></b>(), <b><font color="#000000">inet:port_number</font></b>()}}
+ | {<font color="#FF6600">error</font>, <b><font color="#000080">atom</font></b>()}<font color="#990000">.</font></tt></pre>
+</div></div>
+<p>Return the address and port number for the local end of the connection.</p>
+<h2 id="_exports">Exports</h2>
+<p>The following function can be used when implementing transport modules:</p>
+<ul><li><a href="../ranch_transport.sendfile">ranch_transport:sendfile(3)</a> - Send a file on the socket
+</li>
+</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.9
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><b><font color="#000000">sendfile_opts</font></b>() <font color="#990000">::</font> [{<font color="#FF6600">chunk_size</font>, <b><font color="#000000">non_neg_integer</font></b>()}]</tt></pre>
+</div></div>
+<p>Options accepted by the sendfile function and callbacks:</p>
+<dl><dt>chunk_size (8191)</dt>
+<dd><p>The chunk size, in bytes.</p>
+</dd>
+</dl>
+<h3 id="_socket">socket()</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">socket</font></b>() <font color="#990000">::</font> <b><font color="#000000">any</font></b>()</tt></pre>
+</div></div>
+<p>The socket.</p>
+<p>The exact type will vary depending on the transport module.</p>
+<h2 id="_changelog">Changelog</h2>
+<ul><li><strong>1.6</strong>: The <code>socket()</code> type was added for documentation purposes.
+</li>
+<li><strong>1.6</strong>: The type of the sendfile filename was extended.
+</li>
+</ul>
+<h2 id="_see_also">See also</h2>
+<p><a href="../ranch_app">ranch(7)</a>, <a href="../ranch_tcp">ranch_tcp(3)</a>, <a href="../ranch_ssl">ranch_ssl(3)</a></p>
+
+
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.8
+ Function Reference
+
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.8/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.8/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.8/manual">1.8</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>
+
+</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://github.com/sponsors/essen">GitHub Sponsors</a>. These funds are used to cover the recurring expenses like food, 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/guide/connection_draining/index.html b/docs/en/ranch/2.0/guide/connection_draining/index.html
index 278339db..3c3e2a00 100644
--- a/docs/en/ranch/2.0/guide/connection_draining/index.html
+++ b/docs/en/ranch/2.0/guide/connection_draining/index.html
@@ -200,14 +200,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/embedded/index.html b/docs/en/ranch/2.0/guide/embedded/index.html
index 4f9d9cf1..77e08615 100644
--- a/docs/en/ranch/2.0/guide/embedded/index.html
+++ b/docs/en/ranch/2.0/guide/embedded/index.html
@@ -141,14 +141,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/index.html b/docs/en/ranch/2.0/guide/index.html
index 5d740e7c..2959cb6c 100644
--- a/docs/en/ranch/2.0/guide/index.html
+++ b/docs/en/ranch/2.0/guide/index.html
@@ -133,14 +133,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/internals/index.html b/docs/en/ranch/2.0/guide/internals/index.html
index ca802f1f..e0bb9256 100644
--- a/docs/en/ranch/2.0/guide/internals/index.html
+++ b/docs/en/ranch/2.0/guide/internals/index.html
@@ -149,14 +149,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/introduction/index.html b/docs/en/ranch/2.0/guide/introduction/index.html
index 859cb6dd..b9fa77ca 100644
--- a/docs/en/ranch/2.0/guide/introduction/index.html
+++ b/docs/en/ranch/2.0/guide/introduction/index.html
@@ -127,14 +127,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/listeners/index.html b/docs/en/ranch/2.0/guide/listeners/index.html
index 226bc9d4..1a50fe1c 100644
--- a/docs/en/ranch/2.0/guide/listeners/index.html
+++ b/docs/en/ranch/2.0/guide/listeners/index.html
@@ -390,14 +390,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/migrating_from_1.5/index.html b/docs/en/ranch/2.0/guide/migrating_from_1.5/index.html
index 1cd0d5ef..b86e59d2 100644
--- a/docs/en/ranch/2.0/guide/migrating_from_1.5/index.html
+++ b/docs/en/ranch/2.0/guide/migrating_from_1.5/index.html
@@ -163,14 +163,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/migrating_from_1.6/index.html b/docs/en/ranch/2.0/guide/migrating_from_1.6/index.html
index f5f9cbf8..9d717153 100644
--- a/docs/en/ranch/2.0/guide/migrating_from_1.6/index.html
+++ b/docs/en/ranch/2.0/guide/migrating_from_1.6/index.html
@@ -143,14 +143,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
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 186d66a8..e5514929 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
@@ -200,14 +200,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/migrating_from_1.x/index.html b/docs/en/ranch/2.0/guide/migrating_from_1.x/index.html
index 2f74fb23..5b3585f3 100644
--- a/docs/en/ranch/2.0/guide/migrating_from_1.x/index.html
+++ b/docs/en/ranch/2.0/guide/migrating_from_1.x/index.html
@@ -216,14 +216,14 @@
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/parsers/index.html b/docs/en/ranch/2.0/guide/parsers/index.html
index b1fed3f6..e4106ea9 100644
--- a/docs/en/ranch/2.0/guide/parsers/index.html
+++ b/docs/en/ranch/2.0/guide/parsers/index.html
@@ -183,14 +183,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/protocols/index.html b/docs/en/ranch/2.0/guide/protocols/index.html
index 2388c2e8..f7e98c58 100644
--- a/docs/en/ranch/2.0/guide/protocols/index.html
+++ b/docs/en/ranch/2.0/guide/protocols/index.html
@@ -190,14 +190,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
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 33bf8d00..5f3a2fa3 100644
--- a/docs/en/ranch/2.0/guide/ssl_auth/index.html
+++ b/docs/en/ranch/2.0/guide/ssl_auth/index.html
@@ -196,14 +196,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/guide/transports/index.html b/docs/en/ranch/2.0/guide/transports/index.html
index 9c209377..5b5ee18e 100644
--- a/docs/en/ranch/2.0/guide/transports/index.html
+++ b/docs/en/ranch/2.0/guide/transports/index.html
@@ -230,14 +230,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/guide">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/guide">1.8</a></li>
+
<li><a href="/docs/en/ranch/1.7/guide">1.7</a></li>
<li><a href="/docs/en/ranch/1.6/guide">1.6</a></li>
<li><a href="/docs/en/ranch/1.5/guide">1.5</a></li>
- <li><a href="/docs/en/ranch/1.4/guide">1.4</a></li>
-
</ul>
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
diff --git a/docs/en/ranch/2.0/manual/index.html b/docs/en/ranch/2.0/manual/index.html
index cf98781d..261556ba 100644
--- a/docs/en/ranch/2.0/manual/index.html
+++ b/docs/en/ranch/2.0/manual/index.html
@@ -143,14 +143,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 6e98f76b..3348e51e 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
@@ -165,14 +165,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 ad1de90d..69771ad5 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
@@ -139,14 +139,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 1a0d8d2b..13fc2150 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
@@ -131,14 +131,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 2c60b6cf..eed1a6d4 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
@@ -129,14 +129,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 9bce1073..85eece21 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
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 9f0b40f9..196e9497 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
@@ -130,14 +130,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 c0c1f2f2..a308bacd 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
@@ -127,14 +127,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 9331ac89..28b331c3 100644
--- a/docs/en/ranch/2.0/manual/ranch.handshake/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.handshake/index.html
@@ -153,14 +153,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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
index b44475d4..12311b26 100644
--- a/docs/en/ranch/2.0/manual/ranch.handshake_cancel/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.handshake_cancel/index.html
@@ -140,14 +140,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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
index 76268ec1..1121940d 100644
--- a/docs/en/ranch/2.0/manual/ranch.handshake_continue/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.handshake_continue/index.html
@@ -150,14 +150,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 d3bf03dc..266c8d56 100644
--- a/docs/en/ranch/2.0/manual/ranch.info/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.info/index.html
@@ -176,14 +176,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 48846737..e32bed48 100644
--- a/docs/en/ranch/2.0/manual/ranch.procs/index.html
+++ b/docs/en/ranch/2.0/manual/ranch.procs/index.html
@@ -138,14 +138,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 93d4157b..8f6119a7 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
@@ -148,14 +148,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 63fa99c6..332c443b 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
@@ -128,14 +128,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 2e7df507..4df6a268 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
@@ -134,14 +134,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 93d47ce1..9c72ff6c 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
@@ -136,14 +136,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 4833d2bd..a917c3ae 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
@@ -132,14 +132,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 3c63f6dd..1166b6f9 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
@@ -171,14 +171,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 b281d4b1..a090c37c 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
@@ -188,14 +188,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 d3bc6e90..00473f25 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
@@ -131,14 +131,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 d40b1422..99c935ce 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
@@ -135,14 +135,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 aad64e33..066c069e 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
@@ -155,14 +155,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
diff --git a/docs/en/ranch/2.0/manual/ranch/index.html b/docs/en/ranch/2.0/manual/ranch/index.html
index b9f6eb9e..a1a968bb 100644
--- a/docs/en/ranch/2.0/manual/ranch/index.html
+++ b/docs/en/ranch/2.0/manual/ranch/index.html
@@ -251,14 +251,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 cb790282..5c3f9685 100644
--- a/docs/en/ranch/2.0/manual/ranch_app/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_app/index.html
@@ -143,14 +143,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 f9049b65..b166cad2 100644
--- a/docs/en/ranch/2.0/manual/ranch_protocol/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_protocol/index.html
@@ -128,14 +128,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 ee58dcbc..e9d7ead3 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
@@ -162,14 +162,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 64561ede..431c6bf1 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
@@ -133,14 +133,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 1a2eeec3..cbb3303e 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
@@ -216,14 +216,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 d81ccf6d..34757b18 100644
--- a/docs/en/ranch/2.0/manual/ranch_ssl/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_ssl/index.html
@@ -326,14 +326,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 91f27b50..5d685585 100644
--- a/docs/en/ranch/2.0/manual/ranch_tcp/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_tcp/index.html
@@ -228,14 +228,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 e9880038..f27c3d2c 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
@@ -162,14 +162,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>
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 04743904..0edb4039 100644
--- a/docs/en/ranch/2.0/manual/ranch_transport/index.html
+++ b/docs/en/ranch/2.0/manual/ranch_transport/index.html
@@ -369,14 +369,14 @@ http://www.gnu.org/software/src-highlite -->
<li><a href="/docs/en/ranch/2.0/manual">2.0</a></li>
+ <li><a href="/docs/en/ranch/1.8/manual">1.8</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>