diff options
author | Erlang/OTP <otp@erlang.org> | 2019-05-06 17:09:06 +0200 |
---|---|---|
committer | Erlang/OTP <otp@erlang.org> | 2019-05-06 17:09:06 +0200 |
commit | 9363dceecf650e364f4a5e3348fc6e18fead3696 (patch) | |
tree | cdaadd4daaba7005e89b929f765a3125d62db270 /lib | |
parent | eea3a5a6852235429a2317c706dce946295f3943 (diff) | |
parent | 6e190b012dd5a304fc42a5f3bb58ff173a23eb66 (diff) | |
download | erlang-9363dceecf650e364f4a5e3348fc6e18fead3696.tar.gz |
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')
-rw-r--r-- | lib/ssl/src/tls_connection.erl | 16 |
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}. |