diff options
| -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 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), |
