From 7d52280c2e3fcc9e1b89435c98ef96d4758aed7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 25 Jul 2012 11:40:30 +0200 Subject: Make acceptors query the protocol opts on startup This way, if a crash happens in one of them after a protocol options upgrade has occured, the restarted acceptor will get the upgraded options as expected, and not the initial ones. --- src/ranch_acceptors_sup.erl | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src/ranch_acceptors_sup.erl') diff --git a/src/ranch_acceptors_sup.erl b/src/ranch_acceptors_sup.erl index 8cdef17..2e45acf 100644 --- a/src/ranch_acceptors_sup.erl +++ b/src/ranch_acceptors_sup.erl @@ -17,7 +17,7 @@ -behaviour(supervisor). %% API. --export([start_link/8]). +-export([start_link/7]). %% supervisor. -export([init/1]). @@ -25,22 +25,22 @@ %% API. -spec start_link(any(), non_neg_integer(), module(), any(), - module(), any(), pid(), pid()) -> {ok, pid()}. + module(), pid(), pid()) -> {ok, pid()}. start_link(Ref, NbAcceptors, Transport, TransOpts, - Protocol, ProtoOpts, ListenerPid, ConnsPid) -> + Protocol, ListenerPid, ConnsPid) -> supervisor:start_link(?MODULE, [Ref, NbAcceptors, Transport, TransOpts, - Protocol, ProtoOpts, ListenerPid, ConnsPid]). + Protocol, ListenerPid, ConnsPid]). %% supervisor. init([Ref, NbAcceptors, Transport, TransOpts, - Protocol, ProtoOpts, ListenerPid, ConnsPid]) -> + Protocol, ListenerPid, ConnsPid]) -> {ok, LSocket} = Transport:listen(TransOpts), {ok, {_, Port}} = Transport:sockname(LSocket), ranch_listener:set_port(ListenerPid, Port), - Procs = [{{acceptor, self(), N}, {ranch_acceptor, start_link, [ - Ref, LSocket, Transport, Protocol, ProtoOpts, - ListenerPid, ConnsPid - ]}, permanent, brutal_kill, worker, []} - || N <- lists:seq(1, NbAcceptors)], + Procs = [ + {{acceptor, self(), N}, {ranch_acceptor, start_link, [ + Ref, LSocket, Transport, Protocol, ListenerPid, ConnsPid + ]}, permanent, brutal_kill, worker, []} + || N <- lists:seq(1, NbAcceptors)], {ok, {{one_for_one, 10, 10}, Procs}}. -- cgit v1.2.3