aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMaria Scott <[email protected]>2024-05-07 14:33:47 +0200
committerLoïc Hoguin <[email protected]>2024-11-12 14:56:27 +0100
commit42d7f3d3585a7f956d87ed53407e517a44f8f98b (patch)
tree98393227757efb0fad2f000ef224275dac674fb5 /src
parentdb2fff96c60e740fc6ac6a505f1c6fb69af64645 (diff)
downloadranch-42d7f3d3585a7f956d87ed53407e517a44f8f98b.tar.gz
ranch-42d7f3d3585a7f956d87ed53407e517a44f8f98b.tar.bz2
ranch-42d7f3d3585a7f956d87ed53407e517a44f8f98b.zip
Extend error reason in case of failed handshake
Diffstat (limited to 'src')
-rw-r--r--src/ranch.erl12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/ranch.erl b/src/ranch.erl
index 85c2c73..ce0c047 100644
--- a/src/ranch.erl
+++ b/src/ranch.erl
@@ -331,15 +331,13 @@ handshake_result(Result, Ref, Transport, CSocket, Timeout) ->
{ok, CSocket2, Info} ->
self() ! {handshake_continue, Ref, Transport, CSocket2, Timeout},
{continue, Info};
- {error, {tls_alert, _}} ->
- ok = Transport:close(CSocket),
- exit(normal);
- {error, Reason} when Reason =:= timeout; Reason =:= closed ->
- ok = Transport:close(CSocket),
- exit(normal);
{error, Reason} ->
+ PeerInfo = case Transport:peername(CSocket) of
+ {ok, Peer} -> Peer;
+ {error, _} -> undefined
+ end,
ok = Transport:close(CSocket),
- error(Reason)
+ exit({shutdown, {Reason, PeerInfo}})
end.
-spec handshake_cancel(ref()) -> ok.