summaryrefslogtreecommitdiff
path: root/src/rabbit_net.erl
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2011-05-10 05:14:43 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2011-05-10 05:14:43 +0100
commit493b759a1de2fcccc9c15712a711f51aeba709c5 (patch)
tree0fc28d5ebfb3f83fee8d82908c4befba72956783 /src/rabbit_net.erl
parent4f5bd52ef39690f96dec9f8b71447366248cdd67 (diff)
downloadrabbitmq-server-493b759a1de2fcccc9c15712a711f51aeba709c5.tar.gz
refactor: extract commonality between tcp and ssl recv
...and add a guard, for consistency with other funs
Diffstat (limited to 'src/rabbit_net.erl')
-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 b6cc28af..53aba46a 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) ->