summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bakken <lbakken@pivotal.io>2019-02-27 09:27:18 -0800
committerLuke Bakken <lbakken@pivotal.io>2019-02-27 13:45:27 -0800
commitdc2a0ab4712a5ecf821b7d19cb5277d860343729 (patch)
tree55157e5a0f5139890d386d1975f687533b8ff6ad
parentb9873465666d143bd1fc70a828d417ce48b5b1c3 (diff)
downloadrabbitmq-server-git-dc2a0ab4712a5ecf821b7d19cb5277d860343729.tar.gz
Ensure resources are cleaned up
Fixes #1901
-rw-r--r--src/rabbit_networking.erl14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/rabbit_networking.erl b/src/rabbit_networking.erl
index 1935196170..8dcd6cc841 100644
--- a/src/rabbit_networking.erl
+++ b/src/rabbit_networking.erl
@@ -392,10 +392,16 @@ force_connection_event_refresh(Ref) ->
handshake(Ref, ProxyProtocol) ->
case ProxyProtocol of
true ->
- {ok, ProxyInfo} = ranch:recv_proxy_header(Ref, 1000),
- {ok, Sock} = ranch:handshake(Ref),
- setup_socket(Sock),
- {ok, {rabbit_proxy_socket, Sock, ProxyInfo}};
+ case ranch:recv_proxy_header(Ref, 1000) of
+ {error, Error} ->
+ rabbit_log:error("error when receiving proxy header: ~p", [Error]),
+ % The following call will clean up resources then exit
+ should_never_match = ranch:handshake(Ref);
+ {ok, ProxyInfo} ->
+ {ok, Sock} = ranch:handshake(Ref),
+ setup_socket(Sock),
+ {ok, {rabbit_proxy_socket, Sock, ProxyInfo}}
+ end;
false ->
{ok, Sock} = ranch:handshake(Ref),
setup_socket(Sock),