aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/src
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2018-04-27 14:52:27 +0200
committerIngela Anderton Andin <[email protected]>2018-04-27 14:52:27 +0200
commit3669d6cf82f392cf66d6bcf880259edd8edf7be1 (patch)
treef3b813974643895b8e6764d0028f8072f5725b37 /lib/ssl/src
parent875859f88e7543a7244f8a46d672e555953c6b31 (diff)
parent828190a32c1ba77036c913b6f73711b78b5f27bf (diff)
downloadotp-3669d6cf82f392cf66d6bcf880259edd8edf7be1.tar.gz
otp-3669d6cf82f392cf66d6bcf880259edd8edf7be1.tar.bz2
otp-3669d6cf82f392cf66d6bcf880259edd8edf7be1.zip
Merge branch 'ingela/dtls/abbreviated'
* ingela/dtls/abbreviated: dtls: Trigger resend in abbreviated handshake if change_cipher_spec is received to early.
Diffstat (limited to 'lib/ssl/src')
-rw-r--r--lib/ssl/src/dtls_connection.erl6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/ssl/src/dtls_connection.erl b/lib/ssl/src/dtls_connection.erl
index 220da71123..0fe568759d 100644
--- a/lib/ssl/src/dtls_connection.erl
+++ b/lib/ssl/src/dtls_connection.erl
@@ -580,6 +580,12 @@ hello(internal, {handshake, {#client_hello{cookie = <<>>} = Handshake, _}}, Stat
hello(internal, {handshake, {#hello_verify_request{} = Handshake, _}}, State) ->
%% hello_verify should not be in handshake history
{next_state, ?FUNCTION_NAME, State, [{next_event, internal, Handshake}]};
+hello(internal, #change_cipher_spec{type = <<1>>}, State0) ->
+ {State1, Actions0} = send_handshake_flight(State0, retransmit_epoch(?FUNCTION_NAME, State0)),
+ {Record, State2} = next_record(State1),
+ {next_state, ?FUNCTION_NAME, State, Actions} = next_event(?FUNCTION_NAME, Record, State2, Actions0),
+ %% This will reset the retransmission timer by repeating the enter state event
+ {repeat_state, State, Actions};
hello(info, Event, State) ->
gen_info(Event, ?FUNCTION_NAME, State);
hello(state_timeout, Event, State) ->