summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-05-19 16:44:09 +0100
committerSimon MacMullen <simon@rabbitmq.com>2011-05-19 16:44:09 +0100
commitc39f7e65ced88329bbde31411690b600bb439f90 (patch)
treefc6a0acad9d94642d7474b5fc9dcc921d1736843
parent8db3126a4f1a3933f3b3ac7084072362bdd12b57 (diff)
downloadrabbitmq-server-c39f7e65ced88329bbde31411690b600bb439f90.tar.gz
Further refactoring
-rw-r--r--src/rabbit_channel.erl5
-rw-r--r--src/rabbit_trace.erl33
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}}) ->