diff options
author | Loïc Hoguin <[email protected]> | 2018-07-04 12:33:30 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2018-07-04 12:33:30 +0200 |
commit | a767abb47e6d9a0817d37413e1b5c1d338b362d8 (patch) | |
tree | 8157fde9eb94bdf8cf0b4b94f252d7104889d917 /src/ranch_ssl.erl | |
parent | 794a816814cbc9a126531829fae5c7e3359179c3 (diff) | |
download | ranch-a767abb47e6d9a0817d37413e1b5c1d338b362d8.tar.gz ranch-a767abb47e6d9a0817d37413e1b5c1d338b362d8.tar.bz2 ranch-a767abb47e6d9a0817d37413e1b5c1d338b362d8.zip |
Enable TLS upgrades via ranch_ssl:handshake/3
Based on the work done by @juhlig.
Diffstat (limited to 'src/ranch_ssl.erl')
-rw-r--r-- | src/ranch_ssl.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/ranch_ssl.erl b/src/ranch_ssl.erl index e1dd798..f9203e6 100644 --- a/src/ranch_ssl.erl +++ b/src/ranch_ssl.erl @@ -135,11 +135,14 @@ accept_ack(CSocket, Timeout) -> {ok, _} = handshake(CSocket, [], Timeout), ok. --spec handshake(ssl:sslsocket(), opts(), timeout()) -> {ok, ssl:sslsocket()}. +-spec handshake(inet:socket() | ssl:sslsocket(), opts(), timeout()) + -> {ok, ssl:sslsocket()}. handshake(CSocket, Opts, Timeout) -> case ssl:ssl_accept(CSocket, Opts, Timeout) of ok -> {ok, CSocket}; + {ok, NewSocket} -> + {ok, NewSocket}; %% Garbage was most likely sent to the socket, don't error out. {error, {tls_alert, _}} -> ok = close(CSocket), |