aboutsummaryrefslogtreecommitdiffstats
path: root/src/ranch_ssl.erl
AgeCommit message (Collapse)Author
2013-11-26Add accept_ack on all transports and ack_timeout transport optionLoïc Hoguin
Doing this in the connection process allows us to free acceptors to start accepting more connections quicker, especially under load.
2013-11-25Small fixes to specsLoïc Hoguin
2013-11-14Fix a socket leak with SSL when ssl_accept failsLoïc Hoguin
2013-11-07Implements ranch_transport:connect/4.Geoff Cant
Adds a transport connect method that takes a timeout, with implementations for both ssl and tcp connections.
2013-10-20Merge branch 'hibernate_after' of git://github.com/talko/ranchLoïc Hoguin
2013-09-23Add hibernate_after ssl optionRansom Richardson
2013-09-22Use previous ecc workaround for R16B02 as wellKlaus Trainer
The implementation of elliptic-curve ciphers that has been introduced in R16B01 is still incomplete (and broken). This makes our previous workaround (see c0c09a1311) work for R16B02 as well.
2013-08-16Add Transport:sendfile/4,/5James Fish
Adds offset based sendfile to transports. Same behaviour as file:sendfile/4,/5 except socket and file arguments are reversed and either a raw file or a filename can be used. sendfile/2,/4,/5 now compulsory callbacks in ranch_transport. ranch_tcp:sendfile/2 now defaults to a chunk_size of 8191 - the default for ranch_ssl:sendfile/2. The same default is used for both ranch_tcp:sendfile/4,5 and ranch_ssl:sendfile/4,5.
2013-07-24Work around broken elliptic-curve cipher suitesKlaus Trainer
Unfortunately the implementation of elliptic-curve ciphers that has been introduced in R16B01 is incomplete. Depending on the particular client, this can cause the TLS handshake to break during key agreement. As it turns out that most popular browsers (e.g. Firefox, Chromium, and Safari) are affected by this bug, we provide this workaround. This workaround makes sure that only cipher suite implementations that are not known to be broken are supported by default.
2013-06-20Add asn1 to the list of applications that need to be started for SSLLoïc Hoguin
2013-06-07Add support for additional ssl options.Ransom Richardson
2013-05-16Add ranch_ssl:opts() typeLoïc Hoguin
2013-04-28Allow ranch_ssl to use DER cert/key/ca options.Geoff Cant
The Erlang SSL library allows keys, certs and cacerts to be passed either as DER encoded binaries or in PEM encoded files. This patch allows ranch_ssl to be configured in either manner.
2013-04-08Never tries to ssl_accept with an infinity timeoutLoïc Hoguin
This should be an acceptable temporary solution to the ssl_accept problem. We no longer have to worry about acceptors being dead because ssl_accept never returned.
2013-03-06Add next_protocols_advertised option to ranch_sslLoïc Hoguin
For TLS Next Protocol Negotiation support.
2013-02-18Support for fail_if_no_peer_cert SSL server option.0x00F6
2013-01-15Allow raw socket options for TCP and SSLFred Hebert
This patch lets the user set and use raw socket options as described in inet:setopts/2 documentation. The raw options can be useful to use TCP features that are platform- specific and not supported in inet in general, such as TCP_DEFER_ACCEPT or TCP_LINGER2 in linux stacks, for example.
2012-12-01Add Transport:sendfile/2 supportLoïc Hoguin
Uses file:sendfile/2 for TCP, a fallback function for SSL.
2012-12-01Fix typespecs for Transport:send/2Loïc Hoguin
2012-11-12Allow IP tuples and more when connecting transportsLoïc Hoguin
2012-10-24Allow passing the 'verify' option in ranch_sslLoïc Hoguin
2012-09-26Add the {nodelay, boolean()} option controlling TCP_NODELAYLoïc Hoguin
Enabled by default. A comprehensive explanation about TCP_NODELAY and the Nagle algorithm can be found at http://www.stuartcheshire.org/papers/NagleDelayedAck/
2012-08-20Add the 'ranch_transport' behaviourLoïc Hoguin
At the same time we make the 'port' option optional, defaulting to 0.
2012-08-06Check the accept/2 return value for errorsLoïc Hoguin
Distinguish the errors from transport_accept and ssl_accept in ranch_ssl. {error, closed} for the first one means the listening socket got closed; for the second one it means the connection socket was. Ignore all errors except when the listening socket got closed, where we want to crash to allow opening the socket again.
2012-06-04Add Transport:connect/3 and remove types unneeded by R15B+0.2.1Loïc Hoguin
Also use one export per line to improve future diffs. Bump the version to 0.2.1 to reflect this change.
2012-04-14Import the acceptor code from CowboyLoïc Hoguin
Modules were renamed. The 'cowboy_' prefix became 'ranch_'. At the same time, ranch_ssl_transport became ranch_ssl, and ranch_tcp_transport became ranch_tcp, because appending '_transport' felt a bit redundant considering SSL and TCP clearly are transports. One test has been added to make sure everything is working.