summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2021-04-15 13:03:15 +0300
committerMichael Klishin <michael@clojurewerkz.org>2021-04-15 13:03:15 +0300
commit5d009304fd23eb409807ce5a19641fb0df53f6e4 (patch)
treefa0cd7bbce0a560f96d7b07c928a211f33d08110
parentff1bd0074d7a4182ae2d093cf5ec9d0e89cc2ada (diff)
downloadrabbitmq-server-git-5d009304fd23eb409807ce5a19641fb0df53f6e4.tar.gz
amqp_network_connection:handshake/3: handle socket send failures
One rabbitmq_trust_store suite runs into a badmatch on this line. Let's return a more sensible error.
-rw-r--r--deps/amqp_client/src/amqp_network_connection.erl16
1 files changed, 10 insertions, 6 deletions
diff --git a/deps/amqp_client/src/amqp_network_connection.erl b/deps/amqp_client/src/amqp_network_connection.erl
index f6cae71b93..8a798659fc 100644
--- a/deps/amqp_client/src/amqp_network_connection.erl
+++ b/deps/amqp_client/src/amqp_network_connection.erl
@@ -184,12 +184,16 @@ try_handshake(AmqpParams, SIF, State = #state{sock = Sock}) ->
end.
handshake(AmqpParams, SIF, State0 = #state{sock = Sock}) ->
- ok = rabbit_net:send(Sock, ?PROTOCOL_HEADER),
- case start_infrastructure(SIF, State0) of
- {ok, ChMgr, State1} ->
- network_handshake(AmqpParams, {ChMgr, State1});
- {error, Reason} ->
- {error, Reason}
+ case rabbit_net:send(Sock, ?PROTOCOL_HEADER) of
+ ok ->
+ case start_infrastructure(SIF, State0) of
+ {ok, ChMgr, State1} ->
+ network_handshake(AmqpParams, {ChMgr, State1});
+ {error, Reason} ->
+ {error, Reason}
+ end;
+ {error, Reason} ->
+ {error, Reason}
end.
start_infrastructure(SIF, State = #state{sock = Sock, name = Name}) ->