aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/src
diff options
context:
space:
mode:
authorJohannes Weißl <[email protected]>2017-05-19 00:47:06 +0200
committerJohannes Weißl <[email protected]>2017-05-25 11:53:17 +0200
commit8abe16c22d9a7d035ad8505b66d5d0611e35b543 (patch)
tree85ecdcbc787fb56e5447d49836933e6be9862739 /lib/ssl/src
parent0ab4a336d0935c47b26cceb202ab63344c03b8a2 (diff)
downloadotp-8abe16c22d9a7d035ad8505b66d5d0611e35b543.tar.gz
otp-8abe16c22d9a7d035ad8505b66d5d0611e35b543.tar.bz2
otp-8abe16c22d9a7d035ad8505b66d5d0611e35b543.zip
Fix non-delivery of ssl_closed message in active once
The commit 8b10920 (OTP 19.3.1) fixed the non-delivery of final TLS record in {active, once}, but this causes the ssl_closed message to be lost when the TCP connection closes before ssl:close/1. The patch restores the behavior of OTP 18. This is the second part to fix https://bugs.erlang.org/browse/ERL-420
Diffstat (limited to 'lib/ssl/src')
-rw-r--r--lib/ssl/src/tls_connection.erl1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/ssl/src/tls_connection.erl b/lib/ssl/src/tls_connection.erl
index 96c3ab86e9..a7720e19b5 100644
--- a/lib/ssl/src/tls_connection.erl
+++ b/lib/ssl/src/tls_connection.erl
@@ -429,6 +429,7 @@ handle_info({CloseTag, Socket}, StateName,
%% Fixes non-delivery of final TLS record in {active, once}.
%% Basically allows the application the opportunity to set {active, once} again
%% and then receive the final message.
+ self() ! {CloseTag, Socket},
next_event(StateName, no_record, State)
end;
handle_info(Msg, StateName, State) ->