blob: a454f9324c6be5f67ece445cea796b90defe8258 (
plain) (
tree)
|
|
[appendix]
== Migrating from Ranch 1.5 to 1.6
Ranch 1.6 added the ability to suspend and resume listeners.
It also deprecates a number of features and add interfaces
that will be used in Ranch 2.0.
Ranch 1.6 is compatible with Erlang/OTP 18.0 onward. Support
for older releases has been removed.
=== Features added
* Listeners can now be suspended/resumed without stopping existing
connection processes. This effectively closes the listening socket
and stops the acceptor processes.
* Transport options can now be updated for suspended listeners.
* The `Socket` argument given when the protocol starts has been
deprecated. In Ranch 2.0 the socket will be obtainable only
by calling `ranch:handshake/1,2`.
* Ranch-specific transport options and socket options are now
better separated. When passing Ranch-specific transport options,
Ranch now expects to receive a map, in which case socket
options are passed in the `socket_opts` value. When there
are only socket options they can be passed to Ranch directly
as a convenience.
* Any future transport option will only be added to the map
type. This includes transport options added in this release.
* The transport option `ack_timeout` was renamed to `handshake_timeout`
in the map type.
* The `cacerts` socket option is now silenced in error logs
just like the `certs` and `key` options.
* The manual has been heavily updated and now features one
manual page per function and module, complete with a per-function
changelog, examples and more.
=== Experimental features added
* It is now possible to configure the restart intensity for
`ranch_sup` using the OTP application environment. This
feature will remain undocumented unless there is popular
demand for it.
* Add the transport option `logger` that allows configuring
which logger module will be used. The logger module must
follow the interface of the new `logger` module in Erlang/OTP 21,
or be set to `error_logger` to keep the old behavior.
=== Changed behaviors
* Transport modules must now implement `Transport:handshake/2,3`
which deprecates and will replace `Transport:accept_ack/1` in
Ranch 2.0. It returns a new socket and can therefore be used
for implementing TLS upgrade mechanisms.
=== New functions
* The functions `ranch:suspend_listener/1` and `ranch:resume_listener/1`
were added. In addition the function `ranch:get_state/1` can be used
to obtain the running state of a listener.
* A function `ranch:wait_for_connections/3` was added.
* A function `ranch:handshake/1,2` was added to replace the
function `ranch:accept_ack/1`.
=== Bugs fixed
* The specs for the function `Transport:sendfile/2,4,5` have been
corrected. The type used for the filename was too restricting.
|