summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Fedorov <maximfca@gmail.com>2020-05-09 14:04:17 -0700
committerMaxim Fedorov <dane@whatsapp.com>2020-05-14 07:44:38 -0700
commit1d06f1337c3d9531ea3e9d5de92658d87853aeac (patch)
tree8c65eb0743e96d1cd67dcaebea502c606ec9a4ea
parenta7f7e0fb4813521ea0477daa1e31c7276c133794 (diff)
downloaderlang-1d06f1337c3d9531ea3e9d5de92658d87853aeac.tar.gz
inet_tcp_dist: honour {backlog, NNN} setting coming from inet_dist_listen_options
Backlog of 128 was hardcoded into inet_tcp_dist, ignoring any setting coming from inet_dist_listen_options. This change allows to configure backlog as expected.
-rw-r--r--lib/kernel/src/inet_tcp_dist.erl9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/kernel/src/inet_tcp_dist.erl b/lib/kernel/src/inet_tcp_dist.erl
index 8a67597928..244140c8fb 100644
--- a/lib/kernel/src/inet_tcp_dist.erl
+++ b/lib/kernel/src/inet_tcp_dist.erl
@@ -101,7 +101,7 @@ gen_listen(Driver, Name, Host) ->
end.
gen_listen(ErlEpmd, Name, Host, Driver, Options) ->
- ListenOptions = listen_options([{backlog,128}|Options]),
+ ListenOptions = listen_options(Options),
case call_epmd_function(ErlEpmd, listen_port_please, [Name, Host]) of
{ok, 0} ->
{First,Last} = get_port_range(),
@@ -143,7 +143,12 @@ listen_options(Opts0) ->
end,
case application:get_env(kernel, inet_dist_listen_options) of
{ok,ListenOpts} ->
- ListenOpts ++ Opts1;
+ case proplists:is_defined(backlog, ListenOpts) of
+ true ->
+ ListenOpts ++ Opts1;
+ false ->
+ ListenOpts ++ [{backlog, 128} | Opts1]
+ end;
_ ->
Opts1
end.