summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_net.erl22
1 files changed, 9 insertions, 13 deletions
diff --git a/src/rabbit_net.erl b/src/rabbit_net.erl
index b6cc28afd1..53aba46a86 100644
--- a/src/rabbit_net.erl
+++ b/src/rabbit_net.erl
@@ -87,20 +87,16 @@ getstat(Sock, Stats) when is_port(Sock) ->
inet:getstat(Sock, Stats).
recv(Sock) when ?IS_SSL(Sock) ->
- S = Sock#ssl_socket.ssl,
- receive
- {ssl, S, Data} -> {data, Data};
- {ssl_closed, S} -> closed;
- {ssl_error, S, Reason} -> {error, Reason};
- Other -> {other, Other}
- end;
-recv(Sock) ->
- S = Sock,
+ recv(Sock#ssl_socket.ssl, {ssl, ssl_closed, ssl_error});
+recv(Sock) when is_port(Sock) ->
+ recv(Sock, {tcp, tcp_closed, tcp_error}).
+
+recv(S, {DataTag, ClosedTag, ErrorTag}) ->
receive
- {tcp, S, Data} -> {data, Data};
- {tcp_closed, S} -> closed;
- {tcp_error, S, Reason} -> {error, Reason};
- Other -> {other, Other}
+ {DataTag, S, Data} -> {data, Data};
+ {ClosedTag, S} -> closed;
+ {ErrorTag, S, Reason} -> {error, Reason};
+ Other -> {other, Other}
end.
async_recv(Sock, Length, Timeout) when ?IS_SSL(Sock) ->