aboutsummaryrefslogtreecommitdiffstats
path: root/src/ranch_acceptors_sup.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2018-07-04 10:57:05 +0200
committerLoïc Hoguin <[email protected]>2018-07-04 10:57:05 +0200
commitb400e34386ec0dc3f290da6c4671d7d0621d2fe6 (patch)
tree2a59bcbe0ffbdb15ed7c22465b1473dbe1ba0502 /src/ranch_acceptors_sup.erl
parentf4a4843b1b242a3ee0de3f6dd76703f7c6492213 (diff)
downloadranch-b400e34386ec0dc3f290da6c4671d7d0621d2fe6.tar.gz
ranch-b400e34386ec0dc3f290da6c4671d7d0621d2fe6.tar.bz2
ranch-b400e34386ec0dc3f290da6c4671d7d0621d2fe6.zip
Better distinguish between Ranch and socket options
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.
Diffstat (limited to 'src/ranch_acceptors_sup.erl')
-rw-r--r--src/ranch_acceptors_sup.erl24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/ranch_acceptors_sup.erl b/src/ranch_acceptors_sup.erl
index 9e39f2d..9ec4abf 100644
--- a/src/ranch_acceptors_sup.erl
+++ b/src/ranch_acceptors_sup.erl
@@ -15,28 +15,24 @@
-module(ranch_acceptors_sup).
-behaviour(supervisor).
--export([start_link/3]).
+-export([start_link/2]).
-export([init/1]).
--spec start_link(ranch:ref(), non_neg_integer(), module())
+-spec start_link(ranch:ref(), module())
-> {ok, pid()}.
-start_link(Ref, NumAcceptors, Transport) ->
- supervisor:start_link(?MODULE, [Ref, NumAcceptors, Transport]).
+start_link(Ref, Transport) ->
+ supervisor:start_link(?MODULE, [Ref, Transport]).
-init([Ref, NumAcceptors, Transport]) ->
+init([Ref, Transport]) ->
ConnsSup = ranch_server:get_connections_sup(Ref),
TransOpts = ranch_server:get_transport_options(Ref),
- LSocket = case proplists:get_value(socket, TransOpts) of
+ NumAcceptors = maps:get(num_acceptors, TransOpts, 10),
+ LSocket = case maps:get(socket, TransOpts, undefined) of
undefined ->
- TransOpts2 = proplists:delete(ack_timeout,
- proplists:delete(connection_type,
- proplists:delete(max_connections,
- proplists:delete(num_acceptors,
- proplists:delete(shutdown,
- proplists:delete(socket, TransOpts)))))),
- case Transport:listen(TransOpts2) of
+ SocketOpts = maps:get(socket_opts, TransOpts, []),
+ case Transport:listen(SocketOpts) of
{ok, Socket} -> Socket;
- {error, Reason} -> listen_error(Ref, Transport, TransOpts2, Reason)
+ {error, Reason} -> listen_error(Ref, Transport, SocketOpts, Reason)
end;
Socket ->
Socket