diff options
| -rw-r--r-- | docs/rabbitmq.config.example | 2 | ||||
| -rw-r--r-- | src/rabbit_binding.erl | 16 |
2 files changed, 10 insertions, 8 deletions
diff --git a/docs/rabbitmq.config.example b/docs/rabbitmq.config.example index c0d6cc7067..7d6b80a70d 100644 --- a/docs/rabbitmq.config.example +++ b/docs/rabbitmq.config.example @@ -341,7 +341,7 @@ %% {reconnect_delay, 2.5} %% ]} %% End of my_first_shovel - ]}, + ]} %% Rather than specifying some values per-shovel, you can specify %% them for all shovels here. %% diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl index bb9c61a8f6..1b4a07e313 100644 --- a/src/rabbit_binding.erl +++ b/src/rabbit_binding.erl @@ -200,13 +200,15 @@ remove(Binding, InnerFun) -> binding_action( Binding, fun (Src, Dst, B) -> - case mnesia:read(rabbit_route, B, write) =:= [] andalso - mnesia:read(rabbit_durable_route, B, write) =/= [] of - true -> rabbit_misc:const({error, binding_not_found}); - false -> case InnerFun(Src, Dst) of - ok -> remove(Src, Dst, B); - {error, _} = Err -> rabbit_misc:const(Err) - end + case mnesia:read(rabbit_route, B, write) of + [] -> case mnesia:read(rabbit_durable_route, B, write) of + [] -> rabbit_misc:const(ok); + _ -> rabbit_misc:const({error, binding_not_found}) + end; + _ -> case InnerFun(Src, Dst) of + ok -> remove(Src, Dst, B); + {error, _} = Err -> rabbit_misc:const(Err) + end end end, fun absent_errs_only/1). |
