summaryrefslogtreecommitdiff
path: root/src
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
commit8118ea9c727e9c46bfc9deb5ef651ed5a42cc557 (patch)
tree2dda008066274754c597666589a600edfc870677 /src
parent7fc7f4ad96ca8198ddcc978fd5b54d26b1d0448e (diff)
downloadrabbitmq-server-git-8118ea9c727e9c46bfc9deb5ef651ed5a42cc557.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.
Diffstat (limited to 'src')
-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 26eb78fb20..64178f37e7 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),