summaryrefslogtreecommitdiffstats
path: root/docs/en/ranch/1.4/manual
diff options
context:
space:
mode:
Diffstat (limited to 'docs/en/ranch/1.4/manual')
-rw-r--r--docs/en/ranch/1.4/manual/index.html170
-rw-r--r--docs/en/ranch/1.4/manual/ranch/index.html382
-rw-r--r--docs/en/ranch/1.4/manual/ranch_app/index.html168
-rw-r--r--docs/en/ranch/1.4/manual/ranch_protocol/index.html183
-rw-r--r--docs/en/ranch/1.4/manual/ranch_ssl/index.html324
-rw-r--r--docs/en/ranch/1.4/manual/ranch_tcp/index.html277
-rw-r--r--docs/en/ranch/1.4/manual/ranch_transport/index.html348
7 files changed, 0 insertions, 1852 deletions
diff --git a/docs/en/ranch/1.4/manual/index.html b/docs/en/ranch/1.4/manual/index.html
deleted file mode 100644
index f8c5aa74..00000000
--- a/docs/en/ranch/1.4/manual/index.html
+++ /dev/null
@@ -1,170 +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 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>
-
-<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>
-</li>
-</ul>
-
-
-
-
-
-
-</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/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_app/index.html b/docs/en/ranch/1.4/manual/ranch_app/index.html
deleted file mode 100644
index b0f12daf..00000000
--- a/docs/en/ranch/1.4/manual/ranch_app/index.html
+++ /dev/null
@@ -1,168 +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(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>ranch(7)</span></h1>
-
-<h2 id="_name">Name</h2>
-<p>ranch - Socket acceptor pool for TCP protocols.</p>
-<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>
-<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>
-</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>
-
-
-
-
-
-
-</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_protocol/index.html b/docs/en/ranch/1.4/manual/ranch_protocol/index.html
deleted file mode 100644
index d536f100..00000000
--- a/docs/en/ranch/1.4/manual/ranch_protocol/index.html
+++ /dev/null
@@ -1,183 +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_protocol(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_protocol(3)</span></h1>
-
-<h2 id="_name">Name</h2>
-<p>ranch_protocol - behaviour for 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>
-<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>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>
-
-
-
-
-
-
-</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_ssl/index.html b/docs/en/ranch/1.4/manual/ranch_ssl/index.html
deleted file mode 100644
index 86b23fbf..00000000
--- a/docs/en/ranch/1.4/manual/ranch_ssl/index.html
+++ /dev/null
@@ -1,324 +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_ssl(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_ssl(3)</span></h1>
-
-<h2 id="_name">Name</h2>
-<p>ranch_ssl - SSL transport module</p>
-<h2 id="_description">Description</h2>
-<p>The <code>ranch_ssl</code> module implements an SSL Ranch transport.</p>
-<h2 id="_types">Types</h2>
-<h3 id="_ssl_opt">ssl_opt()</h3>
-<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.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>
-</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>
-<dl><dt>alpn_preferred_protocols</dt>
-<dd><p>Perform Application-Layer Protocol Negotiation with the given list of preferred protocols.</p>
-</dd>
-<dt>beast_mitigation</dt>
-<dd><p>Change the BEAST mitigation strategy for SSL-3.0 and TLS-1.0 to interoperate with legacy software.</p>
-</dd>
-<dt>cacertfile</dt>
-<dd><p>Path to PEM encoded trusted certificates file used to verify peer certificates.</p>
-</dd>
-<dt>cacerts</dt>
-<dd><p>List of DER encoded trusted certificates.</p>
-</dd>
-<dt>cert</dt>
-<dd><p>DER encoded user certificate.</p>
-</dd>
-<dt>certfile</dt>
-<dd><p>Path to the PEM encoded user certificate file. May also contain the private key.</p>
-</dd>
-<dt>ciphers</dt>
-<dd><p>List of ciphers that clients are allowed to use.</p>
-</dd>
-<dt>client_renegotiation (true)</dt>
-<dd><p>Whether to allow client-initiated renegotiation.</p>
-</dd>
-<dt>crl_cache ({ssl_crl_cache, {internal, []}})</dt>
-<dd><p>Customize the module used to cache Certificate Revocation Lists.</p>
-</dd>
-<dt>crl_check (false)</dt>
-<dd><p>Whether to perform CRL check on all certificates in the chain during validation.</p>
-</dd>
-<dt>depth (1)</dt>
-<dd><p>Maximum of intermediate certificates allowed in the certification path.</p>
-</dd>
-<dt>dh</dt>
-<dd><p>DER encoded Diffie-Hellman parameters.</p>
-</dd>
-<dt>dhfile</dt>
-<dd><p>Path to the PEM encoded Diffie-Hellman parameters file.</p>
-</dd>
-<dt>fail_if_no_peer_cert (false)</dt>
-<dd><p>Whether to refuse the connection if the client sends an empty certificate.</p>
-</dd>
-<dt>hibernate_after (undefined)</dt>
-<dd><p>Time in ms after which SSL socket processes go into hibernation to reduce memory usage.</p>
-</dd>
-<dt>honor_cipher_order (false)</dt>
-<dd><p>If true, use the server&apos;s preference for cipher selection. If false, use the client&apos;s preference.</p>
-</dd>
-<dt>key</dt>
-<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>
-<dt>log_alert (true)</dt>
-<dd><p>If false, error reports will not be displayed.</p>
-</dd>
-<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>
-<dt>partial_chain</dt>
-<dd><p>Claim an intermediate CA in the chain as trusted.</p>
-</dd>
-<dt>password</dt>
-<dd><p>Password to the private key file, if password protected.</p>
-</dd>
-<dt>psk_identity</dt>
-<dd><p>Provide the given PSK identity hint to the client during the handshake.</p>
-</dd>
-<dt>reuse_session</dt>
-<dd><p>Custom policy to decide whether a session should be reused.</p>
-</dd>
-<dt>reuse_sessions (false)</dt>
-<dd><p>Whether to allow session reuse.</p>
-</dd>
-<dt>secure_renegotiate (false)</dt>
-<dd><p>Whether to reject renegotiation attempts that do not conform to RFC5746.</p>
-</dd>
-<dt>signature_algs</dt>
-<dd><p>The TLS signature algorithm extension may be used, from TLS 1.2, to negotiate which signature algorithm to use during the TLS handshake.</p>
-</dd>
-<dt>sni_fun</dt>
-<dd><p>Function called when the client requests a host using Server Name Indication. Returns options to apply.</p>
-</dd>
-<dt>sni_hosts</dt>
-<dd><p>Options to apply for the host that matches what the client requested with Server Name Indication.</p>
-</dd>
-<dt>user_lookup_fun</dt>
-<dd><p>Function called to determine the shared secret when using PSK, or provide parameters when using SRP.</p>
-</dd>
-<dt>v2_hello_compatible</dt>
-<dd><p>Accept clients that send hello messages in SSL-2.0 format while offering supported SSL/TLS versions.</p>
-</dd>
-<dt>verify (verify_none)</dt>
-<dd><p>Use <code>verify_peer</code> to request a certificate from the client.</p>
-</dd>
-<dt>verify_fun</dt>
-<dd><p>Custom policy to decide whether a client certificate is valid.</p>
-</dd>
-<dt>versions</dt>
-<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>The options <code>sni_fun</code> and <code>sni_hosts</code> are mutually exclusive.</p>
-<h2 id="_exports">Exports</h2>
-<p>None.</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_tcp/index.html b/docs/en/ranch/1.4/manual/ranch_tcp/index.html
deleted file mode 100644
index 3a409a8c..00000000
--- a/docs/en/ranch/1.4/manual/ranch_tcp/index.html
+++ /dev/null
@@ -1,277 +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_tcp(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_tcp(3)</span></h1>
-
-<h2 id="_name">Name</h2>
-<p>ranch_tcp - TCP transport module</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>
-<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> {<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>
-</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>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>
-<dl><dt>backlog (1024)</dt>
-<dd><p>Max length of the queue of pending connections.</p>
-</dd>
-<dt>buffer</dt>
-<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>
-<dt>dontroute (false)</dt>
-<dd><p>Don&apos;t send via a gateway, only send to directly connected hosts.</p>
-</dd>
-<dt>exit_on_close (true)</dt>
-<dd><p>Disable to allow sending data after a close has been detected.</p>
-</dd>
-<dt>fd</dt>
-<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>
-<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>
-</dd>
-<dt>inet</dt>
-<dd><p>Set up the socket for IPv4.</p>
-</dd>
-<dt>inet6</dt>
-<dd><p>Set up the socket for IPv6.</p>
-</dd>
-<dt>ip</dt>
-<dd><p>Interface to listen on. Listen on all interfaces by default.</p>
-</dd>
-<dt>ipv6_v6only (false)</dt>
-<dd><p>Listen on IPv4 and IPv6 (false) or only on IPv6 (true). Use with inet6.</p>
-</dd>
-<dt>keepalive (false)</dt>
-<dd><p>Enable sending of keep-alive messages.</p>
-</dd>
-<dt>linger ({false, 0})</dt>
-<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>
-<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>
-</dd>
-<dt>nodelay (true)</dt>
-<dd><p>Whether to enable TCP_NODELAY.</p>
-</dd>
-<dt>port (0)</dt>
-<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>
-<dt>recbuf</dt>
-<dd><p>Minimum size of the socket&apos;s receive buffer. Default is system-dependent.</p>
-</dd>
-<dt>send_timeout (30000)</dt>
-<dd><p>How long the send call may wait for confirmation before returning.</p>
-</dd>
-<dt>send_timeout_close (true)</dt>
-<dd><p>Whether to close the socket when the confirmation wasn&apos;t received.</p>
-</dd>
-<dt>sndbuf</dt>
-<dd><p>Minimum size of the socket&apos;s send buffer. Default is system-dependent.</p>
-</dd>
-<dt>tos</dt>
-<dd><p>Value for the IP_TOS IP level option. Use with caution.</p>
-</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>
-
-
-
-
-
-
-</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>
-
-