From ad7efea77cdad5bba83529a7494b49d1e9a19ca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 4 Jul 2018 12:58:51 +0200 Subject: Return errors from Transport:handshake The "normal" errors are still silenced when calling ranch:handshake. --- src/ranch_ssl.erl | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'src/ranch_ssl.erl') diff --git a/src/ranch_ssl.erl b/src/ranch_ssl.erl index f9203e6..e1e6532 100644 --- a/src/ranch_ssl.erl +++ b/src/ranch_ssl.erl @@ -136,24 +136,15 @@ accept_ack(CSocket, Timeout) -> ok. -spec handshake(inet:socket() | ssl:sslsocket(), opts(), timeout()) - -> {ok, ssl:sslsocket()}. + -> {ok, ssl:sslsocket()} | {error, any()}. 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), - exit(normal); - %% Socket most likely stopped responding, don't error out. - {error, Reason} when Reason =:= timeout; Reason =:= closed -> - ok = close(CSocket), - exit(normal); - {error, Reason} -> - ok = close(CSocket), - error(Reason) + Error = {error, _} -> + Error end. %% @todo Probably filter Opts? -- cgit v1.2.3