aboutsummaryrefslogtreecommitdiffstats
path: root/src/ranch_ssl.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2012-09-26 00:40:48 +0200
committerLoïc Hoguin <[email protected]>2012-09-26 00:41:27 +0200
commitcd099983b1b807b87fa050d1e4ff0a13aba25b49 (patch)
tree844af725fa7102dd1c532aebecce1bf927c83450 /src/ranch_ssl.erl
parentde9b6f7a707efd308a6d6535d8296c15ea277308 (diff)
downloadranch-cd099983b1b807b87fa050d1e4ff0a13aba25b49.tar.gz
ranch-cd099983b1b807b87fa050d1e4ff0a13aba25b49.tar.bz2
ranch-cd099983b1b807b87fa050d1e4ff0a13aba25b49.zip
Add the {nodelay, boolean()} option controlling TCP_NODELAY
Enabled by default. A comprehensive explanation about TCP_NODELAY and the Nagle algorithm can be found at http://www.stuartcheshire.org/papers/NagleDelayedAck/
Diffstat (limited to 'src/ranch_ssl.erl')
-rw-r--r--src/ranch_ssl.erl11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/ranch_ssl.erl b/src/ranch_ssl.erl
index 72b59db..1471f62 100644
--- a/src/ranch_ssl.erl
+++ b/src/ranch_ssl.erl
@@ -64,6 +64,7 @@ messages() -> {ssl, ssl_closed, ssl_error}.
%% by default.</dd>
%% <dt>keyfile</dt><dd>Optional. Path to the file containing the user's
%% private PEM encoded key.</dd>
+%% <dt>nodelay</dt><dd>Optional. Enable TCP_NODELAY. Enabled by default.</dd>
%% <dt>password</dt><dd>Optional. String containing the user's password.
%% All private keyfiles must be password protected currently.</dd>
%% <dt>port</dt><dd>TCP port number to open. Defaults to 0 (see below)</dd>
@@ -78,8 +79,8 @@ messages() -> {ssl, ssl_closed, ssl_error}.
%% @see ssl:listen/2
-spec listen([{backlog, non_neg_integer()} | {cacertfile, string()}
| {certfile, string()} | {ciphers, [ssl:erl_cipher_suite()] | string()}
- | {ip, inet:ip_address()} | {keyfile, string()} | {password, string()}
- | {port, inet:port_number()}])
+ | {ip, inet:ip_address()} | {keyfile, string()} | {nodelay, boolean()}
+ | {password, string()} | {port, inet:port_number()}])
-> {ok, ssl:sslsocket()} | {error, atom()}.
listen(Opts) ->
ranch:require([crypto, public_key, ssl]),
@@ -89,8 +90,10 @@ listen(Opts) ->
%% The port in the options takes precedence over the one in the
%% first argument.
ssl:listen(0, ranch:filter_options(Opts2,
- [backlog, cacertfile, certfile, ciphers, ip, keyfile, password, port],
- [binary, {active, false}, {packet, raw}, {reuseaddr, true}])).
+ [backlog, cacertfile, certfile, ciphers, ip,
+ keyfile, nodelay, password, port],
+ [binary, {active, false}, {packet, raw},
+ {reuseaddr, true}, {nodelay, true}])).
%% @doc Accept connections with the given listening socket.
%%