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 | 8118ea9c727e9c46bfc9deb5ef651ed5a42cc557 (patch) | |
| tree | 2dda008066274754c597666589a600edfc870677 /src | |
| parent | 7fc7f4ad96ca8198ddcc978fd5b54d26b1d0448e (diff) | |
| download | rabbitmq-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.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), |
