summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-02-17 11:55:05 +0000
committerSimon MacMullen <simon@rabbitmq.com>2014-02-17 11:55:05 +0000
commited20f8d6015d218f98553ae1e3e087dcb708176a (patch)
treecc1e5c118547a03f400bfa0e98e5603459afbaa5 /src
parent1c3952bcb5a2a9c239defa56ae8bf867fe749892 (diff)
parent0e0f1cbd65ebaea5000282352896412cc789a9be (diff)
downloadrabbitmq-server-git-ed20f8d6015d218f98553ae1e3e087dcb708176a.tar.gz
stable to default
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_binding.erl16
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).