diff options
author | Ingela Anderton Andin <[email protected]> | 2017-12-07 17:39:26 +0100 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2017-12-20 12:20:23 +0100 |
commit | 8af2f67e15af0aba9555e9d1d00add894eeaa17e (patch) | |
tree | 5a56c5962955c6ef1d94ff76a49ca371eb4a3130 /lib/ssl/src/dtls_connection.erl | |
parent | 09fce86de093ff00d59f86ec01439dc210789425 (diff) | |
download | otp-8af2f67e15af0aba9555e9d1d00add894eeaa17e.tar.gz otp-8af2f67e15af0aba9555e9d1d00add894eeaa17e.tar.bz2 otp-8af2f67e15af0aba9555e9d1d00add894eeaa17e.zip |
dtls: Add handling of lost key exchange in cipher state
Diffstat (limited to 'lib/ssl/src/dtls_connection.erl')
-rw-r--r-- | lib/ssl/src/dtls_connection.erl | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/ssl/src/dtls_connection.erl b/lib/ssl/src/dtls_connection.erl index 6f22b60136..9cb6934dce 100644 --- a/lib/ssl/src/dtls_connection.erl +++ b/lib/ssl/src/dtls_connection.erl @@ -610,6 +610,12 @@ certify(info, Event, State) -> gen_info(Event, ?FUNCTION_NAME, State); certify(internal = Type, #server_hello_done{} = Event, State) -> ssl_connection:certify(Type, Event, prepare_flight(State), ?MODULE); +certify(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}; certify(state_timeout, Event, State) -> handle_state_timeout(Event, ?FUNCTION_NAME, State); certify(Type, Event, State) -> |