aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2016-02-08 09:41:52 +0100
committerIngela Anderton Andin <[email protected]>2016-02-08 09:41:52 +0100
commit45ad9334c1963c1e1a294f327df60dbadb4b4f5a (patch)
tree91b74fed9f8484bc766029b181efcca690b4a7f4 /lib
parentea31a1c8c8e8b4e1697eac78af27fc330d41e62b (diff)
parentb62cd7fd5a922cfdff05bfba9512ce36ce100116 (diff)
downloadotp-45ad9334c1963c1e1a294f327df60dbadb4b4f5a.tar.gz
otp-45ad9334c1963c1e1a294f327df60dbadb4b4f5a.tar.bz2
otp-45ad9334c1963c1e1a294f327df60dbadb4b4f5a.zip
Merge branch 'maint'
Diffstat (limited to 'lib')
-rw-r--r--lib/ssl/src/ssl_record.erl16
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{}}.