aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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
2018-09-17Clean listener options after normal shutdownjuhlig
In addition to cleaning when ranch:stop_listener/1 is called, we also need to clean when we detect the supervisor is going away for normal reasons, because the supervisor might be in another application's supervision tree. Note that there might be a short delay in this case before the cleanup is done, due to using monitors for detection.
2018-08-13Ranch 1.6.11.6.1Loïc Hoguin
2018-08-13Use 1.6 doc link in the READMEgetong
2018-08-13Export the function ranch:normalize_opts/1Loïc Hoguin
This can be used by Cowboy to better deal with the switch to maps for transport options and avoid the log message when using lists.
2018-08-01Remove the changelog; it's now part of the user guide1.6.0Loïc Hoguin
2018-08-01More release notesLoïc Hoguin
2018-08-01Use fn/1,2 instead of fn/{1,2} everywhereLoïc Hoguin
2018-08-01Ranch 1.6Loïc Hoguin
2018-08-01Remove R16 compatibilityLoïc Hoguin
Ranch is now made for and tested on 18+ only.
2018-08-01get_status now reports running when acceptors_sup is restartingj.uhlig
2018-08-01Fix ranch:wait_for_connections_loop/4 intervalLJZN
2018-08-01Update Erlang.mk to fix an issue with LATEST_ERLANG_OTPLoïc Hoguin
2018-08-01Fix a test failing in native modeLoïc Hoguin
2018-07-31Update Erlang.mkLoïc Hoguin
2018-07-31Revisit the manual pages for the various modulesLoïc Hoguin
2018-07-31Correct the sendfile specs for the filenameLoïc Hoguin
2018-07-31Fix some whitespaceLoïc Hoguin
2018-07-18Add one manual per function for the ranch moduleLoïc Hoguin
Also review and update the ranch(7) manual and fix a few specs.
2018-07-05Hide cacerts from the listen error logLoïc Hoguin
It can be quite huge and hinders readability.
2018-07-05Add a logger transport optionLoïc Hoguin
I had to use the process dictionary to work around the current interface for one log call. You have been warned.
2018-07-04Add a useful comment to the MakefileLoïc Hoguin
2018-07-04Return errors from Transport:handshakeLoïc Hoguin
The "normal" errors are still silenced when calling ranch:handshake.
2018-07-04Enable TLS upgrades via ranch_ssl:handshake/3Loïc Hoguin
Based on the work done by @juhlig.
2018-07-04Fix a typo in a type in the documentationLoïc Hoguin
2018-07-04Document upcoming changes in Ranch 2.0Loïc Hoguin
2018-07-04Better distinguish between Ranch and socket optionsLoïc Hoguin
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.
2018-07-02Mark ranch:accept_ack/1 as deprecatedLoïc Hoguin
2018-07-02Remove an old R16B01/02 workaroundLoïc Hoguin
Next release will only support 18+.
2018-07-02Introduce Transport:handshake/1,2j.uhlig
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.
2018-05-30Update Erlang.mkLoïc Hoguin
2018-05-23Fix intermittent test failure of misc_wait_for_connectionsj.uhlig
2018-05-17Add a function to wait for number of connectionsj.uhlig
LH: Reworked validation style and added a -dialyzer attribute to acceptor_SUITE to silence expected errors.
2018-05-16Add nowarn_export_all to test suitesLoïc Hoguin
2018-05-16Ensure listener restart with changed TransOptsj.uhlig