From e7dd9f227e46979d8073e71c683395a809b78cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 1 Oct 2018 16:16:47 +0200 Subject: Gun 1.3.0 --- Makefile | 2 +- README.asciidoc | 4 ++-- doc/src/guide/book.asciidoc | 2 ++ doc/src/guide/migrating_from_1.2.asciidoc | 39 +++++++++++++++++++++++++++++++ doc/src/manual/gun.asciidoc | 2 ++ doc/src/manual/gun.info.asciidoc | 19 +++++++++++++-- ebin/gun.app | 2 +- 7 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 doc/src/guide/migrating_from_1.2.asciidoc diff --git a/Makefile b/Makefile index 6012c04..00a4c5d 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ PROJECT = gun PROJECT_DESCRIPTION = HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP. -PROJECT_VERSION = 1.2.0 +PROJECT_VERSION = 1.3.0 # Options. diff --git a/README.asciidoc b/README.asciidoc index 115f8cf..7421830 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -24,8 +24,8 @@ http://www.leofs.org[LeoFS Cloud Storage]. == Online documentation -* https://ninenines.eu/docs/en/gun/1.2/guide[User guide] -* https://ninenines.eu/docs/en/gun/1.2/manual[Function reference] +* https://ninenines.eu/docs/en/gun/1.3/guide[User guide] +* https://ninenines.eu/docs/en/gun/1.3/manual[Function reference] == Offline documentation diff --git a/doc/src/guide/book.asciidoc b/doc/src/guide/book.asciidoc index 821401b..b374c7a 100644 --- a/doc/src/guide/book.asciidoc +++ b/doc/src/guide/book.asciidoc @@ -20,6 +20,8 @@ include::websocket.asciidoc[Using Websocket] = Additional information +include::migrating_from_1.2.asciidoc[Migrating from Gun 1.2 to 1.3] + include::migrating_from_1.1.asciidoc[Migrating from Gun 1.1 to 1.2] include::migrating_from_1.0.asciidoc[Migrating from Gun 1.0 to 1.1] diff --git a/doc/src/guide/migrating_from_1.2.asciidoc b/doc/src/guide/migrating_from_1.2.asciidoc new file mode 100644 index 0000000..a870858 --- /dev/null +++ b/doc/src/guide/migrating_from_1.2.asciidoc @@ -0,0 +1,39 @@ +[appendix] +== Migrating from Gun 1.2 to 1.3 + +Gun 1.3 improves the support for CONNECT requests +introduced in the previous version and documents +Websocket protocol negotiation. + +== Features added + +* The `protocols` CONNECT destination option has been added + as a replacement for the now deprecated `protocol` option. + +* Add built-in support for Websocket protocol negotiation + through the Websocket option `protocols`. The interface + of the handler module currently remains undocumented and + must be set to `gun_ws_h`. + +* Add the h2specd HTTP/2 test suite from the h2spec project. + +=== Bugs fixed + +* Fix connecting to HTTP/2 over TLS origin servers via + HTTP/1.1 CONNECT proxies. + +* Do not send the HTTP/1.1 keepalive while waiting for + a response to a CONNECT request. + +* Do not crash on HTTP/2 HEADERS frames with the + PRIORITY flag set. + +* Do not crash on HTTP/2 HEADERS frames when the + END_HEADERS flag is not set. + +* Do not crash on unknown HTTP/2 frame types. + +* Reject HTTP/2 WINDOW_UPDATE frames when they would + cause the window to overflow. + +* Send a GOAWAY frame on closing the HTTP/2 connection. diff --git a/doc/src/manual/gun.asciidoc b/doc/src/manual/gun.asciidoc index 020c8b3..a210635 100644 --- a/doc/src/manual/gun.asciidoc +++ b/doc/src/manual/gun.asciidoc @@ -313,6 +313,8 @@ undocumented and must be set to `gun_ws_h`. == Changelog +* *1.3*: Add the CONNECT destination's `protocols` option and + deprecate the previously introduced `protocol` option. * *1.2*: Introduce the type `connect_destination()`. == See also diff --git a/doc/src/manual/gun.info.asciidoc b/doc/src/manual/gun.info.asciidoc index ca7e47a..afb2333 100644 --- a/doc/src/manual/gun.info.asciidoc +++ b/doc/src/manual/gun.info.asciidoc @@ -12,8 +12,21 @@ info(ConnPid) -> Info ConnPid :: pid() Info :: #{ - sock_ip => inet:ip_address(), - sock_port => inet:port_number() + socket => inet:socket() | ssl:sslsocket(), + transport => tcp | tls, + protocol => http | http2 | ws, + sock_ip => inet:ip_address(), + sock_port => inet:port_number(), + origin_host => inet:hostname() | inet:ip_address(), + origin_port => inet:port_number(), + intermediaries => [Intermediary] +} +Intermediary :: #{ + type => connect, + host => inet:hostname() | inet:ip_address(), + port => inet:port_number(), + transport => tcp | tls, + protocol => http | http2 } ---- @@ -32,6 +45,8 @@ the connection. == Changelog +* *1.3*: The values `socket`, `transport`, `protocol`, `origin_host`, + `origin_port` and `intermediaries` were added. * *1.0*: Function introduced. == Examples diff --git a/ebin/gun.app b/ebin/gun.app index 80cbc7e..d21abcf 100644 --- a/ebin/gun.app +++ b/ebin/gun.app @@ -1,6 +1,6 @@ {application, 'gun', [ {description, "HTTP/1.1, HTTP/2 and Websocket client for Erlang/OTP."}, - {vsn, "1.2.0"}, + {vsn, "1.3.0"}, {modules, ['gun','gun_app','gun_content_handler','gun_data_h','gun_http','gun_http2','gun_sse_h','gun_sup','gun_tcp','gun_tls','gun_ws','gun_ws_h']}, {registered, [gun_sup]}, {applications, [kernel,stdlib,ssl,cowlib]}, -- cgit v1.2.3