diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2011-05-10 05:14:43 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2011-05-10 05:14:43 +0100 |
commit | 493b759a1de2fcccc9c15712a711f51aeba709c5 (patch) | |
tree | 0fc28d5ebfb3f83fee8d82908c4befba72956783 /src/rabbit_net.erl | |
parent | 4f5bd52ef39690f96dec9f8b71447366248cdd67 (diff) | |
download | rabbitmq-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.erl | 22 |
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) -> |