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 | 28664ff349dbdbd0c2738d9e286eebe68f7a25bf (patch) | |
| tree | e95eb003b19853a7ea218b7a1a2972475495152d /src | |
| parent | 1b83153e0a87b419bd7bff51de8fc4a350cf0624 (diff) | |
| parent | b71468d7d6d708c167ffd4f56a96b178f8faedfc (diff) | |
| download | rabbitmq-server-git-28664ff349dbdbd0c2738d9e286eebe68f7a25bf.tar.gz | |
Merge in default
Diffstat (limited to 'src')
| -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 c37805817c..d59992cc80 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 eded0411f1..a5a1d92203 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) -> |
