From b400e34386ec0dc3f290da6c4671d7d0621d2fe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 4 Jul 2018 10:57:05 +0200 Subject: 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. --- src/ranch_acceptors_sup.erl | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'src/ranch_acceptors_sup.erl') 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 -- cgit v1.2.3