From a767abb47e6d9a0817d37413e1b5c1d338b362d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 4 Jul 2018 12:33:30 +0200 Subject: Enable TLS upgrades via ranch_ssl:handshake/3 Based on the work done by @juhlig. --- src/ranch_ssl.erl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') 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), -- cgit v1.2.3