diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2011-04-01 11:31:34 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2011-04-01 11:31:34 +0100 |
commit | ff083aa2ddb84a35c106465d27035f5df78c3166 (patch) | |
tree | 2dda008066274754c597666589a600edfc870677 | |
parent | 89843846fdc48408d78138ad398771d99e3151d8 (diff) | |
download | rabbitmq-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.erl | 15 |
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), |