diff options
author | Ingela Anderton Andin <[email protected]> | 2018-06-15 22:32:59 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2018-08-27 15:20:58 +0200 |
commit | d87ac1c55188f5ba5cdf72384125d94d42118c18 (patch) | |
tree | 91e4e59a5b9948d7d9f7cdeb490d701551ba2246 /lib/ssl/src/dtls_socket.erl | |
parent | e24da191701ebd6aa619f9867c9713f696dc95c8 (diff) | |
download | otp-d87ac1c55188f5ba5cdf72384125d94d42118c18.tar.gz otp-d87ac1c55188f5ba5cdf72384125d94d42118c18.tar.bz2 otp-d87ac1c55188f5ba5cdf72384125d94d42118c18.zip |
ssl: Add new sender process for TLS state machine
Separate sending and receiving when using TCP as transport
as prim_inet:send may block which in turn may result
in a deadlock between two Erlang processes communicating over
TLS, this is especially likely to happen when running Erlang distribution
over TLS.
Diffstat (limited to 'lib/ssl/src/dtls_socket.erl')
-rw-r--r-- | lib/ssl/src/dtls_socket.erl | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/ssl/src/dtls_socket.erl b/lib/ssl/src/dtls_socket.erl index b26d3ae41a..2001afd02f 100644 --- a/lib/ssl/src/dtls_socket.erl +++ b/lib/ssl/src/dtls_socket.erl @@ -48,7 +48,7 @@ accept(dtls, #config{transport_info = {Transport,_,_,_}, dtls_handler = {Listner, _}}, _Timeout) -> case dtls_packet_demux:accept(Listner, self()) of {ok, Pid, Socket} -> - {ok, socket(Pid, Transport, {Listner, Socket}, ConnectionCb)}; + {ok, socket([Pid], Transport, {Listner, Socket}, ConnectionCb)}; {error, Reason} -> {error, Reason} end. @@ -73,12 +73,12 @@ close(gen_udp, {_Client, _Socket}) -> close(Transport, {_Client, Socket}) -> Transport:close(Socket). -socket(Pid, gen_udp = Transport, {{_, _}, Socket}, ConnectionCb) -> - #sslsocket{pid = Pid, +socket(Pids, gen_udp = Transport, {{_, _}, Socket}, ConnectionCb) -> + #sslsocket{pid = Pids, %% "The name "fd" is keept for backwards compatibility fd = {Transport, Socket, ConnectionCb}}; -socket(Pid, Transport, Socket, ConnectionCb) -> - #sslsocket{pid = Pid, +socket(Pids, Transport, Socket, ConnectionCb) -> + #sslsocket{pid = Pids, %% "The name "fd" is keept for backwards compatibility fd = {Transport, Socket, ConnectionCb}}. setopts(_, #sslsocket{pid = {dtls, #config{dtls_handler = {ListenPid, _}}}}, Options) -> |