diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2014-02-17 11:55:05 +0000 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2014-02-17 11:55:05 +0000 |
| commit | ed20f8d6015d218f98553ae1e3e087dcb708176a (patch) | |
| tree | cc1e5c118547a03f400bfa0e98e5603459afbaa5 /src | |
| parent | 1c3952bcb5a2a9c239defa56ae8bf867fe749892 (diff) | |
| parent | 0e0f1cbd65ebaea5000282352896412cc789a9be (diff) | |
| download | rabbitmq-server-git-ed20f8d6015d218f98553ae1e3e087dcb708176a.tar.gz | |
stable to default
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_binding.erl | 16 |
1 files changed, 9 insertions, 7 deletions
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). |
