summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2018-11-28 16:02:21 +0100
committerLoïc Hoguin <[email protected]>2018-11-28 16:02:21 +0100
commitd3abb447a118aecf23afddbec9b83a61ae8d1670 (patch)
tree8e3320f64452ac2aa76d68ce50fd8487893929e5
parent3edee0ace8f3f12653381e8038461689363c9541 (diff)
downloadninenines.eu-d3abb447a118aecf23afddbec9b83a61ae8d1670.tar.gz
ninenines.eu-d3abb447a118aecf23afddbec9b83a61ae8d1670.tar.bz2
ninenines.eu-d3abb447a118aecf23afddbec9b83a61ae8d1670.zip
Ranch 1.7.1 and Cowboy 2.6.1
-rw-r--r--docs/en/cowboy/2.6/guide/getting_started.asciidoc2
-rw-r--r--docs/en/cowboy/2.6/guide/getting_started/index.html2
-rw-r--r--docs/en/cowboy/2.6/guide/index.html4
-rw-r--r--docs/en/cowboy/2.6/guide/middlewares/index.html4
-rw-r--r--docs/en/cowboy/2.6/guide/migrating_from_2.5/index.html4
-rw-r--r--docs/en/cowboy/2.6/guide/migrating_from_2.6.asciidoc12
-rw-r--r--docs/en/cowboy/2.6/guide/migrating_from_2.6/index.html173
-rw-r--r--docs/en/erlang.mk/1/guide/app.asciidoc14
-rw-r--r--docs/en/erlang.mk/1/guide/app/index.html14
-rw-r--r--docs/en/erlang.mk/1/guide/common_test.asciidoc6
-rw-r--r--docs/en/erlang.mk/1/guide/common_test/index.html7
-rw-r--r--docs/en/erlang.mk/1/guide/deps.asciidoc23
-rw-r--r--docs/en/erlang.mk/1/guide/deps/index.html17
-rw-r--r--docs/en/erlang.mk/1/guide/edoc.asciidoc13
-rw-r--r--docs/en/erlang.mk/1/guide/edoc/index.html8
-rw-r--r--docs/en/erlang.mk/1/guide/eunit.asciidoc2
-rw-r--r--docs/en/erlang.mk/1/guide/eunit/index.html2
-rw-r--r--docs/en/erlang.mk/1/guide/installation.asciidoc8
-rw-r--r--docs/en/erlang.mk/1/guide/installation/index.html2
-rw-r--r--docs/en/erlang.mk/1/guide/releases.asciidoc4
-rw-r--r--docs/en/erlang.mk/1/guide/releases/index.html4
-rw-r--r--docs/en/ranch/1.7/guide/index.html2
-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.asciidoc14
-rw-r--r--docs/en/ranch/1.7/guide/migrating_from_1.7/index.html169
-rw-r--r--docs/en/ranch/1.7/guide/upcoming_2.0_changes/index.html4
-rw-r--r--docs/en/ranch/1.7/manual/ranch_proxy_header.header/index.html4
-rw-r--r--docs/index.xml138
-rw-r--r--donate/index.html4
-rw-r--r--index.html4
-rw-r--r--index.xml138
-rw-r--r--services/index.html4
-rw-r--r--sitemap.xml34
33 files changed, 696 insertions, 148 deletions
diff --git a/docs/en/cowboy/2.6/guide/getting_started.asciidoc b/docs/en/cowboy/2.6/guide/getting_started.asciidoc
index 75022df7..3215fb9c 100644
--- a/docs/en/cowboy/2.6/guide/getting_started.asciidoc
+++ b/docs/en/cowboy/2.6/guide/getting_started.asciidoc
@@ -69,7 +69,7 @@ fetch and compile Cowboy:
PROJECT = hello_erlang
DEPS = cowboy
-dep_cowboy_commit = 2.6.0
+dep_cowboy_commit = 2.6.1
DEP_PLUGINS = cowboy
diff --git a/docs/en/cowboy/2.6/guide/getting_started/index.html b/docs/en/cowboy/2.6/guide/getting_started/index.html
index b0efe72e..6a6f7528 100644
--- a/docs/en/cowboy/2.6/guide/getting_started/index.html
+++ b/docs/en/cowboy/2.6/guide/getting_started/index.html
@@ -109,7 +109,7 @@ http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#009900">PROJECT =</font> hello_erlang
<font color="#009900">DEPS =</font> cowboy
-<font color="#009900">dep_cowboy_commit =</font> 2.6.0
+<font color="#009900">dep_cowboy_commit =</font> 2.6.1
<font color="#009900">DEP_PLUGINS =</font> cowboy
diff --git a/docs/en/cowboy/2.6/guide/index.html b/docs/en/cowboy/2.6/guide/index.html
index 1dd2f094..a90060ad 100644
--- a/docs/en/cowboy/2.6/guide/index.html
+++ b/docs/en/cowboy/2.6/guide/index.html
@@ -129,7 +129,9 @@
</li>
</ul>
<h2 id="_additional_information">Additional information</h2>
-<ul><li><a href="migrating_from_2.5/">Migrating from Cowboy 2.5 to 2.6</a>
+<ul><li><a href="migrating_from_2.6/">Changes since Cowboy 2.6</a>
+</li>
+<li><a href="migrating_from_2.5/">Migrating from Cowboy 2.5 to 2.6</a>
</li>
<li><a href="migrating_from_2.4/">Migrating from Cowboy 2.4 to 2.5</a>
</li>
diff --git a/docs/en/cowboy/2.6/guide/middlewares/index.html b/docs/en/cowboy/2.6/guide/middlewares/index.html
index 1f6588da..effc0dd7 100644
--- a/docs/en/cowboy/2.6/guide/middlewares/index.html
+++ b/docs/en/cowboy/2.6/guide/middlewares/index.html
@@ -112,8 +112,8 @@
- <a style="float:right" href="https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/">
- Migrating from Cowboy 2.5 to 2.6
+ <a style="float:right" href="https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.6/">
+ Changes since Cowboy 2.6
</a>
</nav>
diff --git a/docs/en/cowboy/2.6/guide/migrating_from_2.5/index.html b/docs/en/cowboy/2.6/guide/migrating_from_2.5/index.html
index b301b745..5c024b59 100644
--- a/docs/en/cowboy/2.6/guide/migrating_from_2.5/index.html
+++ b/docs/en/cowboy/2.6/guide/migrating_from_2.5/index.html
@@ -151,8 +151,8 @@
<nav style="margin:1em 0">
- <a style="float:left" href="https://ninenines.eu/docs/en/cowboy/2.6/guide/middlewares/">
- Middlewares
+ <a style="float:left" href="https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.6/">
+ Changes since Cowboy 2.6
</a>
diff --git a/docs/en/cowboy/2.6/guide/migrating_from_2.6.asciidoc b/docs/en/cowboy/2.6/guide/migrating_from_2.6.asciidoc
new file mode 100644
index 00000000..0adab3e9
--- /dev/null
+++ b/docs/en/cowboy/2.6/guide/migrating_from_2.6.asciidoc
@@ -0,0 +1,12 @@
+[appendix]
+== Changes since Cowboy 2.6
+
+The following patch versions were released since Cowboy 2.6:
+
+=== Cowboy 2.6.1
+
+This release updates Ranch to 1.7.1.
+
+It fixes an issue with the PROXY protocol where the wrong
+CRC32 algorithm was used and would cause checksum
+verification to fail.
diff --git a/docs/en/cowboy/2.6/guide/migrating_from_2.6/index.html b/docs/en/cowboy/2.6/guide/migrating_from_2.6/index.html
new file mode 100644
index 00000000..f8ba26c3
--- /dev/null
+++ b/docs/en/cowboy/2.6/guide/migrating_from_2.6/index.html
@@ -0,0 +1,173 @@
+<!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: Changes since Cowboy 2.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=2" 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>Changes since Cowboy 2.6</span></h1>
+
+<p>The following patch versions were released since Cowboy 2.6:</p>
+<h2 id="_cowboy_2_6_1">Cowboy 2.6.1</h2>
+<p>This release updates Ranch to 1.7.1.</p>
+<p>It fixes an issue with the PROXY protocol where the wrong CRC32 algorithm was used and would cause checksum verification to fail.</p>
+
+
+
+
+
+
+
+
+
+
+
+ <nav style="margin:1em 0">
+
+ <a style="float:left" href="https://ninenines.eu/docs/en/cowboy/2.6/guide/middlewares/">
+ Middlewares
+ </a>
+
+
+
+ <a style="float:right" href="https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/">
+ Migrating from Cowboy 2.5 to 2.6
+ </a>
+
+ </nav>
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Cowboy
+ 2.6
+
+ User Guide
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/cowboy/2.6/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/cowboy/2.6/manual">Function Reference</a></li>
+
+
+</ul>
+
+<h4 id="docs-nav">Navigation</h4>
+
+<h4>Version select</h4>
+<ul>
+
+
+
+ <li><a href="/docs/en/cowboy/2.6/guide">2.6</a></li>
+
+ <li><a href="/docs/en/cowboy/2.5/guide">2.5</a></li>
+
+ <li><a href="/docs/en/cowboy/2.4/guide">2.4</a></li>
+
+ <li><a href="/docs/en/cowboy/2.3/guide">2.3</a></li>
+
+ <li><a href="/docs/en/cowboy/2.2/guide">2.2</a></li>
+
+ <li><a href="/docs/en/cowboy/2.1/guide">2.1</a></li>
+
+ <li><a href="/docs/en/cowboy/2.0/guide">2.0</a></li>
+
+ <li><a href="/docs/en/cowboy/1.0/guide">1.0</a></li>
+
+</ul>
+
+</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/erlang.mk/1/guide/app.asciidoc b/docs/en/erlang.mk/1/guide/app.asciidoc
index 9d5e9488..226f24c4 100644
--- a/docs/en/erlang.mk/1/guide/app.asciidoc
+++ b/docs/en/erlang.mk/1/guide/app.asciidoc
@@ -25,6 +25,20 @@ and conventions. Most of the conventions come from Erlang/OTP
itself so any seasoned Erlang developers should feel right at
home.
+Erlang.mk supports multi-threaded building. Parallel execution
+is supported for all targets. To execute Erlang.mk in parallel
+the `-j` option must be used:
+
+[source,bash]
+$ make -j8
+
+The `MAKEFLAGS` variable can be used to enable parallel
+building permanently on your system. It can be set in
+your `.zshrc`, `.bashrc` or equivalent file.
+
+[source,bash]
+MAKEFLAGS="-j8"
+
=== What to build
Erlang.mk gives you control over three steps of the build
diff --git a/docs/en/erlang.mk/1/guide/app/index.html b/docs/en/erlang.mk/1/guide/app/index.html
index 13875dda..205542e0 100644
--- a/docs/en/erlang.mk/1/guide/app/index.html
+++ b/docs/en/erlang.mk/1/guide/app/index.html
@@ -74,6 +74,20 @@ http://www.gnu.org/software/src-highlite -->
</div></div>
<p>It will work regardless of your project: OTP applications, library applications, NIFs, port drivers or even releases. Erlang.mk also automatically downloads and compiles the dependencies for your project.</p>
<p>All this is possible thanks to a combination of configuration and conventions. Most of the conventions come from Erlang/OTP itself so any seasoned Erlang developers should feel right at home.</p>
+<p>Erlang.mk supports multi-threaded building. Parallel execution is supported for all targets. To execute Erlang.mk in parallel the <code>-j</code> option must be used:</p>
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>$ make -j<font color="#993399">8</font></tt></pre>
+</div></div>
+<p>The <code>MAKEFLAGS</code> variable can be used to enable parallel building permanently on your system. It can be set in your <code>.zshrc</code>, <code>.bashrc</code> or equivalent file.</p>
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">MAKEFLAGS</font><font color="#990000">=</font><font color="#FF0000">"-j8"</font></tt></pre>
+</div></div>
<h2 id="_what_to_build">What to build</h2>
<p>Erlang.mk gives you control over three steps of the build process, allowing you to do a partial build if needed.</p>
<p>A build has three phases: first any dependency is fetched and built, then the project itself is built and finally a release may be generated when applicable. A release is only generated for projects specifically configured to do so.</p>
diff --git a/docs/en/erlang.mk/1/guide/common_test.asciidoc b/docs/en/erlang.mk/1/guide/common_test.asciidoc
index f8f0de3d..993bb8cd 100644
--- a/docs/en/erlang.mk/1/guide/common_test.asciidoc
+++ b/docs/en/erlang.mk/1/guide/common_test.asciidoc
@@ -93,5 +93,11 @@ as a dependency, you can run the following directly:
[source,bash]
$ make -C deps/cowboy ct-http t=http_compress
+The variable `c` can be used to run a specific test when
+the test suite does not group test cases:
+
+[source,bash]
+$ make ct-http c=headers_dupe
+
Finally, xref:coverage[code coverage] is available,
but covered in its own chapter.
diff --git a/docs/en/erlang.mk/1/guide/common_test/index.html b/docs/en/erlang.mk/1/guide/common_test/index.html
index 8c4c66d2..c50f40be 100644
--- a/docs/en/erlang.mk/1/guide/common_test/index.html
+++ b/docs/en/erlang.mk/1/guide/common_test/index.html
@@ -146,6 +146,13 @@ http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt>$ make -C deps/cowboy ct-http <font color="#009900">t</font><font color="#990000">=</font>http_compress</tt></pre>
</div></div>
+<p>The variable <code>c</code> can be used to run a specific test when the test suite does not group test cases:</p>
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt>$ make ct-http <font color="#009900">c</font><font color="#990000">=</font>headers_dupe</tt></pre>
+</div></div>
<p>Finally, <a href="../coverage">code coverage</a> is available, but covered in its own chapter.</p>
diff --git a/docs/en/erlang.mk/1/guide/deps.asciidoc b/docs/en/erlang.mk/1/guide/deps.asciidoc
index 84a53de1..3ba7a398 100644
--- a/docs/en/erlang.mk/1/guide/deps.asciidoc
+++ b/docs/en/erlang.mk/1/guide/deps.asciidoc
@@ -163,6 +163,7 @@ The following table lists all existing methods:
|===
| Name | Format | Description
| git | git repo commit | Clone the Git repository and checkout the given version
+| git-subfolder | git repo commit subfolder | Clone the Git repository, checkout the given version and use one of its subfolders as a dependency
| git-submodule | git-submodule | Initialize and update the Git submodule
| hg | hg repo commit | Clone the Mercurial repository and update to the given version
| svn | svn repo | Checkout the given SVN repository
@@ -514,6 +515,28 @@ projects using the `NO_AUTOPATCH` variable:
[source,make]
NO_AUTOPATCH = cowboy ranch cowlib
+=== Dealing with duplicate modules
+
+When there are duplicate modules found in both applications
+and their dependencies, some tasks may fail. Erlang expects
+modules to be unique in general.
+
+When the duplicates are found in dependencies, you will need
+to remove one of the duplicates at fetch time. To do so, you
+can add a rule similar to this to your Makefile before including
+'erlang.mk':
+
+[source,make]
+----
+DEPS_DIR = $(CURDIR)/deps
+
+deps:: $(DEPS_DIR)/cowlib
+ $(verbose) rm -f $(DEPS_DIR)/cowlib/src/cow_ws.erl
+----
+
+This must be done from the application that has this dependency.
+Only define the `DEPS_DIR` variable if necessary.
+
=== Skipping deps
It is possible to temporarily skip all dependency operations.
diff --git a/docs/en/erlang.mk/1/guide/deps/index.html b/docs/en/erlang.mk/1/guide/deps/index.html
index 44c325d0..11e9171f 100644
--- a/docs/en/erlang.mk/1/guide/deps/index.html
+++ b/docs/en/erlang.mk/1/guide/deps/index.html
@@ -187,6 +187,10 @@ http://www.gnu.org/software/src-highlite -->
<td>git repo commit</td>
<td>Clone the Git repository and checkout the given version</td>
</tr>
+<tr><td>git-subfolder</td>
+<td>git repo commit subfolder</td>
+<td>Clone the Git repository, checkout the given version and use one of its subfolders as a dependency</td>
+</tr>
<tr><td>git-submodule</td>
<td>git-submodule</td>
<td>Initialize and update the Git submodule</td>
@@ -426,6 +430,19 @@ http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#009900">NO_AUTOPATCH =</font> cowboy ranch cowlib</tt></pre>
</div></div>
+<h2 id="_dealing_with_duplicate_modules">Dealing with duplicate modules</h2>
+<p>When there are duplicate modules found in both applications and their dependencies, some tasks may fail. Erlang expects modules to be unique in general.</p>
+<p>When the duplicates are found in dependencies, you will need to remove one of the duplicates at fetch time. To do so, you can add a rule similar to this to your Makefile before including <em>erlang.mk</em>:</p>
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">DEPS_DIR =</font> <font color="#009900">$(CURDIR)</font>/deps
+
+<font color="#990000">deps::</font> <font color="#009900">$(DEPS_DIR)</font>/cowlib
+ <font color="#009900">$(verbose)</font> rm -f <font color="#009900">$(DEPS_DIR)</font>/cowlib/src/cow_ws.erl</tt></pre>
+</div></div>
+<p>This must be done from the application that has this dependency. Only define the <code>DEPS_DIR</code> variable if necessary.</p>
<h2 id="_skipping_deps">Skipping deps</h2>
<p>It is possible to temporarily skip all dependency operations. This is done by defining the <code>SKIP_DEPS</code> variable. Use cases include being somewhere with no connection to download them, or perhaps a peculiar setup.</p>
<p>A typical usage would be:</p>
diff --git a/docs/en/erlang.mk/1/guide/edoc.asciidoc b/docs/en/erlang.mk/1/guide/edoc.asciidoc
index 9fc1a740..2992a37d 100644
--- a/docs/en/erlang.mk/1/guide/edoc.asciidoc
+++ b/docs/en/erlang.mk/1/guide/edoc.asciidoc
@@ -46,3 +46,16 @@ the following to your Makefile:
----
docs:: edoc
----
+
+=== Running EDoc on all applications
+
+In a multi-application project you may want to run EDoc
+against all applications at the same time, instead of
+against each applications independently. To do so, you
+need to configure the `EDOC_SRC_DIRS` at the end of
+your Makefile, after including 'erlang.mk':
+
+[source,make]
+----
+EDOC_SRC_DIRS = $(ALL_APPS_DIRS)
+----
diff --git a/docs/en/erlang.mk/1/guide/edoc/index.html b/docs/en/erlang.mk/1/guide/edoc/index.html
index 513cb07f..ff876b37 100644
--- a/docs/en/erlang.mk/1/guide/edoc/index.html
+++ b/docs/en/erlang.mk/1/guide/edoc/index.html
@@ -98,6 +98,14 @@ http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt><font color="#990000">docs::</font> edoc</tt></pre>
</div></div>
+<h2 id="_running_edoc_on_all_applications">Running EDoc on all applications</h2>
+<p>In a multi-application project you may want to run EDoc against all applications at the same time, instead of against each applications independently. To do so, you need to configure the <code>EDOC_SRC_DIRS</code> at the end of your Makefile, after including <em>erlang.mk</em>:</p>
+<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
+by Lorenzo Bettini
+http://www.lorenzobettini.it
+http://www.gnu.org/software/src-highlite -->
+<pre><tt><font color="#009900">EDOC_SRC_DIRS =</font> <font color="#009900">$(ALL_APPS_DIRS)</font></tt></pre>
+</div></div>
diff --git a/docs/en/erlang.mk/1/guide/eunit.asciidoc b/docs/en/erlang.mk/1/guide/eunit.asciidoc
index 496b6749..41e26e39 100644
--- a/docs/en/erlang.mk/1/guide/eunit.asciidoc
+++ b/docs/en/erlang.mk/1/guide/eunit.asciidoc
@@ -65,7 +65,7 @@ to be passed to `erl` when running EUnit tests. For example,
you can load the 'vm.args' and 'sys.config' files:
[source,make]
-EUNIT_ERL_OPTS = -args_file rel/vm.args -config rel/sys.config
+EUNIT_ERL_OPTS = -args_file config/vm.args -config config/sys.config
=== Usage
diff --git a/docs/en/erlang.mk/1/guide/eunit/index.html b/docs/en/erlang.mk/1/guide/eunit/index.html
index ba47b6c2..502c76da 100644
--- a/docs/en/erlang.mk/1/guide/eunit/index.html
+++ b/docs/en/erlang.mk/1/guide/eunit/index.html
@@ -104,7 +104,7 @@ http://www.gnu.org/software/src-highlite -->
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
-<pre><tt><font color="#009900">EUNIT_ERL_OPTS =</font> -args_file rel/vm.args -config rel/sys.config</tt></pre>
+<pre><tt><font color="#009900">EUNIT_ERL_OPTS =</font> -args_file config/vm.args -config config/sys.config</tt></pre>
</div></div>
<h2 id="_usage">Usage</h2>
<p>To run all tests (including EUnit):</p>
diff --git a/docs/en/erlang.mk/1/guide/installation.asciidoc b/docs/en/erlang.mk/1/guide/installation.asciidoc
index 3298db2d..254b461d 100644
--- a/docs/en/erlang.mk/1/guide/installation.asciidoc
+++ b/docs/en/erlang.mk/1/guide/installation.asciidoc
@@ -28,6 +28,9 @@ Alpine Linux and other distributions based on BusyBox come
with an incompatible `awk` program. Installing the GNU Awk
(`gawk` on Alpine) solves this issue.
+Parallel builds may require the program `flock` that can
+be found in the package `util-linux`.
+
==== FreeBSD
FreeBSD comes with binary and source packages:
@@ -56,6 +59,11 @@ is the one provided by Apple.
[source,bash]
$ sudo port install erlang git gmake
+Parallel builds may require the program `flock` which can
+be installed via Homebrew or manually. The instructions
+to install are available from its repository:
+https://github.com/discoteq/flock
+
=== On Windows
Erlang.mk can be used on Windows inside an MSYS2 environment.
diff --git a/docs/en/erlang.mk/1/guide/installation/index.html b/docs/en/erlang.mk/1/guide/installation/index.html
index 3d49f35e..981bab8d 100644
--- a/docs/en/erlang.mk/1/guide/installation/index.html
+++ b/docs/en/erlang.mk/1/guide/installation/index.html
@@ -77,6 +77,7 @@ http://www.gnu.org/software/src-highlite -->
<pre><tt>$ pacman -S erlang git make</tt></pre>
</div></div>
<p>Alpine Linux and other distributions based on BusyBox come with an incompatible <code>awk</code> program. Installing the GNU Awk (<code>gawk</code> on Alpine) solves this issue.</p>
+<p>Parallel builds may require the program <code>flock</code> that can be found in the package <code>util-linux</code>.</p>
<h4 id="_freebsd">FreeBSD</h4>
<p>FreeBSD comes with binary and source packages:</p>
<div class="listingblock"><div class="title">Install binary packages</div>
@@ -104,6 +105,7 @@ http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt>$ sudo port install erlang git gmake</tt></pre>
</div></div>
+<p>Parallel builds may require the program <code>flock</code> which can be installed via Homebrew or manually. The instructions to install are available from its repository: <a href="https://github.com/discoteq/flock">https://github.com/discoteq/flock</a></p>
<h2 id="_on_windows">On Windows</h2>
<p>Erlang.mk can be used on Windows inside an MSYS2 environment. Cygwin, MSYS (the original) and native Windows (both Batch and PowerShell) are currently not supported.</p>
<p>NOTE: Erlang.mk expects Unix line breaks in most of the files (LF instead of CRLF). Make sure to configure your text editor adequately.</p>
diff --git a/docs/en/erlang.mk/1/guide/releases.asciidoc b/docs/en/erlang.mk/1/guide/releases.asciidoc
index f1e20e6b..92968ff8 100644
--- a/docs/en/erlang.mk/1/guide/releases.asciidoc
+++ b/docs/en/erlang.mk/1/guide/releases.asciidoc
@@ -124,7 +124,7 @@ Your release was upgraded!
There is a *workaround* to get the semver value which is
generated by Relx based on VCS history.
-Create a file 'rel/version' with only one line inside:
+Create a file 'config/version' with only one line inside:
[source,erlang]
{{ release_version }}
@@ -133,7 +133,7 @@ Add/Update the `overlay` section of your `relx.config`:
[source,erlang]
{overlay, [
- {template, "rel/version", "version"}
+ {template, "config/version", "version"}
]}.
When you run `make rel` it creates the file '$(RELX_OUTPUT_DIR)/example/version'
diff --git a/docs/en/erlang.mk/1/guide/releases/index.html b/docs/en/erlang.mk/1/guide/releases/index.html
index 3224897f..86dc56f1 100644
--- a/docs/en/erlang.mk/1/guide/releases/index.html
+++ b/docs/en/erlang.mk/1/guide/releases/index.html
@@ -152,7 +152,7 @@ http://www.gnu.org/software/src-highlite -->
<p>Your release was upgraded!</p>
<h2 id="_getting_relx_semver_value">Getting Relx semver value</h2>
<p>There is a <strong>workaround</strong> to get the semver value which is generated by Relx based on VCS history.</p>
-<p>Create a file <em>rel/version</em> with only one line inside:</p>
+<p>Create a file <em>config/version</em> with only one line inside:</p>
<div class="listingblock"><div class="content"><!-- Generator: GNU source-highlight 3.1.8
by Lorenzo Bettini
http://www.lorenzobettini.it
@@ -165,7 +165,7 @@ by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt>{<font color="#FF6600">overlay</font>, [
- {<font color="#FF6600">template</font>, <font color="#FF0000">"rel/version"</font>, <font color="#FF0000">"version"</font>}
+ {<font color="#FF6600">template</font>, <font color="#FF0000">"config/version"</font>, <font color="#FF0000">"version"</font>}
]}<font color="#990000">.</font></tt></pre>
</div></div>
<p>When you run <code>make rel</code> it creates the file <em>$(RELX_OUTPUT_DIR)/example/version</em> which contains the version value generated by Relx.</p>
diff --git a/docs/en/ranch/1.7/guide/index.html b/docs/en/ranch/1.7/guide/index.html
index c18bddee..74208489 100644
--- a/docs/en/ranch/1.7/guide/index.html
+++ b/docs/en/ranch/1.7/guide/index.html
@@ -87,6 +87,8 @@
<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/">Changes since Ranch 1.7</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>
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 9e87dc6e..1db7386a 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
@@ -97,8 +97,8 @@
<nav style="margin:1em 0">
- <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.7/guide/upcoming_2.0_changes/">
- Upcoming changes in Ranch 2.0
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.7/">
+ Changes since Ranch 1.7
</a>
diff --git a/docs/en/ranch/1.7/guide/migrating_from_1.7.asciidoc b/docs/en/ranch/1.7/guide/migrating_from_1.7.asciidoc
new file mode 100644
index 00000000..a4ce981c
--- /dev/null
+++ b/docs/en/ranch/1.7/guide/migrating_from_1.7.asciidoc
@@ -0,0 +1,14 @@
+[appendix]
+== Changes since Ranch 1.7
+
+The following patch versions were released since Ranch 1.7:
+
+=== Ranch 1.7.1
+
+This release fixes an issue with the PROXY protocol where
+the wrong CRC32 algorithm was used and would cause checksum
+verification to fail.
+
+Because the plain `crc32` checksum is not supported by the
+PROXY protocol, the configuration value when building PROXY
+headers has been changed to `crc32c`.
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
new file mode 100644
index 00000000..180eb0e8
--- /dev/null
+++ b/docs/en/ranch/1.7/guide/migrating_from_1.7/index.html
@@ -0,0 +1,169 @@
+<!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: Changes since Ranch 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=2" 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>Changes since Ranch 1.7</span></h1>
+
+<p>The following patch versions were released since Ranch 1.7:</p>
+<h2 id="_ranch_1_7_1">Ranch 1.7.1</h2>
+<p>This release fixes an issue with the PROXY protocol where the wrong CRC32 algorithm was used and would cause checksum verification to fail.</p>
+<p>Because the plain <code>crc32</code> checksum is not supported by the PROXY protocol, the configuration value when building PROXY headers has been changed to <code>crc32c</code>.</p>
+
+
+
+
+
+
+
+
+
+
+
+ <nav style="margin:1em 0">
+
+ <a style="float:left" href="https://ninenines.eu/docs/en/ranch/1.7/guide/upcoming_2.0_changes/">
+ Upcoming changes in Ranch 2.0
+ </a>
+
+
+
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/">
+ Migrating from Ranch 1.6 to 1.7
+ </a>
+
+ </nav>
+
+
+
+
+</div>
+
+<div class="span3 sidecol">
+
+
+<h3>
+ Ranch
+ 1.7
+
+ User Guide
+</h3>
+
+<ul>
+
+ <li><a href="/docs/en/ranch/1.7/guide">User Guide</a></li>
+
+
+ <li><a href="/docs/en/ranch/1.7/manual">Function Reference</a></li>
+
+
+</ul>
+
+<h4 id="docs-nav">Navigation</h4>
+
+<h4>Version select</h4>
+<ul>
+
+
+
+ <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>
+
+ <li><a href="/docs/en/ranch/1.3/guide">1.3</a></li>
+
+ <li><a href="/docs/en/ranch/1.2/guide">1.2</a></li>
+
+</ul>
+
+</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.7/guide/upcoming_2.0_changes/index.html b/docs/en/ranch/1.7/guide/upcoming_2.0_changes/index.html
index cfab3a1f..96d78760 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
@@ -97,8 +97,8 @@
- <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/">
- Migrating from Ranch 1.6 to 1.7
+ <a style="float:right" href="https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.7/">
+ Changes since Ranch 1.7
</a>
</nav>
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 1710494c..6fad5c4d 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
@@ -74,7 +74,7 @@ http://www.gnu.org/software/src-highlite -->
<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">crc32</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>
@@ -119,7 +119,7 @@ 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">crc32</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>
diff --git a/docs/index.xml b/docs/index.xml
index 8da47e8a..5bfba95e 100644
--- a/docs/index.xml
+++ b/docs/index.xml
@@ -1761,14 +1761,14 @@ Ranch 1.6.1 This release fixes a minor issue in the README and adds an undocumen
</item>
<item>
- <title>Migrating from Ranch 1.6 to 1.7</title>
- <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</link>
+ <title>Changes since Ranch 1.7</title>
+ <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.7/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</guid>
- <description>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.</description>
+ <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.7/</guid>
+ <description>The following patch versions were released since Ranch 1.7:
+Ranch 1.7.1 This release fixes an issue with the PROXY protocol where the wrong CRC32 algorithm was used and would cause checksum verification to fail.
+Because the plain crc32 checksum is not supported by the PROXY protocol, the configuration value when building PROXY headers has been changed to crc32c.</description>
</item>
<item>
@@ -1950,14 +1950,14 @@ Features added Listeners can now be suspended/resumed without stopping existing
</item>
<item>
- <title>Migrating from Ranch 1.5 to 1.6</title>
- <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</link>
+ <title>Migrating from Ranch 1.6 to 1.7</title>
+ <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</guid>
- <description>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.</description>
+ <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</guid>
+ <description>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.</description>
</item>
<item>
@@ -2049,21 +2049,22 @@ The Req object is the subject of a few different chapters. In this chapter we wi
</item>
<item>
- <title>Migrating from Ranch 1.x</title>
- <link>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</link>
+ <title>Migrating from Ranch 1.5 to 1.6</title>
+ <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</guid>
- <description>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.</description>
+ <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</guid>
+ <description>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.</description>
</item>
<item>
<title>Migrating from Ranch 1.x</title>
- <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</link>
+ <link>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</guid>
+ <guid>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</guid>
<description>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.</description>
</item>
@@ -2260,6 +2261,16 @@ While only one response is allowed for every request, HTTP/2 introduced a mechan
</item>
<item>
+ <title>Migrating from Ranch 1.x</title>
+ <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+ <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</guid>
+ <description>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.</description>
+ </item>
+
+ <item>
<title>Erlang shell</title>
<link>https://ninenines.eu/docs/en/erlang.mk/1/guide/shell/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
@@ -3174,6 +3185,17 @@ Cowboy 2.2.2 While fixing the miscount in the previous patch release an issue wa
</item>
<item>
+ <title>Changes since Cowboy 2.6</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.6/</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.6/</guid>
+ <description>The following patch versions were released since Cowboy 2.6:
+Cowboy 2.6.1 This release updates Ranch to 1.7.1.
+It fixes an issue with the PROXY protocol where the wrong CRC32 algorithm was used and would cause checksum verification to fail.</description>
+ </item>
+
+ <item>
<title>Migrating from Cowboy 1.0 to 2.0</title>
<link>https://ninenines.eu/docs/en/cowboy/2.0/guide/migrating_from_1.0/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
@@ -3225,17 +3247,6 @@ Features added Add option linger_timeout to control how long Cowboy will wait be
</item>
<item>
- <title>Migrating from Cowboy 2.5 to 2.6</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</link>
- <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</guid>
- <description>Cowboy 2.6 greatly refactored the HTTP/2 code, a large part of which was moved to Cowlib and is now used by both the Cowboy server and the Gun client.
-A large number of tickets were also closed which resulted in many bugs fixed and many features and options added, although some of them are still experimental.
-Features added Add support for the PROXY protocol header. It can be enabled via the proxy_header option.</description>
- </item>
-
- <item>
<title>HTTP and other specifications</title>
<link>https://ninenines.eu/docs/en/cowboy/2.0/guide/specs/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
@@ -3297,13 +3308,14 @@ Features added Add experimental support for Websocket over HTTP/2. You can use t
</item>
<item>
- <title>Migrating from Cowboy 2.4 to 2.5</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</link>
+ <title>Migrating from Cowboy 2.5 to 2.6</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</guid>
- <description>Cowboy 2.5 focused on making the test suites pass. A variety of new features, fixes and improvements have also been worked on.
-Features added Add option linger_timeout to control how long Cowboy will wait before closing the socket when shutting down the connection. This helps avoid the TCP reset problem HTTP/1.1 suffers from. The default is now 1000 ms. It is now possible to stream a response body without using chunked transfer-encoding when the protocol is HTTP/1.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</guid>
+ <description>Cowboy 2.6 greatly refactored the HTTP/2 code, a large part of which was moved to Cowlib and is now used by both the Cowboy server and the Gun client.
+A large number of tickets were also closed which resulted in many bugs fixed and many features and options added, although some of them are still experimental.
+Features added Add support for the PROXY protocol header. It can be enabled via the proxy_header option.</description>
</item>
<item>
@@ -3357,13 +3369,13 @@ Features added Add support for all functions from the module sys. Note that Cowb
</item>
<item>
- <title>Migrating from Cowboy 2.3 to 2.4</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</link>
+ <title>Migrating from Cowboy 2.4 to 2.5</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</guid>
- <description>Cowboy 2.4 focused on improving the HTTP/2 implementation. All existing tests from RFC7540 and the h2spec test suite now all pass. Numerous options have been added to control SETTINGS and related behavior. In addition experimental support for Websocket over HTTP/2 was added.
-Features added Add experimental support for Websocket over HTTP/2. You can use the enable_connect_protocol option to enable. It implements the following draft: https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-01 Add options max_decode_table_size and max_encode_table_size to restrict the size of the HPACK compression dictionary.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</guid>
+ <description>Cowboy 2.5 focused on making the test suites pass. A variety of new features, fixes and improvements have also been worked on.
+Features added Add option linger_timeout to control how long Cowboy will wait before closing the socket when shutting down the connection. This helps avoid the TCP reset problem HTTP/1.1 suffers from. The default is now 1000 ms. It is now possible to stream a response body without using chunked transfer-encoding when the protocol is HTTP/1.</description>
</item>
<item>
@@ -3409,13 +3421,13 @@ Features added Add support for sending trailers at the end of response bodies. T
</item>
<item>
- <title>Migrating from Cowboy 2.2 to 2.3</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</link>
+ <title>Migrating from Cowboy 2.3 to 2.4</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</guid>
- <description>Cowboy 2.3 focused on making the Cowboy processes behave properly according to OTP principles. This version is a very good milestone toward that goal and most of everything should now work. Release upgrades and a few details will be improved in future versions.
-Features added Add support for all functions from the module sys. Note that Cowboy currently does not implement the sys debugging mechanisms as tracing is recommended instead. Add a max_frame_size option for Websocket handlers to close the connection when the client attempts to send a frame that&amp;apos;s too large.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</guid>
+ <description>Cowboy 2.4 focused on improving the HTTP/2 implementation. All existing tests from RFC7540 and the h2spec test suite now all pass. Numerous options have been added to control SETTINGS and related behavior. In addition experimental support for Websocket over HTTP/2 was added.
+Features added Add experimental support for Websocket over HTTP/2. You can use the enable_connect_protocol option to enable. It implements the following draft: https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-01 Add options max_decode_table_size and max_encode_table_size to restrict the size of the HPACK compression dictionary.</description>
</item>
<item>
@@ -3460,13 +3472,13 @@ Features added It is now possible to obtain the client TLS certificate and the l
</item>
<item>
- <title>Migrating from Cowboy 2.1 to 2.2</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</link>
+ <title>Migrating from Cowboy 2.2 to 2.3</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</guid>
- <description>Cowboy 2.2 focused on adding features required for writing gRPC servers and on completing test suites for the core HTTP RFCs, fixing many bugs along the way.
-Features added Add support for sending trailers at the end of response bodies. Trailers are additional header fields that may be sent after the body to add more information to the response. Their usage is required in gRPC servers. They are optional and may be discarded in other scenarios (for example if the request goes through an HTTP/1.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</guid>
+ <description>Cowboy 2.3 focused on making the Cowboy processes behave properly according to OTP principles. This version is a very good milestone toward that goal and most of everything should now work. Release upgrades and a few details will be improved in future versions.
+Features added Add support for all functions from the module sys. Note that Cowboy currently does not implement the sys debugging mechanisms as tracing is recommended instead. Add a max_frame_size option for Websocket handlers to close the connection when the client attempts to send a frame that&amp;apos;s too large.</description>
</item>
<item>
@@ -3491,13 +3503,13 @@ Compatibility Compatibility with Erlang/OTP R16, 17 and 18 has been dropped. Erl
</item>
<item>
- <title>Migrating from Cowboy 2.0 to 2.1</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</link>
+ <title>Migrating from Cowboy 2.1 to 2.2</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</guid>
- <description>Cowboy 2.1 focused on adding features that were temporarily removed in Cowboy 2.0. A number of bugs found in the 2.0 release were also fixed.
-Features added It is now possible to obtain the client TLS certificate and the local IP/port for the connection from the Req object. Informational responses (1XX responses) can now be sent. They must be sent before initiating the final response. The expect: 100-continue header is now handled automatically.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</guid>
+ <description>Cowboy 2.2 focused on adding features required for writing gRPC servers and on completing test suites for the core HTTP RFCs, fixing many bugs along the way.
+Features added Add support for sending trailers at the end of response bodies. Trailers are additional header fields that may be sent after the body to add more information to the response. Their usage is required in gRPC servers. They are optional and may be discarded in other scenarios (for example if the request goes through an HTTP/1.</description>
</item>
<item>
@@ -3511,6 +3523,16 @@ HTTP IANA Registries HTTP Method Registry HTTP Status Code Registry Message He
</item>
<item>
+ <title>Migrating from Cowboy 2.0 to 2.1</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</guid>
+ <description>Cowboy 2.1 focused on adding features that were temporarily removed in Cowboy 2.0. A number of bugs found in the 2.0 release were also fixed.
+Features added It is now possible to obtain the client TLS certificate and the local IP/port for the connection from the Req object. Informational responses (1XX responses) can now be sent. They must be sent before initiating the final response. The expect: 100-continue header is now handled automatically.</description>
+ </item>
+
+ <item>
<title>Migrating from Cowboy 1.0 to 2.0</title>
<link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_1.0/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
@@ -3682,7 +3704,7 @@ cowboy(3) - Listener management cowboy_req(3) - Request and response cowboy_ro
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/</guid>
- <description>Rationale The modern Web Erlang and the Web Introduction Introduction Getting started Flow diagram Configuration Listeners Routing Constraints Handlers Handlers Loop handlers Static files Request and response Request details Reading the request body Sending a response Using cookies Multipart REST REST principles Handling REST requests REST flowcharts Designing a resource handler Websocket The Websocket protocol Websocket handlers Advanced Streams Middlewares Additional information Migrating from Cowboy 2.</description>
+ <description>Rationale The modern Web Erlang and the Web Introduction Introduction Getting started Flow diagram Configuration Listeners Routing Constraints Handlers Handlers Loop handlers Static files Request and response Request details Reading the request body Sending a response Using cookies Multipart REST REST principles Handling REST requests REST flowcharts Designing a resource handler Websocket The Websocket protocol Websocket handlers Advanced Streams Middlewares Additional information Changes since Cowboy 2.</description>
</item>
<item>
@@ -3970,7 +3992,7 @@ ranch_ssl(3) - SSL transport ranch_tcp(3) - TCP transport Behaviors:</descrip
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://ninenines.eu/docs/en/ranch/1.7/guide/</guid>
- <description>Interface Introduction Listeners Transports Protocols Embedded mode How to Writing parsers SSL client authentication Advanced Internals Additional information Upcoming changes in Ranch 2.0 Migrating from Ranch 1.6 to 1.7 Migrating from Ranch 1.5 to 1.6 Migrating from Ranch 1.x </description>
+ <description>Interface Introduction Listeners Transports Protocols Embedded mode How to Writing parsers SSL client authentication Advanced Internals Additional information Upcoming changes in Ranch 2.0 Changes since Ranch 1.7 Migrating from Ranch 1.6 to 1.7 Migrating from Ranch 1.5 to 1.6 Migrating from Ranch 1.x </description>
</item>
<item>
@@ -12130,7 +12152,7 @@ Exports ranch_proxy_header:parse(3) - Parse a PROXY protocol header ranch_proxy
<guid>https://ninenines.eu/docs/en/ranch/1.7/manual/ranch_proxy_header.header/</guid>
<description>Name ranch_proxy_header:header - Build a PROXY protocol header
-Description header(ProxyInfo) -&amp;gt; header(ProxyInfo, #{}) header(ProxyInfo, BuildOpts) -&amp;gt; iodata() ProxyInfo :: ranch_proxy_header:proxy_info() BuildOpts :: #{ checksum =&amp;gt; crc32, padding =&amp;gt; pos_integer() %% &amp;gt;= 3 } Build a PROXY protocol header.
+Description header(ProxyInfo) -&amp;gt; header(ProxyInfo, #{}) header(ProxyInfo, BuildOpts) -&amp;gt; iodata() ProxyInfo :: ranch_proxy_header:proxy_info() BuildOpts :: #{ checksum =&amp;gt; crc32c, padding =&amp;gt; pos_integer() %% &amp;gt;= 3 } Build a PROXY protocol header.
Arguments ProxyInfo The proxy information to encode.
BuildOpts Options to control whether to add a checksum or padding should be included in the encoded PROXY protocol header.
Return value The PROXY protocol header is returned.</description>
diff --git a/donate/index.html b/donate/index.html
index d5a4a8de..88ff2473 100644
--- a/donate/index.html
+++ b/donate/index.html
@@ -769,6 +769,10 @@
+
+
+
+
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
<p>Donate to Loïc Hoguin because his work on Cowboy and Erlang.mk is fantastic:</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
diff --git a/index.html b/index.html
index 7bb7aab0..a3b1f37d 100644
--- a/index.html
+++ b/index.html
@@ -932,6 +932,10 @@
+
+
+
+
<p>Feeling generous? Love reading?<br/><a href="https://salt.bountysource.com/teams/ninenines">Crowdfund my salary</a> or buy <a href="/articles/erlanger-playbook">The Erlanger Playbook</a></p>
diff --git a/index.xml b/index.xml
index c634c03c..29980e4e 100644
--- a/index.xml
+++ b/index.xml
@@ -1762,14 +1762,14 @@ Ranch 1.6.1 This release fixes a minor issue in the README and adds an undocumen
</item>
<item>
- <title>Migrating from Ranch 1.6 to 1.7</title>
- <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</link>
+ <title>Changes since Ranch 1.7</title>
+ <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.7/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</guid>
- <description>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.</description>
+ <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.7/</guid>
+ <description>The following patch versions were released since Ranch 1.7:
+Ranch 1.7.1 This release fixes an issue with the PROXY protocol where the wrong CRC32 algorithm was used and would cause checksum verification to fail.
+Because the plain crc32 checksum is not supported by the PROXY protocol, the configuration value when building PROXY headers has been changed to crc32c.</description>
</item>
<item>
@@ -1951,14 +1951,14 @@ Features added Listeners can now be suspended/resumed without stopping existing
</item>
<item>
- <title>Migrating from Ranch 1.5 to 1.6</title>
- <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</link>
+ <title>Migrating from Ranch 1.6 to 1.7</title>
+ <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</guid>
- <description>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.</description>
+ <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</guid>
+ <description>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.</description>
</item>
<item>
@@ -2050,21 +2050,22 @@ The Req object is the subject of a few different chapters. In this chapter we wi
</item>
<item>
- <title>Migrating from Ranch 1.x</title>
- <link>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</link>
+ <title>Migrating from Ranch 1.5 to 1.6</title>
+ <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</guid>
- <description>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.</description>
+ <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</guid>
+ <description>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.</description>
</item>
<item>
<title>Migrating from Ranch 1.x</title>
- <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</link>
+ <link>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</guid>
+ <guid>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</guid>
<description>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.</description>
</item>
@@ -2261,6 +2262,16 @@ While only one response is allowed for every request, HTTP/2 introduced a mechan
</item>
<item>
+ <title>Migrating from Ranch 1.x</title>
+ <link>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+ <guid>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</guid>
+ <description>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.</description>
+ </item>
+
+ <item>
<title>Erlang shell</title>
<link>https://ninenines.eu/docs/en/erlang.mk/1/guide/shell/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
@@ -3175,6 +3186,17 @@ Cowboy 2.2.2 While fixing the miscount in the previous patch release an issue wa
</item>
<item>
+ <title>Changes since Cowboy 2.6</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.6/</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.6/</guid>
+ <description>The following patch versions were released since Cowboy 2.6:
+Cowboy 2.6.1 This release updates Ranch to 1.7.1.
+It fixes an issue with the PROXY protocol where the wrong CRC32 algorithm was used and would cause checksum verification to fail.</description>
+ </item>
+
+ <item>
<title>Migrating from Cowboy 1.0 to 2.0</title>
<link>https://ninenines.eu/docs/en/cowboy/2.0/guide/migrating_from_1.0/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
@@ -3226,17 +3248,6 @@ Features added Add option linger_timeout to control how long Cowboy will wait be
</item>
<item>
- <title>Migrating from Cowboy 2.5 to 2.6</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</link>
- <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</guid>
- <description>Cowboy 2.6 greatly refactored the HTTP/2 code, a large part of which was moved to Cowlib and is now used by both the Cowboy server and the Gun client.
-A large number of tickets were also closed which resulted in many bugs fixed and many features and options added, although some of them are still experimental.
-Features added Add support for the PROXY protocol header. It can be enabled via the proxy_header option.</description>
- </item>
-
- <item>
<title>HTTP and other specifications</title>
<link>https://ninenines.eu/docs/en/cowboy/2.0/guide/specs/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
@@ -3298,13 +3309,14 @@ Features added Add experimental support for Websocket over HTTP/2. You can use t
</item>
<item>
- <title>Migrating from Cowboy 2.4 to 2.5</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</link>
+ <title>Migrating from Cowboy 2.5 to 2.6</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</guid>
- <description>Cowboy 2.5 focused on making the test suites pass. A variety of new features, fixes and improvements have also been worked on.
-Features added Add option linger_timeout to control how long Cowboy will wait before closing the socket when shutting down the connection. This helps avoid the TCP reset problem HTTP/1.1 suffers from. The default is now 1000 ms. It is now possible to stream a response body without using chunked transfer-encoding when the protocol is HTTP/1.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</guid>
+ <description>Cowboy 2.6 greatly refactored the HTTP/2 code, a large part of which was moved to Cowlib and is now used by both the Cowboy server and the Gun client.
+A large number of tickets were also closed which resulted in many bugs fixed and many features and options added, although some of them are still experimental.
+Features added Add support for the PROXY protocol header. It can be enabled via the proxy_header option.</description>
</item>
<item>
@@ -3358,13 +3370,13 @@ Features added Add support for all functions from the module sys. Note that Cowb
</item>
<item>
- <title>Migrating from Cowboy 2.3 to 2.4</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</link>
+ <title>Migrating from Cowboy 2.4 to 2.5</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</guid>
- <description>Cowboy 2.4 focused on improving the HTTP/2 implementation. All existing tests from RFC7540 and the h2spec test suite now all pass. Numerous options have been added to control SETTINGS and related behavior. In addition experimental support for Websocket over HTTP/2 was added.
-Features added Add experimental support for Websocket over HTTP/2. You can use the enable_connect_protocol option to enable. It implements the following draft: https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-01 Add options max_decode_table_size and max_encode_table_size to restrict the size of the HPACK compression dictionary.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</guid>
+ <description>Cowboy 2.5 focused on making the test suites pass. A variety of new features, fixes and improvements have also been worked on.
+Features added Add option linger_timeout to control how long Cowboy will wait before closing the socket when shutting down the connection. This helps avoid the TCP reset problem HTTP/1.1 suffers from. The default is now 1000 ms. It is now possible to stream a response body without using chunked transfer-encoding when the protocol is HTTP/1.</description>
</item>
<item>
@@ -3410,13 +3422,13 @@ Features added Add support for sending trailers at the end of response bodies. T
</item>
<item>
- <title>Migrating from Cowboy 2.2 to 2.3</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</link>
+ <title>Migrating from Cowboy 2.3 to 2.4</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</guid>
- <description>Cowboy 2.3 focused on making the Cowboy processes behave properly according to OTP principles. This version is a very good milestone toward that goal and most of everything should now work. Release upgrades and a few details will be improved in future versions.
-Features added Add support for all functions from the module sys. Note that Cowboy currently does not implement the sys debugging mechanisms as tracing is recommended instead. Add a max_frame_size option for Websocket handlers to close the connection when the client attempts to send a frame that&amp;apos;s too large.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</guid>
+ <description>Cowboy 2.4 focused on improving the HTTP/2 implementation. All existing tests from RFC7540 and the h2spec test suite now all pass. Numerous options have been added to control SETTINGS and related behavior. In addition experimental support for Websocket over HTTP/2 was added.
+Features added Add experimental support for Websocket over HTTP/2. You can use the enable_connect_protocol option to enable. It implements the following draft: https://tools.ietf.org/html/draft-ietf-httpbis-h2-websockets-01 Add options max_decode_table_size and max_encode_table_size to restrict the size of the HPACK compression dictionary.</description>
</item>
<item>
@@ -3461,13 +3473,13 @@ Features added It is now possible to obtain the client TLS certificate and the l
</item>
<item>
- <title>Migrating from Cowboy 2.1 to 2.2</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</link>
+ <title>Migrating from Cowboy 2.2 to 2.3</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</guid>
- <description>Cowboy 2.2 focused on adding features required for writing gRPC servers and on completing test suites for the core HTTP RFCs, fixing many bugs along the way.
-Features added Add support for sending trailers at the end of response bodies. Trailers are additional header fields that may be sent after the body to add more information to the response. Their usage is required in gRPC servers. They are optional and may be discarded in other scenarios (for example if the request goes through an HTTP/1.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</guid>
+ <description>Cowboy 2.3 focused on making the Cowboy processes behave properly according to OTP principles. This version is a very good milestone toward that goal and most of everything should now work. Release upgrades and a few details will be improved in future versions.
+Features added Add support for all functions from the module sys. Note that Cowboy currently does not implement the sys debugging mechanisms as tracing is recommended instead. Add a max_frame_size option for Websocket handlers to close the connection when the client attempts to send a frame that&amp;apos;s too large.</description>
</item>
<item>
@@ -3492,13 +3504,13 @@ Compatibility Compatibility with Erlang/OTP R16, 17 and 18 has been dropped. Erl
</item>
<item>
- <title>Migrating from Cowboy 2.0 to 2.1</title>
- <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</link>
+ <title>Migrating from Cowboy 2.1 to 2.2</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
- <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</guid>
- <description>Cowboy 2.1 focused on adding features that were temporarily removed in Cowboy 2.0. A number of bugs found in the 2.0 release were also fixed.
-Features added It is now possible to obtain the client TLS certificate and the local IP/port for the connection from the Req object. Informational responses (1XX responses) can now be sent. They must be sent before initiating the final response. The expect: 100-continue header is now handled automatically.</description>
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</guid>
+ <description>Cowboy 2.2 focused on adding features required for writing gRPC servers and on completing test suites for the core HTTP RFCs, fixing many bugs along the way.
+Features added Add support for sending trailers at the end of response bodies. Trailers are additional header fields that may be sent after the body to add more information to the response. Their usage is required in gRPC servers. They are optional and may be discarded in other scenarios (for example if the request goes through an HTTP/1.</description>
</item>
<item>
@@ -3512,6 +3524,16 @@ HTTP IANA Registries HTTP Method Registry HTTP Status Code Registry Message He
</item>
<item>
+ <title>Migrating from Cowboy 2.0 to 2.1</title>
+ <link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</link>
+ <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+
+ <guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</guid>
+ <description>Cowboy 2.1 focused on adding features that were temporarily removed in Cowboy 2.0. A number of bugs found in the 2.0 release were also fixed.
+Features added It is now possible to obtain the client TLS certificate and the local IP/port for the connection from the Req object. Informational responses (1XX responses) can now be sent. They must be sent before initiating the final response. The expect: 100-continue header is now handled automatically.</description>
+ </item>
+
+ <item>
<title>Migrating from Cowboy 1.0 to 2.0</title>
<link>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_1.0/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
@@ -4177,7 +4199,7 @@ cowboy(3) - Listener management cowboy_req(3) - Request and response cowboy_ro
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://ninenines.eu/docs/en/cowboy/2.6/guide/</guid>
- <description>Rationale The modern Web Erlang and the Web Introduction Introduction Getting started Flow diagram Configuration Listeners Routing Constraints Handlers Handlers Loop handlers Static files Request and response Request details Reading the request body Sending a response Using cookies Multipart REST REST principles Handling REST requests REST flowcharts Designing a resource handler Websocket The Websocket protocol Websocket handlers Advanced Streams Middlewares Additional information Migrating from Cowboy 2.</description>
+ <description>Rationale The modern Web Erlang and the Web Introduction Introduction Getting started Flow diagram Configuration Listeners Routing Constraints Handlers Handlers Loop handlers Static files Request and response Request details Reading the request body Sending a response Using cookies Multipart REST REST principles Handling REST requests REST flowcharts Designing a resource handler Websocket The Websocket protocol Websocket handlers Advanced Streams Middlewares Additional information Changes since Cowboy 2.</description>
</item>
<item>
@@ -4465,7 +4487,7 @@ ranch_ssl(3) - SSL transport ranch_tcp(3) - TCP transport Behaviors:</descrip
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://ninenines.eu/docs/en/ranch/1.7/guide/</guid>
- <description>Interface Introduction Listeners Transports Protocols Embedded mode How to Writing parsers SSL client authentication Advanced Internals Additional information Upcoming changes in Ranch 2.0 Migrating from Ranch 1.6 to 1.7 Migrating from Ranch 1.5 to 1.6 Migrating from Ranch 1.x </description>
+ <description>Interface Introduction Listeners Transports Protocols Embedded mode How to Writing parsers SSL client authentication Advanced Internals Additional information Upcoming changes in Ranch 2.0 Changes since Ranch 1.7 Migrating from Ranch 1.6 to 1.7 Migrating from Ranch 1.5 to 1.6 Migrating from Ranch 1.x </description>
</item>
<item>
@@ -12625,7 +12647,7 @@ Exports ranch_proxy_header:parse(3) - Parse a PROXY protocol header ranch_proxy
<guid>https://ninenines.eu/docs/en/ranch/1.7/manual/ranch_proxy_header.header/</guid>
<description>Name ranch_proxy_header:header - Build a PROXY protocol header
-Description header(ProxyInfo) -&amp;gt; header(ProxyInfo, #{}) header(ProxyInfo, BuildOpts) -&amp;gt; iodata() ProxyInfo :: ranch_proxy_header:proxy_info() BuildOpts :: #{ checksum =&amp;gt; crc32, padding =&amp;gt; pos_integer() %% &amp;gt;= 3 } Build a PROXY protocol header.
+Description header(ProxyInfo) -&amp;gt; header(ProxyInfo, #{}) header(ProxyInfo, BuildOpts) -&amp;gt; iodata() ProxyInfo :: ranch_proxy_header:proxy_info() BuildOpts :: #{ checksum =&amp;gt; crc32c, padding =&amp;gt; pos_integer() %% &amp;gt;= 3 } Build a PROXY protocol header.
Arguments ProxyInfo The proxy information to encode.
BuildOpts Options to control whether to add a checksum or padding should be included in the encoded PROXY protocol header.
Return value The PROXY protocol header is returned.</description>
diff --git a/services/index.html b/services/index.html
index 79bc3266..b47e7380 100644
--- a/services/index.html
+++ b/services/index.html
@@ -796,6 +796,10 @@
+
+
+
+
<h3 id="_like_my_work__donate">Like my work? Donate!</h3>
<p>Donate to Loïc Hoguin because his work on Cowboy and Erlang.mk is fantastic:</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="display:inline">
diff --git a/sitemap.xml b/sitemap.xml
index d914f620..783e0c0e 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -623,7 +623,7 @@
</url>
<url>
- <loc>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</loc>
+ <loc>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.7/</loc>
</url>
<url>
@@ -695,7 +695,7 @@
</url>
<url>
- <loc>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</loc>
+ <loc>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.6/</loc>
</url>
<url>
@@ -731,11 +731,11 @@
</url>
<url>
- <loc>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</loc>
+ <loc>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.5/</loc>
</url>
<url>
- <loc>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</loc>
+ <loc>https://ninenines.eu/docs/en/ranch/1.6/guide/migrating_from_1.x/</loc>
</url>
<url>
@@ -803,6 +803,10 @@
</url>
<url>
+ <loc>https://ninenines.eu/docs/en/ranch/1.7/guide/migrating_from_1.x/</loc>
+ </url>
+
+ <url>
<loc>https://ninenines.eu/docs/en/erlang.mk/1/guide/shell/</loc>
</url>
@@ -1139,6 +1143,10 @@
</url>
<url>
+ <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.6/</loc>
+ </url>
+
+ <url>
<loc>https://ninenines.eu/docs/en/cowboy/2.0/guide/migrating_from_1.0/</loc>
</url>
@@ -1159,10 +1167,6 @@
</url>
<url>
- <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</loc>
- </url>
-
- <url>
<loc>https://ninenines.eu/docs/en/cowboy/2.0/guide/specs/</loc>
</url>
@@ -1187,7 +1191,7 @@
</url>
<url>
- <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</loc>
+ <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.5/</loc>
</url>
<url>
@@ -1211,7 +1215,7 @@
</url>
<url>
- <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</loc>
+ <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.4/</loc>
</url>
<url>
@@ -1231,7 +1235,7 @@
</url>
<url>
- <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</loc>
+ <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.3/</loc>
</url>
<url>
@@ -1251,7 +1255,7 @@
</url>
<url>
- <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</loc>
+ <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.2/</loc>
</url>
<url>
@@ -1263,7 +1267,7 @@
</url>
<url>
- <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</loc>
+ <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.1/</loc>
</url>
<url>
@@ -1271,6 +1275,10 @@
</url>
<url>
+ <loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_2.0/</loc>
+ </url>
+
+ <url>
<loc>https://ninenines.eu/docs/en/cowboy/2.6/guide/migrating_from_1.0/</loc>
</url>