diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2013-09-09 12:23:02 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2013-09-09 12:23:02 +0100 |
commit | 8451cd86fecd18a2a16ab220b0026bfd2d60fbea (patch) | |
tree | e95eb003b19853a7ea218b7a1a2972475495152d | |
parent | 147ba4837bf72265044932a0cc785e53ce68608d (diff) | |
parent | 9a75e3de3ee409941a2dabf098aa56b334849419 (diff) | |
download | rabbitmq-server-8451cd86fecd18a2a16ab220b0026bfd2d60fbea.tar.gz |
Merge in default
-rw-r--r-- | src/rabbit_channel.erl | 3 | ||||
-rw-r--r-- | src/rabbit_mirror_queue_misc.erl | 14 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl index c3780581..d59992cc 100644 --- a/src/rabbit_channel.erl +++ b/src/rabbit_channel.erl @@ -962,7 +962,7 @@ handle_method(#'exchange.unbind'{destination = DestinationNameBin, handle_method(#'queue.declare'{queue = QueueNameBin, passive = false, - durable = Durable, + durable = DurableDeclare, exclusive = ExclusiveDeclare, auto_delete = AutoDelete, nowait = NoWait, @@ -974,6 +974,7 @@ handle_method(#'queue.declare'{queue = QueueNameBin, true -> ConnPid; false -> none end, + Durable = DurableDeclare andalso not ExclusiveDeclare, ActualNameBin = case QueueNameBin of <<>> -> rabbit_guid:binary(rabbit_guid:gen_secure(), "amq.gen"); diff --git a/src/rabbit_mirror_queue_misc.erl b/src/rabbit_mirror_queue_misc.erl index eded0411..a5a1d922 100644 --- a/src/rabbit_mirror_queue_misc.erl +++ b/src/rabbit_mirror_queue_misc.erl @@ -237,16 +237,20 @@ suggested_queue_nodes(Q) -> %% This variant exists so we can pull a call to %% rabbit_mnesia:cluster_nodes(running) out of a loop or %% transaction or both. -suggested_queue_nodes(Q, All) -> +suggested_queue_nodes(Q = #amqqueue{exclusive_owner = Owner}, All) -> {MNode0, SNodes, SSNodes} = actual_queue_nodes(Q), MNode = case MNode0 of none -> node(); _ -> MNode0 end, - Params = policy(<<"ha-params">>, Q), - case module(Q) of - {ok, M} -> M:suggested_queue_nodes(Params, MNode, SNodes, SSNodes, All); - _ -> {MNode, []} + case Owner of + none -> Params = policy(<<"ha-params">>, Q), + case module(Q) of + {ok, M} -> M:suggested_queue_nodes( + Params, MNode, SNodes, SSNodes, All); + _ -> {MNode, []} + end; + _ -> {MNode, []} end. policy(Policy, Q) -> |