summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2011-03-11 17:19:24 +0000
committerMatthew Sackman <matthew@rabbitmq.com>2011-03-11 17:19:24 +0000
commitc1c5de621a572768383ccc78f5a2ff58ff40b7aa (patch)
treef108a096a246faea60533982815d0ee87130bb3a /src
parent8504d1c5fd80b6c246102158f6cb8885778d8712 (diff)
downloadrabbitmq-server-git-c1c5de621a572768383ccc78f5a2ff58ff40b7aa.tar.gz
Make slaves rejoin on boot
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_mirror_queue_misc.erl13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/rabbit_mirror_queue_misc.erl b/src/rabbit_mirror_queue_misc.erl
index 51c2a28a4b..bf341c74e8 100644
--- a/src/rabbit_mirror_queue_misc.erl
+++ b/src/rabbit_mirror_queue_misc.erl
@@ -83,8 +83,17 @@ on_node_up() ->
fun (#amqqueue{ arguments = Args, name = QName }, QsN) ->
case rabbit_misc:table_lookup(
Args, <<"x-mirror">>) of
- {_Type, []} -> [QName | QsN];
- _ -> QsN
+ {_Type, []} ->
+ [QName | QsN];
+ {_Type, Nodes} ->
+ Nodes1 = [list_to_atom(binary_to_list(Node))
+ || {longstr, Node} <- Nodes],
+ case lists:member(node(), Nodes1) of
+ true -> [QName | QsN];
+ false -> QsN
+ end;
+ _ ->
+ QsN
end
end, [], rabbit_queue)
end),