aboutsummaryrefslogblamecommitdiffstats
path: root/test/remove_conn_and_wait_protocol.erl
blob: abb4281bee69511bcb506c95783b60120dd6137c (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                       
                           
 
                        
                  
 
                                                       
                                                                     

                  
                                  
                                       
                               
                       
                                                     
                        


                                                                              
            
                                        
-module(remove_conn_and_wait_protocol).
-behaviour(ranch_protocol).

-export([start_link/3]).
-export([init/3]).

start_link(Ref, _, [{remove, MaybeRemove, Timeout}]) ->
	Pid = spawn_link(?MODULE, init, [Ref, MaybeRemove, Timeout]),
	{ok, Pid}.

init(Ref, MaybeRemove, Timeout) ->
	{ok, _} = ranch:handshake(Ref),
	_ = case MaybeRemove of
		true ->
			ranch:remove_connection(Ref);
		false ->
			ok;
		N ->
			[ranch:remove_connection(Ref) || _ <- lists:seq(1, N)]
	end,
	receive after Timeout -> ok end.