summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2008-11-24 11:02:31 +0000
committerMatthias Radestock <matthias@lshift.net>2008-11-24 11:02:31 +0000
commit7c50f0f937f93ad763f2621786d5dffdf9d36dff (patch)
tree756f723c73b8df19284c4030db3cbcf45bef1036 /src
parentcaede44da77c98cfad317aa3918bc8621e7dc3a1 (diff)
downloadrabbitmq-server-git-7c50f0f937f93ad763f2621786d5dffdf9d36dff.tar.gz
add some socket stats to info
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_reader.erl11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index cbadaff2c6..da8651da8f 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -52,6 +52,7 @@
-define(INFO_KEYS,
[pid, address, port, peer_address, peer_port,
+ recv_oct, recv_cnt, send_oct, send_cnt, send_pend,
state, channels, user, vhost, timeout, frame_max]).
%% connection lifecycle
@@ -663,6 +664,16 @@ i(peer_address, #v1{sock = Sock}) ->
i(peer_port, #v1{sock = Sock}) ->
{ok, {_, P}} = inet:peername(Sock),
P;
+i(SockStat, #v1{sock = Sock}) when SockStat =:= recv_oct;
+ SockStat =:= recv_cnt;
+ SockStat =:= send_oct;
+ SockStat =:= send_cnt;
+ SockStat =:= send_pend ->
+ case inet:getstat(Sock, [SockStat]) of
+ {ok, [{SockStat, StatVal}]} -> StatVal;
+ {error, einval} -> undefined;
+ {error, Error} -> throw({cannot_get_socket_stats, Error})
+ end;
i(state, #v1{connection_state = S}) ->
S;
i(channels, #v1{}) ->