diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2011-05-19 16:25:06 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2011-05-19 16:25:06 +0100 |
| commit | dd48ceb98d7fb6a9a7c9ef6b817428a5082de30b (patch) | |
| tree | 430ecfdb0686de8073c9c4900a31d05c835ca3d0 /src | |
| parent | 29445dd2b11ee90d1a235391bd5871a6d7f60a06 (diff) | |
| download | rabbitmq-server-git-dd48ceb98d7fb6a9a7c9ef6b817428a5082de30b.tar.gz | |
Refactor.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_trace.erl | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/src/rabbit_trace.erl b/src/rabbit_trace.erl index d0fc4a396c..6f21e575a8 100644 --- a/src/rabbit_trace.erl +++ b/src/rabbit_trace.erl @@ -39,29 +39,33 @@ init(VHost) -> trace_exchange(VHost). tap_trace_in(Msg, TraceX) -> - maybe_trace(Msg, TraceX, publish, []). + maybe_trace(Msg, TraceX, + fun () -> + XName = xname(Msg), + {<<"publish.", XName/binary>>, msg_to_table(Msg)} + end). tap_trace_out({#resource{name = QName}, _QPid, _QMsgId, Redelivered, Msg}, TraceX) -> - RedeliveredNum = case Redelivered of true -> 1; false -> 0 end, - maybe_trace(Msg, TraceX, {deliver, QName}, - [{<<"redelivered">>, signedint, RedeliveredNum}]). + maybe_trace(Msg, TraceX, + fun () -> + H = {<<"redelivered">>, signedint, + case Redelivered of true -> 1; false -> 0 end}, + {<<"deliver.", QName/binary>>, [H | msg_to_table(Msg)]} + end). xname(#basic_message{exchange_name = #resource{name = XName}}) -> XName. vhost(#basic_message{exchange_name = #resource{virtual_host = VHost}}) -> VHost. -maybe_trace(Msg, TraceX, Mode, Extra) -> +maybe_trace(Msg, none, Fun) -> ok; +maybe_trace(Msg, TraceX, Fun) -> + X = xname(Msg), case TraceX of - none -> ok; - _ -> X = xname(Msg), - case TraceX of - X -> ok; - _ -> case catch trace(TraceX, Msg, Mode, Extra) of - {'EXIT', R} -> rabbit_log:info( - "Trace died: ~p~n", [R]); - ok -> ok - end - end + X -> ok; + _ -> case catch trace(TraceX, Msg, Fun) of + {'EXIT', R} -> rabbit_log:info("Trace died: ~p~n", [R]); + ok -> ok + end end. trace_exchange(VHost) -> @@ -70,16 +74,11 @@ trace_exchange(VHost) -> {ok, Xs} -> proplists:get_value(VHost, Xs, none) end. -trace(TraceX, Msg0, Mode, Extra) -> +trace(TraceX, Msg0, Fun) -> Msg = ensure_content_decoded(Msg0), - {RKPrefix, RKSuffix} = case Mode of - publish -> {<<"publish">>, xname(Msg0)}; - {deliver, Q} -> {<<"deliver">>, Q} - end, + {RKey, Headers} = Fun(), rabbit_basic:publish(rabbit_misc:r(vhost(Msg), exchange, TraceX), - <<RKPrefix/binary, ".", RKSuffix/binary>>, - #'P_basic'{headers = msg_to_table(Msg) ++ Extra}, - payload(Msg)), + RKey, #'P_basic'{headers = Headers}, payload(Msg)), ok. msg_to_table(#basic_message{exchange_name = #resource{name = XName}, |
