summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-04-25 14:13:48 +0100
committerSimon MacMullen <simon@rabbitmq.com>2013-04-25 14:13:48 +0100
commit94701161309c565dbd336b9df03eedccdfd8bbf4 (patch)
tree58402a6f512cb4dcdabd74dfdb55533442ef5635 /src
parent2c1e6011e789ae5b2c122d6186ada7679f13728c (diff)
parent8b84368f50f2a792bed88fc330bd2cba49491a17 (diff)
downloadrabbitmq-server-git-94701161309c565dbd336b9df03eedccdfd8bbf4.tar.gz
stable to default
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_net.erl13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/rabbit_net.erl b/src/rabbit_net.erl
index b53c16bfae..b7f4d01989 100644
--- a/src/rabbit_net.erl
+++ b/src/rabbit_net.erl
@@ -18,9 +18,9 @@
-include("rabbit.hrl").
-export([is_ssl/1, ssl_info/1, controlling_process/2, getstat/2,
- recv/1, async_recv/3, port_command/2, getopts/2, setopts/2, send/2,
- close/1, fast_close/1, sockname/1, peername/1, peercert/1,
- connection_string/2, socket_ends/2]).
+ recv/1, sync_recv/2, async_recv/3, port_command/2, getopts/2,
+ setopts/2, send/2, close/1, fast_close/1, sockname/1, peername/1,
+ peercert/1, connection_string/2, socket_ends/2]).
%%---------------------------------------------------------------------------
@@ -48,6 +48,8 @@
-spec(recv/1 :: (socket()) ->
{'data', [char()] | binary()} | 'closed' |
rabbit_types:error(any()) | {'other', any()}).
+-spec(sync_recv/2 :: (socket(), integer()) -> rabbit_types:ok(binary()) |
+ rabbit_types:error(any())).
-spec(async_recv/3 ::
(socket(), integer(), timeout()) -> rabbit_types:ok(any())).
-spec(port_command/2 :: (socket(), iolist()) -> 'true').
@@ -114,6 +116,11 @@ recv(S, {DataTag, ClosedTag, ErrorTag}) ->
Other -> {other, Other}
end.
+sync_recv(Sock, Length) when ?IS_SSL(Sock) ->
+ ssl:recv(Sock#ssl_socket.ssl, Length);
+sync_recv(Sock, Length) ->
+ gen_tcp:recv(Sock, Length).
+
async_recv(Sock, Length, Timeout) when ?IS_SSL(Sock) ->
Pid = self(),
Ref = make_ref(),