diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2010-09-17 13:43:12 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2010-09-17 13:43:12 +0100 |
commit | 590904df002ce27f5f89c75cd3f0476e9620d3ea (patch) | |
tree | d2fd85a2303d4ce4b3f443fbc0b3e0ab789a64c9 | |
parent | ed6694bc07092f46e15d54ed4b362eff203d45b1 (diff) | |
download | rabbitmq-server-590904df002ce27f5f89c75cd3f0476e9620d3ea.tar.gz |
Don't throw, don't use erlang:element/2.
-rw-r--r-- | src/rabbit_reader.erl | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl index 1a77de0a..2db219c7 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -808,14 +808,14 @@ infos(Items, State) -> [{Item, i(Item, State)} || Item <- Items]. i(pid, #v1{}) -> self(); -i(address, State = #v1{sock = Sock}) -> - socket_info(1, fun rabbit_net:sockname/1, State); -i(port, State = #v1{sock = Sock}) -> - socket_info(2, fun rabbit_net:sockname/1, State); -i(peer_address, State = #v1{sock = Sock}) -> - socket_info(1, fun rabbit_net:peername/1, State); -i(peer_port, State = #v1{sock = Sock}) -> - socket_info(2, fun rabbit_net:peername/1, State); +i(address, #v1{sock = Sock}) -> + socket_info(fun rabbit_net:sockname/1, fun ({A, _}) -> A end, Sock); +i(port, #v1{sock = Sock}) -> + socket_info(fun rabbit_net:sockname/1, fun ({_, P}) -> P end, Sock); +i(peer_address, #v1{sock = Sock}) -> + socket_info(fun rabbit_net:peername/1, fun ({A, _}) -> A end, Sock); +i(peer_port, #v1{sock = Sock}) -> + socket_info(fun rabbit_net:peername/1, fun ({_, P}) -> P end, Sock); i(SockStat, #v1{sock = Sock}) when SockStat =:= recv_oct; SockStat =:= recv_cnt; SockStat =:= send_oct; @@ -850,11 +850,10 @@ i(client_properties, #v1{connection = #connection{ i(Item, #v1{}) -> throw({bad_argument, Item}). -socket_info(I, Fun, State = #v1 {sock = Sock}) -> - case {Fun(Sock), ?IS_RUNNING(State)} of - {{ok, T}, _} -> element(I, T); - {{error, E}, true} -> throw({cannot_get_socket_stats, E}); - {{error, E}, false} -> E +socket_info(Get, Select, Sock) -> + case Get(Sock) of + {ok, T} -> Select(T); + {error, _} -> '' end. %%-------------------------------------------------------------------------- |