aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/src/tls_connection.erl
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2019-05-06 17:09:06 +0200
committerErlang/OTP <[email protected]>2019-05-06 17:09:06 +0200
commit9363dceecf650e364f4a5e3348fc6e18fead3696 (patch)
treecdaadd4daaba7005e89b929f765a3125d62db270 /lib/ssl/src/tls_connection.erl
parenteea3a5a6852235429a2317c706dce946295f3943 (diff)
parent6e190b012dd5a304fc42a5f3bb58ff173a23eb66 (diff)
downloadotp-9363dceecf650e364f4a5e3348fc6e18fead3696.tar.gz
otp-9363dceecf650e364f4a5e3348fc6e18fead3696.tar.bz2
otp-9363dceecf650e364f4a5e3348fc6e18fead3696.zip
Merge branch 'ingela/ssl/flow-ctrl/ERL-934/OTP-15802' into maint-21
* ingela/ssl/flow-ctrl/ERL-934/OTP-15802: ssl: Add check when to toggle internal active N
Diffstat (limited to 'lib/ssl/src/tls_connection.erl')
-rw-r--r--lib/ssl/src/tls_connection.erl16
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/ssl/src/tls_connection.erl b/lib/ssl/src/tls_connection.erl
index 114710a92e..15e3f30651 100644
--- a/lib/ssl/src/tls_connection.erl
+++ b/lib/ssl/src/tls_connection.erl
@@ -152,19 +152,21 @@ next_record(#state{protocol_buffers =
connection_states = ConnectionStates,
ssl_options = #ssl_options{padding_check = Check}} = State) ->
next_record(State, CipherTexts, ConnectionStates, Check);
-next_record(#state{protocol_buffers = #protocol_buffers{tls_cipher_texts = []},
- protocol_specific = #{active_n_toggle := true, active_n := N} = ProtocolSpec,
+next_record(#state{user_data_buffer = {_,0,_},
+ protocol_buffers = #protocol_buffers{tls_cipher_texts = []},
+ protocol_specific = #{active_n_toggle := true,
+ active_n := N} = ProtocolSpec,
static_env = #static_env{socket = Socket,
close_tag = CloseTag,
transport_cb = Transport}
- } = State) ->
+ } = State) ->
case tls_socket:setopts(Transport, Socket, [{active, N}]) of
ok ->
- {no_record, State#state{protocol_specific = ProtocolSpec#{active_n_toggle => false}}};
+ {no_record, State#state{protocol_specific = ProtocolSpec#{active_n_toggle => false}}};
_ ->
- self() ! {CloseTag, Socket},
- {no_record, State}
- end;
+ self() ! {CloseTag, Socket},
+ {no_record, State}
+ end;
next_record(State) ->
{no_record, State}.