From cd099983b1b807b87fa050d1e4ff0a13aba25b49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 26 Sep 2012 00:40:48 +0200 Subject: 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/ --- src/ranch_tcp.erl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/ranch_tcp.erl') diff --git a/src/ranch_tcp.erl b/src/ranch_tcp.erl index 2a9ccd6..18322db 100644 --- a/src/ranch_tcp.erl +++ b/src/ranch_tcp.erl @@ -50,6 +50,7 @@ messages() -> {tcp, tcp_closed, tcp_error}. %% Defaults to 1024. %%
ip
Interface to listen on. Listen on all interfaces %% by default.
+%%
nodelay
Optional. Enable TCP_NODELAY. Enabled by default.
%%
port
TCP port number to open. Defaults to 0 (see below).
%% %% @@ -61,15 +62,16 @@ messages() -> {tcp, tcp_closed, tcp_error}. %% %% @see gen_tcp:listen/2 -spec listen([{backlog, non_neg_integer()} | {ip, inet:ip_address()} - | {port, inet:port_number()}]) + | {nodelay, boolean()} | {port, inet:port_number()}]) -> {ok, inet:socket()} | {error, atom()}. listen(Opts) -> Opts2 = ranch:set_option_default(Opts, backlog, 1024), %% We set the port to 0 because it is given in the Opts directly. %% The port in the options takes precedence over the one in the %% first argument. - gen_tcp:listen(0, ranch:filter_options(Opts2, [port, ip, backlog], - [binary, {active, false}, {packet, raw}, {reuseaddr, true}])). + gen_tcp:listen(0, ranch:filter_options(Opts2, [backlog, ip, nodelay, port], + [binary, {active, false}, {packet, raw}, + {reuseaddr, true}, {nodelay, true}])). %% @doc Accept connections with the given listening socket. %% @see gen_tcp:accept/2 -- cgit v1.2.3