aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/src/ssl.erl
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2018-10-11 08:46:52 +0200
committerIngela Anderton Andin <[email protected]>2018-10-11 08:46:52 +0200
commit04ba7977a34cdfb907d55a465823e20629bd0c4d (patch)
tree20f0d33d91e9102de9a3b44341d829ea30cfeef2 /lib/ssl/src/ssl.erl
parentb5a62a61b9856c32dd66e651462419adead3fdac (diff)
parent9a9ef241bfcb3ef1bc08b9057bcbed71e8e565e1 (diff)
downloadotp-04ba7977a34cdfb907d55a465823e20629bd0c4d.tar.gz
otp-04ba7977a34cdfb907d55a465823e20629bd0c4d.tar.bz2
otp-04ba7977a34cdfb907d55a465823e20629bd0c4d.zip
Merge branch 'maint'
Diffstat (limited to 'lib/ssl/src/ssl.erl')
-rw-r--r--lib/ssl/src/ssl.erl19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/ssl/src/ssl.erl b/lib/ssl/src/ssl.erl
index ef9aac34bf..18d94adc18 100644
--- a/lib/ssl/src/ssl.erl
+++ b/lib/ssl/src/ssl.erl
@@ -614,6 +614,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