summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2011-04-01 11:31:34 +0100
committerSimon MacMullen <simon@rabbitmq.com>2011-04-01 11:31:34 +0100
commitff083aa2ddb84a35c106465d27035f5df78c3166 (patch)
tree2dda008066274754c597666589a600edfc870677
parent89843846fdc48408d78138ad398771d99e3151d8 (diff)
downloadrabbitmq-server-ff083aa2ddb84a35c106465d27035f5df78c3166.tar.gz
Make things more symmetrical. This adds extra rows into the semi durable table for bindings from transient to durable exchanges, but since we recover bindings based on exchanges and queues recovered this should not have a visible change.
-rw-r--r--src/rabbit_binding.erl15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl
index 26eb78fb..64178f37 100644
--- a/src/rabbit_binding.erl
+++ b/src/rabbit_binding.erl
@@ -266,10 +266,8 @@ remove_transient_for_destination(DstName) ->
%%----------------------------------------------------------------------------
-all_durable(Resources) ->
- lists:all(fun (#exchange{durable = D}) -> D;
- (#amqqueue{durable = D}) -> D
- end, Resources).
+durable(#exchange{durable = D}) -> D;
+durable(#amqqueue{durable = D}) -> D.
binding_action(Binding = #binding{source = SrcName,
destination = DstName,
@@ -283,14 +281,13 @@ binding_action(Binding = #binding{source = SrcName,
sync_binding(Binding, Src, Dst, Fun) ->
{Route, ReverseRoute} = route_with_reverse(Binding),
- ok = case all_durable([Src, Dst]) of
+ ok = case durable(Src) andalso durable(Dst) of
true -> Fun(rabbit_durable_route, Route, write);
false -> ok
end,
- ok = case Dst of
- #amqqueue{durable = true} -> Fun(rabbit_semi_durable_route, Route,
- write);
- _ -> ok
+ ok = case durable(Dst) of
+ true -> Fun(rabbit_semi_durable_route, Route, write);
+ false -> ok
end,
ok = Fun(rabbit_route, Route, write),
ok = Fun(rabbit_reverse_route, ReverseRoute, write),