diff options
author | Ingela Anderton Andin <[email protected]> | 2016-07-07 16:46:27 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2016-09-05 14:37:26 +0200 |
commit | 0ce34b8fe680d1739c8211afd75720516e0e77ef (patch) | |
tree | 8f46d4941334a054f6123491f16f77db14cd146f /lib/ssl/src/dtls_connection.erl | |
parent | e99bc5a149eaaaacb81a84a2d2608f9893242e5d (diff) | |
download | otp-0ce34b8fe680d1739c8211afd75720516e0e77ef.tar.gz otp-0ce34b8fe680d1739c8211afd75720516e0e77ef.tar.bz2 otp-0ce34b8fe680d1739c8211afd75720516e0e77ef.zip |
dtls: Add reinit_handshake_data/1 to dtls
The callback is invoke before entering state 'connection'.
It allows a connection module to remove data from the
connection state that is no longer needed (e.g.
handshake history).
Diffstat (limited to 'lib/ssl/src/dtls_connection.erl')
-rw-r--r-- | lib/ssl/src/dtls_connection.erl | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/ssl/src/dtls_connection.erl b/lib/ssl/src/dtls_connection.erl index a0d9982aaa..559eafbfec 100644 --- a/lib/ssl/src/dtls_connection.erl +++ b/lib/ssl/src/dtls_connection.erl @@ -42,8 +42,9 @@ -export([next_record/1, next_event/3]). %% Handshake handling --export([%%renegotiate/2, - send_handshake/2, queue_handshake/2, queue_change_cipher/2]). +-export([%%renegotiate/2, + reinit_handshake_data/1, + send_handshake/2, queue_handshake/2, queue_change_cipher/2]). %% Alert and close handling -export([%%send_alert/2, handle_own_alert/4, handle_close_alert/3, @@ -139,6 +140,14 @@ send_alert(Alert, #state{negotiated_version = Version, Transport:send(Socket, BinMsg), State0#state{connection_states = ConnectionStates}. +reinit_handshake_data(#state{protocol_buffers = Buffers} = State) -> + State#state{premaster_secret = undefined, + public_key_info = undefined, + tls_handshake_history = ssl_handshake:init_handshake_history(), + protocol_buffers = + Buffers#protocol_buffers{dtls_fragment_state = + dtls_handshake:dtls_handshake_new_flight(0)}}. + %%==================================================================== %% tls_connection_sup API %%==================================================================== |