diff options
author | Ingela Anderton Andin <[email protected]> | 2017-12-20 11:51:25 +0100 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2017-12-20 11:51:25 +0100 |
commit | e23799a59928cadf8ab7161911f3734013a62441 (patch) | |
tree | ef60b8bd1d7c459ce53e7513fa1fe89cd21ddf47 /lib | |
parent | fec9e1fed492147b471bb15685547da3ce2613c0 (diff) | |
parent | 04233733012408b75754ff4de2742e97d41b25af (diff) | |
download | otp-e23799a59928cadf8ab7161911f3734013a62441.tar.gz otp-e23799a59928cadf8ab7161911f3734013a62441.tar.bz2 otp-e23799a59928cadf8ab7161911f3734013a62441.zip |
Merge branch 'maint'
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ssl/src/dtls_udp_listener.erl | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/ssl/src/dtls_udp_listener.erl b/lib/ssl/src/dtls_udp_listener.erl index c9e04767aa..0608c6bd2b 100644 --- a/lib/ssl/src/dtls_udp_listener.erl +++ b/lib/ssl/src/dtls_udp_listener.erl @@ -84,7 +84,7 @@ init([Port, EmOpts, InetOptions, DTLSOptions]) -> listener = Socket, close = false}} catch _:_ -> - {error, closed} + {stop, {shutdown, {error, closed}}} end. handle_call({accept, _}, _, #state{close = true} = State) -> {reply, {error, closed}, State}; @@ -153,15 +153,18 @@ handle_info({udp_error, Socket, Error}, #state{listener = Socket} = State) -> handle_info({'DOWN', _, process, Pid, _}, #state{clients = Clients, dtls_processes = Processes0, + dtls_msq_queues = MsgQueues0, close = ListenClosed} = State) -> Client = kv_get(Pid, Processes0), Processes = kv_delete(Pid, Processes0), + MsgQueues = kv_delete(Client, MsgQueues0), case ListenClosed andalso kv_empty(Processes) of true -> {stop, normal, State}; false -> {noreply, State#state{clients = set_delete(Client, Clients), - dtls_processes = Processes}} + dtls_processes = Processes, + dtls_msq_queues = MsgQueues}} end. terminate(_Reason, _State) -> |