Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
* Use the map form for transport options everywhere
* Remove mentions of the list form for transport options
* Use a state enter call instead of gen_statem:enter_loop/4 and
proc_lib:start_link/3 in the tcp_reverse example
* Take care of different EOLs in the tcp_reverse example
* Mention state enter calls, the next_event action, and {continue, ...}
in the docs for how to use gen_statem and gen_server
|
|
|
|
Clarifications and examples.
|
|
|
|
|
|
|
|
Also fix some Protocol:start_link/4 into start_link/3
left over in the documentation.
|
|
|
|
|
|
Lift the restriction that a listener must be suspended before
transport options can be changed.
* Changes to the `max_connections`, `handshake_timeout` and `shutdown`
options will take effect immediately.
* Changes to the `num_acceptors`, `num_listen_sockets` and `socket_opts`
options will take effect when a listener is suspended and resumed, or
when the acceptors supervisor restarts.
* Changes to the `num_conns_sups` and `connection_type` options will only
take effect when the connections super-supervisor restarts.
* Changes to the `logger` option will never take effect, unless a listener
is stopped and started with fresh transport options.
The fetching and handing down of transport options changes with this
commit, to ensure consistency between the individual components in the
hierarchy.
* The `num_acceptors` option is handed down from the listener supervisor to
the acceptors supervisor in the child spec, while the `num_listen_sockets`
and `socket_opts` options are read inside the acceptors supervisor itself.
This way, the `num_acceptors` option will only take effect when the listener
supervisor restarts, whereas the other two options will take effect
when acceptors supervisor restarts. This commit moves the fetching of
the `num_acceptors` option into the acceptors supervisor as well.
* The `logger` option is read in multiple places throughout the hierarchy.
This way it may happen that processes that suffered a crash and restart
may use a different logger than other processes that did not. This commit
reads the `logger` from the transport options given to the listener supervisor
start function, and hands it down from there.
* The `connection_type` option is read individually by each connection supervisor.
This way, a restart of an individual connection supervisor may cause them
to use a different connection type than the others. This commit reads the
transport options in the connections super-supervisor, and hands them down to
the individual connections supervisors.
* The `num_conns_sups` is handed down from the listener supervisor to the
connections super-supervisor. This way, a change to this option will only
take effect when the listener supervisor restarts. This commit moves
the fetching of this option inside the connections super-supervisor. This
change is merely for structural consistency, it is not necessary for operational
consistency.
|
|
|
|
The callback `ranch_transport:listen/1` has changed to accept a map
of transport options instead of socket options.
|
|
|
|
|
|
|
|
We now require OTP-21+ therefore there's no need to keep
the default of error_logger.
|
|
|
|
This makes Ranch require OTP-21+. The function ranch:accept_ack/1
was also removed in this commit.
|
|
|
|
This new option allows configuring the number of connection
supervisors. The old behavior can be obtained by setting this
value to 1. A value larger than num_acceptors will result in
some connection supervisors not being used as the acceptors
currently only use one connection supervisor.
|
|
|
|
Turns out it wasn't the plain CRC32 algorithm that should have
been used, whoops!
The implementation was adapted from pseudo code from
Thomas Cioppettini.
I've renamed the PROXY header building option value for
checksum from crc32 to crc32c and updated the documentation.
There is no support for plain crc32 checksums.
|
|
|
|
|
|
|
|
Also review and update the ranch(7) manual and fix a few specs.
|
|
Based on the work done by @juhlig.
|
|
|
|
A map should now be used when specifying transport options
that contain more than just socket options. It is still
possible to pass a list of socket options directly as a
convenience.
The ack_timeout is renamed to handshake_timeout when
specified as a map. This corresponds to the new function
ranch:handshake/1,2 that will be favored in Ranch 2.0.
Specifying Ranch-specific options via the proplist will
no longer be possible starting from Ranch 2.0.
|
|
This commit deprecates Transport:accept_ack/1 in favor of
a new forward-compatible function. Transport:handshake/1,2
will use ssl:handshake/2,3 from Ranch 2.0 onward.
|
|
LH: Reworked validation style and added a -dialyzer
attribute to acceptor_SUITE to silence expected errors.
|
|
This allows graceful draining of connections, updating transport
options on a running listener without having to drop connections
and other similar scenarios.
Note that when updating transport options the listener must be
suspended which means that new connections will be rejected until
the listener is resumed.
|
|
|
|
The NumAcceptors argument has been moved to transport option
num_acceptor, which defaults to 10. The functions now take
one less argument. The old functions are still here, though
deprecated.
|
|
|
|
Provides detailed information about Ranch listeners
|
|
|
|
Added in ssl-7.3.1 (OTP-13261). Documented in ssl-8.0.
|
|
|
|
|
|
|
|
|