diff options
author | Ingela Anderton Andin <[email protected]> | 2016-02-08 09:41:52 +0100 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2016-02-08 09:41:52 +0100 |
commit | 45ad9334c1963c1e1a294f327df60dbadb4b4f5a (patch) | |
tree | 91b74fed9f8484bc766029b181efcca690b4a7f4 | |
parent | ea31a1c8c8e8b4e1697eac78af27fc330d41e62b (diff) | |
parent | b62cd7fd5a922cfdff05bfba9512ce36ce100116 (diff) | |
download | otp-45ad9334c1963c1e1a294f327df60dbadb4b4f5a.tar.gz otp-45ad9334c1963c1e1a294f327df60dbadb4b4f5a.tar.bz2 otp-45ad9334c1963c1e1a294f327df60dbadb4b4f5a.zip |
Merge branch 'maint'
-rw-r--r-- | lib/ssl/src/ssl_record.erl | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/ssl/src/ssl_record.erl b/lib/ssl/src/ssl_record.erl index 75cfecdf5e..ce6b8fb84f 100644 --- a/lib/ssl/src/ssl_record.erl +++ b/lib/ssl/src/ssl_record.erl @@ -311,9 +311,19 @@ set_pending_cipher_state(#connection_states{pending_read = Read, %% %% Description: Encodes a handshake message to send on the ssl-socket. %%-------------------------------------------------------------------- -encode_handshake(Frag, Version, ConnectionStates) -> - encode_plain_text(?HANDSHAKE, Version, Frag, ConnectionStates). - +encode_handshake(Frag, Version, + #connection_states{current_write = + #connection_state{ + security_parameters = + #security_parameters{bulk_cipher_algorithm = BCA}}} = + ConnectionStates) -> + case iolist_size(Frag) of + N when N > ?MAX_PLAIN_TEXT_LENGTH -> + Data = split_bin(iolist_to_binary(Frag), ?MAX_PLAIN_TEXT_LENGTH, Version, BCA), + encode_iolist(?HANDSHAKE, Data, Version, ConnectionStates); + _ -> + encode_plain_text(?HANDSHAKE, Version, Frag, ConnectionStates) + end. %%-------------------------------------------------------------------- -spec encode_alert_record(#alert{}, ssl_version(), #connection_states{}) -> {iolist(), #connection_states{}}. |