summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_exchange.erl15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index f6cc030bd6..c73911d4f3 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -422,16 +422,15 @@ delete_binding(ExchangeName, QueueName, RoutingKey, Arguments) ->
{maybe_auto_delete(X), B}
end
end) of
- {{auto_deleted, X = #exchange{ type = Type }}, B} ->
+ Err = {error, _} ->
+ Err;
+ {{Action, X = #exchange{ type = Type }}, B} ->
Module = type_to_module(Type),
Module:delete_binding(X, B),
- Module:delete(X, []),
- ok;
- {{no_delete, X = #exchange{ type = Type }}, B} ->
- (type_to_module(Type)):delete_binding(X, B),
- ok;
- Err = {error, _} ->
- Err
+ case Action of
+ auto_delete -> Module:delete(X, []), ok;
+ no_delete -> ok
+ end
end.
binding_action(ExchangeName, QueueName, RoutingKey, Arguments, Fun) ->