diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2011-05-19 16:44:09 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2011-05-19 16:44:09 +0100 |
commit | c39f7e65ced88329bbde31411690b600bb439f90 (patch) | |
tree | fc6a0acad9d94642d7474b5fc9dcc921d1736843 | |
parent | 8db3126a4f1a3933f3b3ac7084072362bdd12b57 (diff) | |
download | rabbitmq-server-c39f7e65ced88329bbde31411690b600bb439f90.tar.gz |
Further refactoring
-rw-r--r-- | src/rabbit_channel.erl | 5 | ||||
-rw-r--r-- | src/rabbit_trace.erl | 33 |
2 files changed, 17 insertions, 21 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl index e5e61e56..991b0b06 100644 --- a/src/rabbit_channel.erl +++ b/src/rabbit_channel.erl @@ -22,9 +22,8 @@ -export([start_link/10, do/2, do/3, flush/1, shutdown/1]). -export([send_command/2, deliver/4, flushed/2, confirm/2]). --export([list/0, info_keys/0, info/1, info/2, info_all/0, info_all/1, - refresh_config_all/0]). --export([emit_stats/1, ready_for_close/1]). +-export([list/0, info_keys/0, info/1, info/2, info_all/0, info_all/1]). +-export([refresh_config_all/0, emit_stats/1, ready_for_close/1]). -export([init/1, terminate/2, code_change/3, handle_call/3, handle_cast/2, handle_info/2, handle_pre_hibernate/1, prioritise_call/3, diff --git a/src/rabbit_trace.erl b/src/rabbit_trace.erl index 6f21e575..ed1ac05f 100644 --- a/src/rabbit_trace.erl +++ b/src/rabbit_trace.erl @@ -41,8 +41,7 @@ init(VHost) -> tap_trace_in(Msg, TraceX) -> maybe_trace(Msg, TraceX, fun () -> - XName = xname(Msg), - {<<"publish.", XName/binary>>, msg_to_table(Msg)} + {<<"publish.", (xname(Msg))/binary>>, msg_to_table(Msg)} end). tap_trace_out({#resource{name = QName}, _QPid, _QMsgId, Redelivered, Msg}, @@ -57,15 +56,20 @@ tap_trace_out({#resource{name = QName}, _QPid, _QMsgId, Redelivered, Msg}, xname(#basic_message{exchange_name = #resource{name = XName}}) -> XName. vhost(#basic_message{exchange_name = #resource{virtual_host = VHost}}) -> VHost. -maybe_trace(Msg, none, Fun) -> ok; -maybe_trace(Msg, TraceX, Fun) -> - X = xname(Msg), - case TraceX of - X -> ok; - _ -> case catch trace(TraceX, Msg, Fun) of - {'EXIT', R} -> rabbit_log:info("Trace died: ~p~n", [R]); - ok -> ok - end +maybe_trace(_Msg, none, _Fun) -> + ok; +maybe_trace(Msg0, TraceX, Fun) -> + case xname(Msg0) of + TraceX -> ok; + _ -> Msg = ensure_content_decoded(Msg0), + X = rabbit_misc:r(vhost(Msg), exchange, TraceX), + {RKey, Headers} = Fun(), + P = #'P_basic'{headers = Headers}, + case catch rabbit_basic:publish(X, RKey, P, payload(Msg)) of + {'EXIT', R} -> rabbit_log:info( + "Trace publish died: ~p~n", [R]); + {ok, _, _} -> ok + end end. trace_exchange(VHost) -> @@ -74,13 +78,6 @@ trace_exchange(VHost) -> {ok, Xs} -> proplists:get_value(VHost, Xs, none) end. -trace(TraceX, Msg0, Fun) -> - Msg = ensure_content_decoded(Msg0), - {RKey, Headers} = Fun(), - rabbit_basic:publish(rabbit_misc:r(vhost(Msg), exchange, TraceX), - RKey, #'P_basic'{headers = Headers}, payload(Msg)), - ok. - msg_to_table(#basic_message{exchange_name = #resource{name = XName}, routing_keys = RoutingKeys, content = #content{properties = Props}}) -> |