diff options
author | Ingela Anderton Andin <[email protected]> | 2017-11-29 11:41:46 +0100 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2017-11-29 11:41:46 +0100 |
commit | 319a86d565a5e776f03e00948c34b5e3e8b840e2 (patch) | |
tree | f96bae4d4d417ba5c6be7806297185acab604967 | |
parent | 2b9e5ea8652ad8d85c9bc3ceda812904718578a2 (diff) | |
parent | b965516e672be74bf7c6b13c64a2b916d1dfa217 (diff) | |
download | otp-319a86d565a5e776f03e00948c34b5e3e8b840e2.tar.gz otp-319a86d565a5e776f03e00948c34b5e3e8b840e2.tar.bz2 otp-319a86d565a5e776f03e00948c34b5e3e8b840e2.zip |
Merge branch 'maint'
-rw-r--r-- | lib/ssl/src/tls_connection.erl | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/ssl/src/tls_connection.erl b/lib/ssl/src/tls_connection.erl index 50284d19af..f1db75d5e9 100644 --- a/lib/ssl/src/tls_connection.erl +++ b/lib/ssl/src/tls_connection.erl @@ -141,12 +141,14 @@ next_record(#state{protocol_buffers = end; next_record(#state{protocol_buffers = #protocol_buffers{tls_packets = [], tls_cipher_texts = []}, socket = Socket, + close_tag = CloseTag, transport_cb = Transport} = State) -> case tls_socket:setopts(Transport, Socket, [{active,once}]) of ok -> {no_record, State}; _ -> - {socket_closed, State} + self() ! {CloseTag, Socket}, + {no_record, State} end; next_record(State) -> {no_record, State}. @@ -154,15 +156,10 @@ next_record(State) -> next_event(StateName, Record, State) -> next_event(StateName, Record, State, []). -next_event(StateName, socket_closed, State, _) -> - ssl_connection:handle_normal_shutdown(?ALERT_REC(?FATAL, ?CLOSE_NOTIFY), StateName, State), - {stop, {shutdown, transport_closed}, State}; next_event(connection = StateName, no_record, State0, Actions) -> case next_record_if_active(State0) of {no_record, State} -> ssl_connection:hibernate_after(StateName, State, Actions); - {socket_closed, State} -> - next_event(StateName, socket_closed, State, Actions); {#ssl_tls{} = Record, State} -> {next_state, StateName, State, [{next_event, internal, {protocol_record, Record}} | Actions]}; {#alert{} = Alert, State} -> |