diff options
author | Ingela Anderton Andin <[email protected]> | 2018-10-11 08:46:20 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2018-10-11 08:46:20 +0200 |
commit | 9a9ef241bfcb3ef1bc08b9057bcbed71e8e565e1 (patch) | |
tree | 4aaff331acdf8c053f3b7342b7a3f41a36bdd491 /lib/ssl/src/ssl.erl | |
parent | 8018680cc1977ac2d70c070a5761cfe2db914821 (diff) | |
parent | d714cf095626056c16d385087259e301e1057b78 (diff) | |
download | otp-9a9ef241bfcb3ef1bc08b9057bcbed71e8e565e1.tar.gz otp-9a9ef241bfcb3ef1bc08b9057bcbed71e8e565e1.tar.bz2 otp-9a9ef241bfcb3ef1bc08b9057bcbed71e8e565e1.zip |
Merge branch 'ingela/ssl/packet-options-to-tls-sender/OTP-15348' into maint
* ingela/ssl/packet-options-to-tls-sender/OTP-15348:
ssl: TLS sender process needs to get updates of the socket option packet
Diffstat (limited to 'lib/ssl/src/ssl.erl')
-rw-r--r-- | lib/ssl/src/ssl.erl | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/ssl/src/ssl.erl b/lib/ssl/src/ssl.erl index 4cf56035ba..03a1e40bfc 100644 --- a/lib/ssl/src/ssl.erl +++ b/lib/ssl/src/ssl.erl @@ -604,6 +604,25 @@ getopts(#sslsocket{}, OptionTags) -> %% %% Description: Sets options %%-------------------------------------------------------------------- +setopts(#sslsocket{pid = [Pid, Sender]}, Options0) when is_pid(Pid), is_list(Options0) -> + try proplists:expand([{binary, [{mode, binary}]}, + {list, [{mode, list}]}], Options0) of + Options -> + case proplists:get_value(packet, Options, undefined) of + undefined -> + ssl_connection:set_opts(Pid, Options); + PacketOpt -> + case tls_sender:setopts(Sender, [{packet, PacketOpt}]) of + ok -> + ssl_connection:set_opts(Pid, Options); + Error -> + Error + end + end + catch + _:_ -> + {error, {options, {not_a_proplist, Options0}}} + end; setopts(#sslsocket{pid = [Pid|_]}, Options0) when is_pid(Pid), is_list(Options0) -> try proplists:expand([{binary, [{mode, binary}]}, {list, [{mode, list}]}], Options0) of |