aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-06-17Increase timeout in ssl_chunk_size testjuhlig
2019-06-14Adaptive restart intensity for acceptor and connection supervisorsjuhlig
2019-06-13Filter expected errors from test outputjuhlig
2019-06-06Remove pre-21 ssl version switches from testsjuhlig
2019-06-05Fix timing issues in shutdown test suitejuhlig
2019-06-04Fix Windows timing issuesjuhlig
2019-06-03Fix ssl sendfile tests for Windowsjuhlig
2019-06-03Suppress dialyzer warnings for local addresses with ssljuhlig
2019-06-03Skip privileged ports tests on MacOSjuhlig
2019-06-03Fix many conns_sups tests for Windowsjuhlig
2019-05-27Use transport options in ranch_transport:listen/1 callbacksjuhlig
The callback `ranch_transport:listen/1` has changed to accept a map of transport options instead of socket options.
2019-05-27Update ranch_ssl:ssl_opt() to conform with OTP 22 ssljuhlig
2019-05-22Add docs for local socketsjuhlig
2019-05-22Add inet:local_address() to ranch_tcp ip optionjuhlig
2019-05-18Add tests for active N modejuhlig
2019-05-18Add support for UNIX domain socketsjuhlig
It was working already but the types were wrong and some small details needed to be corrected.
2019-05-13Change supervisor child specs to mapsjuhlig
2019-05-13Fix premature ranch_server:set_addrjuhlig
With num_listen_sockets>1 and SO_REUSEPORT disabled, the startup of ranch_acceptors_sup fails because extra sockets cannot be created. Because ranch_server:set_addr is called right after the creation of the first socket succeeded, ranch:get_port etc may still return an ok tuple until it notices that the listener is in fact down.
2019-05-13Add the passive messages to ranch_transport:messages/0Loïc Hoguin
2019-05-12Properly document logger option; change default to loggerLoïc Hoguin
We now require OTP-21+ therefore there's no need to keep the default of error_logger.
2019-05-12Add experimental num_listen_sockets optionjuhlig
2019-05-09Remove Socket argument from ranch_protocol:start_linkLoïc Hoguin
2019-05-09Use ssl:handshake instead of ssl:ssl_acceptLoïc Hoguin
This makes Ranch require OTP-21+. The function ranch:accept_ack/1 was also removed in this commit.
2019-05-09Remove ranch:start_listener/6 and :child_spec/6Loïc Hoguin
2019-05-09No longer accept mix of Ranch/socket options as listLoïc Hoguin
2019-05-08Remove a paragraph about the old socket optionLoïc Hoguin
2019-05-08Add the num_conns_sups optionjuhlig
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.
2019-05-08Retrieve the conns_sup in the acceptor start functionjuhlig
With the resolution of the pid of a conns_sup in acceptors_sup and thus in the child spec, a crash of a conns_sup and subsequent crash of the associated acceptor causes restarts of the acceptor to fail.
2019-05-06Initial havoc test suiteLoïc Hoguin
2019-05-06Fix some whitespaceLoïc Hoguin
2019-05-06Create one ranch_conns_sup per num_acceptorjuhlig
This gets rid of a bottleneck that occurs when many connections are handled by a single supervisor. The bigger issue occurred when many connections were dropped at once and the supervisor couldn't keep up.
2019-04-29Remove socket optionj.uhlig
2019-04-29Fix repeated removal of connectionsjuhlig
Due to a typo, repeated calls to ranch:remove_connection/1 from a worker process would crash the respective ranch_conns_sup.
2019-03-18Fix Dialyzer warning on unknown `ssl_cipher:erl_cipher_suite/0' typeGuilherme Andrade
* Up until OTP 21.0 it was defined on the ssl_cipher[0] module * On OTP 21.1 it was moved into ssl_cipher_format[1] * On OTP 21.3 it was moved into ssl[2] [0]: https://github.com/erlang/otp/blob/OTP-21.0/lib/ssl/src/ssl_cipher.erl#L56-L60 [1]: https://github.com/erlang/otp/blob/OTP-21.1/lib/ssl/src/ssl_cipher_format.erl#L40-L44 [2]: https://github.com/erlang/otp/blob/OTP-21.3/lib/ssl/src/ssl.erl#L136-L140
2018-11-28Ranch 1.7.11.7.1Loïc Hoguin
2018-11-26Use the correct CRC32 algorithm for the PROXY headerLoïc Hoguin
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.
2018-11-14Update the migration guide for 1.71.7.0Loïc Hoguin
2018-11-14Document the PROXY-related functions; prepare 1.7.0Loïc Hoguin
2018-10-23Always recompile ct_helper in CILoïc Hoguin
2018-10-23Add ranch:recv_proxy_header/2Loïc Hoguin
This is the function that should be called regardless of TCP or TLS being used. The proper usage for this function is: {ok, ProxyInfo} = ranch:recv_proxy_header(Ref, Timeout), {ok, Socket} = ranch:handshake(Ref), ... Ranch takes care of everything else under the hood. Transports now need to have a Transport:recv_proxy_header/2 function. For ranch_ssl the function gets the port from the sslsocket() record and then calls ranch_tcp:recv_proxy_header/2 with it. This means that two undocumented features are currently used for this, but the interface is really nice so that's a sacrifice worth doing. Also worth noting is that OTP 22 should have an alternative for gen_tcp:unrecv/2 so the only real issue is about the sslsocket() record at the moment.
2018-10-10Correct a typo in a manual page titleLoïc Hoguin
2018-10-10Fix a race condition on restart after listener_sup crashLoïc Hoguin
The race condition occurs when the restart is faster than the cleaning up. With this commit the restart will perform the cleanup if it was not done beforehand.
2018-10-10Make the acceptors exit rather than crash on socket closeLoïc Hoguin
This will avoid some unnecessary logs by default. SASL can be enabled to log these events.
2018-10-10Remove a Dialyzer warning in a test protocolLoïc Hoguin
2018-10-10Add ranch_tcp:recv_proxy_header/2Loïc Hoguin
This uses the undocumented function gen_tcp:unrecv/2. Tests have been added for both gen_tcp and ssl connections, including sending data in the same first packet, at least for gen_tcp (ssl tests may or may not end up buffering some of the TLS handshake before the recv call, but there's no guarantees).
2018-10-09Add functions to build the PROXY protocol headerLoïc Hoguin
Also add tests of the type parse(build(Info)), including for testing the TLVs and the padding/checksum verification options.
2018-10-08Drop support for Erlang/OTP 18Loïc Hoguin
2018-10-08Add initial ranch_proxy_header implementationLoïc Hoguin
Using test cases from the spec and tomciopp/proxy_protocol. Many more tests are needed, especially for the TLV part and for the error conditions.
2018-10-04Fix inconsistent naming of filter_user_options/2 argumentKim Shrier
2018-09-17Ranch 1.6.21.6.2Loïc Hoguin