More accurate reply-to handling
This commit is contained in:
parent
02e5c5e040
commit
5b6ff927fc
|
|
@ -141,14 +141,16 @@ headers_extra(SessionId, AckMode, Version,
|
|||
end.
|
||||
|
||||
headers_post_process(Headers) ->
|
||||
[case H of
|
||||
{?HEADER_REPLY_TO, ?REPLY_QUEUE_PREFIX ++ _} ->
|
||||
H;
|
||||
Prefixes = ?VALID_DEST_PREFIXES -- [?TEMP_QUEUE_PREFIX],
|
||||
[case Header of
|
||||
{?HEADER_REPLY_TO, V} ->
|
||||
{?HEADER_REPLY_TO, ?REPLY_QUEUE_PREFIX ++ V};
|
||||
case lists:any(fun (P) -> lists:prefix(P, V) end, Prefixes) of
|
||||
true -> {?HEADER_REPLY_TO, V};
|
||||
false -> {?HEADER_REPLY_TO, ?REPLY_QUEUE_PREFIX ++ V}
|
||||
end;
|
||||
{_, _} ->
|
||||
H
|
||||
end || H <- Headers].
|
||||
Header
|
||||
end || Header <- Headers].
|
||||
|
||||
headers(SessionId, Delivery, Properties, AckMode, Version) ->
|
||||
headers_extra(SessionId, AckMode, Version, Delivery) ++
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
-include_lib("eunit/include/eunit.hrl").
|
||||
-include_lib("amqp_client/include/amqp_client.hrl").
|
||||
-include("rabbit_stomp_frame.hrl").
|
||||
-include("rabbit_stomp_prefixes.hrl").
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% Header Processing Tests
|
||||
|
|
@ -129,15 +130,11 @@ headers_post_process_test() ->
|
|||
[] = lists:subtract(
|
||||
rabbit_stomp_util:headers_post_process(Headers), Expected).
|
||||
|
||||
headers_post_process_noop1_test() ->
|
||||
Headers = [{"reply-to", "/reply-queue/something"},
|
||||
{"header1", "1"},
|
||||
{"header2", "12"}],
|
||||
Expected = [{"reply-to", "/reply-queue/something"},
|
||||
{"header1", "1"},
|
||||
{"header2", "12"}],
|
||||
[] = lists:subtract(
|
||||
rabbit_stomp_util:headers_post_process(Headers), Expected).
|
||||
headers_post_process_noop_replyto_test() ->
|
||||
[begin
|
||||
Headers = [{"reply-to", Prefix ++ "/something"}],
|
||||
Headers = rabbit_stomp_util:headers_post_process(Headers)
|
||||
end || Prefix <- ?VALID_DEST_PREFIXES, Prefix /= ?TEMP_QUEUE_PREFIX].
|
||||
|
||||
headers_post_process_noop2_test() ->
|
||||
Headers = [{"header1", "1"},
|
||||
|
|
|
|||
Loading…
Reference in New Issue