diff options
Diffstat (limited to 'docs/en/gun/2.0/guide')
-rw-r--r-- | docs/en/gun/2.0/guide/introduction.asciidoc | 8 | ||||
-rw-r--r-- | docs/en/gun/2.0/guide/introduction/index.html | 3 | ||||
-rw-r--r-- | docs/en/gun/2.0/guide/migrating_from_1.3.asciidoc | 34 | ||||
-rw-r--r-- | docs/en/gun/2.0/guide/migrating_from_1.3/index.html | 18 |
4 files changed, 48 insertions, 15 deletions
diff --git a/docs/en/gun/2.0/guide/introduction.asciidoc b/docs/en/gun/2.0/guide/introduction.asciidoc index dfbe1e30..a54a8d1d 100644 --- a/docs/en/gun/2.0/guide/introduction.asciidoc +++ b/docs/en/gun/2.0/guide/introduction.asciidoc @@ -14,13 +14,7 @@ protocols is required in order to read this guide. Gun is tested and supported on Linux, FreeBSD, Windows and OSX. -Gun is developed for Erlang/OTP 20.0 and newer. - -Note that Gun will not work on the Windows build of Erlang/OTP 20.3 -due to a bug in Erlang/OTP's stdlib application. The ticket number -for this bug is OTP-13995 and it was fixed in the patch release -OTP-20.3.2. Replacing the `gen_statem.beam` file on an 20.3 -installation is enough to fix the issue. +Gun is developed for Erlang/OTP 22.0 and newer. === License diff --git a/docs/en/gun/2.0/guide/introduction/index.html b/docs/en/gun/2.0/guide/introduction/index.html index 1b833e46..6f8f0006 100644 --- a/docs/en/gun/2.0/guide/introduction/index.html +++ b/docs/en/gun/2.0/guide/introduction/index.html @@ -68,8 +68,7 @@ <p>Knowledge of Erlang, but also of the HTTP/1.1, HTTP/2 and Websocket protocols is required in order to read this guide.</p> <h2 id="_supported_platforms">Supported platforms</h2> <p>Gun is tested and supported on Linux, FreeBSD, Windows and OSX.</p> -<p>Gun is developed for Erlang/OTP 20.0 and newer.</p> -<p>Note that Gun will not work on the Windows build of Erlang/OTP 20.3 due to a bug in Erlang/OTP's stdlib application. The ticket number for this bug is OTP-13995 and it was fixed in the patch release OTP-20.3.2. Replacing the <code>gen_statem.beam</code> file on an 20.3 installation is enough to fix the issue.</p> +<p>Gun is developed for Erlang/OTP 22.0 and newer.</p> <h2 id="_license">License</h2> <p>Gun uses the ISC License.</p> <div class="listingblock"><div class="content"><pre>Copyright (c) 2013-2019, Loïc Hoguin <[email protected]> diff --git a/docs/en/gun/2.0/guide/migrating_from_1.3.asciidoc b/docs/en/gun/2.0/guide/migrating_from_1.3.asciidoc index 1e2b8943..a20a0582 100644 --- a/docs/en/gun/2.0/guide/migrating_from_1.3.asciidoc +++ b/docs/en/gun/2.0/guide/migrating_from_1.3.asciidoc @@ -19,10 +19,21 @@ much more advanced. The Gun connection process is now implemented using `gen_statem`. -Gun 2.0 requires Erlang/OTP 20.0 or greater. +Gun 2.0 requires Erlang/OTP 22.0 or greater. === Features added +* Cookie store support has been added. The `cookie_store` + option allows configuring the cookie store backend. + The `gun_cookies` module provides functions to help + implementing such a backend. Gun comes with the backend + `gun_cookies_list` which provides a per-connection, + non-persistent cookie store. The cookie store engine + implements the entire RFC6265bis draft algorithms except + the parts about non-HTTP cookies as no such interface is + provided; and the parts about SameSite as Gun has no + concept of "browsing context". + * Graceful shutdown has been implemented. Graceful shutdown can be initiated on the client side by calling the new function `gun:shutdown/1` or when the owner process goes @@ -76,8 +87,7 @@ Gun 2.0 requires Erlang/OTP 20.0 or greater. for any sort of protocols. This can also be useful when performing HTTP/1.1 Upgrade to custom protocols. -* Headers can now be provided as a map. Header names may now - be provided as binary, string or atom. +* Headers can now be provided as a map. * Header names may now be provided as binary, string or atom. @@ -218,3 +228,21 @@ Gun 2.0 requires Erlang/OTP 20.0 or greater. * An invalid stream reference was sent on failed Websocket upgrade responses. This has been corrected. + +* HTTP/2 connection preface errors are now properly detected + and propagated in the `gun_down` message to the connection + owner as well as the exit reason of the Gun process. + +* HTTP/2 connection preface errors now provide a different + human readable error when the data received looks like an + HTTP/1.x response. + +* HTTP/2 connection errors were missing the human readable + reason in the `gun_error` message. This has been corrected. + +* Fix the host and :authority (pseudo-)headers when connecting + to an IPv6 address given as a tuple. They were lacking the + surrounding brackets. + +* Fix a crash in gun:info/1 when the socket was closed before + we call Transport:sockname/1. diff --git a/docs/en/gun/2.0/guide/migrating_from_1.3/index.html b/docs/en/gun/2.0/guide/migrating_from_1.3/index.html index de7015dc..6d9a22a9 100644 --- a/docs/en/gun/2.0/guide/migrating_from_1.3/index.html +++ b/docs/en/gun/2.0/guide/migrating_from_1.3/index.html @@ -66,9 +66,11 @@ <p>Gun 2.0 greatly improves the HTTP/2 performance when it comes to receiving large response bodies; and when receiving response bodies from many separate requests concurrently.</p> <p>Gun now shares much of its HTTP/2 code with Cowboy, including the HTTP/2 state machine. Numerous issues were fixed as a result because the Cowboy implementation was much more advanced.</p> <p>The Gun connection process is now implemented using <code>gen_statem</code>.</p> -<p>Gun 2.0 requires Erlang/OTP 20.0 or greater.</p> +<p>Gun 2.0 requires Erlang/OTP 22.0 or greater.</p> <h2 id="_features_added">Features added</h2> -<ul><li>Graceful shutdown has been implemented. Graceful shutdown can be initiated on the client side by calling the new function <code>gun:shutdown/1</code> or when the owner process goes away; or on the peer side via the connection: close HTTP/1.1 header, the HTTP/2 GOAWAY frame or the Websocket close frame. Gun will try to complete existing streams when possible; other streams get canceled immediately. The <code>closing_timeout</code> option controls how long we are willing to wait at most before closing the connection. +<ul><li>Cookie store support has been added. The <code>cookie_store</code> option allows configuring the cookie store backend. The <code>gun_cookies</code> module provides functions to help implementing such a backend. Gun comes with the backend <code>gun_cookies_list</code> which provides a per-connection, non-persistent cookie store. The cookie store engine implements the entire RFC6265bis draft algorithms except the parts about non-HTTP cookies as no such interface is provided; and the parts about SameSite as Gun has no concept of "browsing context". +</li> +<li>Graceful shutdown has been implemented. Graceful shutdown can be initiated on the client side by calling the new function <code>gun:shutdown/1</code> or when the owner process goes away; or on the peer side via the connection: close HTTP/1.1 header, the HTTP/2 GOAWAY frame or the Websocket close frame. Gun will try to complete existing streams when possible; other streams get canceled immediately. The <code>closing_timeout</code> option controls how long we are willing to wait at most before closing the connection. </li> <li>Flow control has been added. It allows limiting the number of data/Websocket messages Gun sends to the calling process. Gun will stop reading from the socket or stop updating the protocol's flow control window when applicable as well, to apply some backpressure to the remote endpoint(s). It is disabled by default and can be applied on a per-request basis if necessary. </li> @@ -84,7 +86,7 @@ </li> <li>Gun can now be used to send and receive raw data, as if it was just a normal socket. This can be useful when needing to connect through a number of HTTP/Socks proxies, allowing the use of Gun's great proxying capabilities (including TLS over TLS) for any sort of protocols. This can also be useful when performing HTTP/1.1 Upgrade to custom protocols. </li> -<li>Headers can now be provided as a map. Header names may now be provided as binary, string or atom. +<li>Headers can now be provided as a map. </li> <li>Header names may now be provided as binary, string or atom. </li> @@ -166,6 +168,16 @@ </li> <li>An invalid stream reference was sent on failed Websocket upgrade responses. This has been corrected. </li> +<li>HTTP/2 connection preface errors are now properly detected and propagated in the <code>gun_down</code> message to the connection owner as well as the exit reason of the Gun process. +</li> +<li>HTTP/2 connection preface errors now provide a different human readable error when the data received looks like an HTTP/1.x response. +</li> +<li>HTTP/2 connection errors were missing the human readable reason in the <code>gun_error</code> message. This has been corrected. +</li> +<li>Fix the host and :authority (pseudo-)headers when connecting to an IPv6 address given as a tuple. They were lacking the surrounding brackets. +</li> +<li>Fix a crash in gun:info/1 when the socket was closed before we call Transport:sockname/1. +</li> </ul> |