summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-09-10 17:45:49 +0100
committerSimon MacMullen <simon@rabbitmq.com>2014-09-10 17:45:49 +0100
commit965dad72f59a767d9d6b1343eaea810a5f13c39e (patch)
treebd4087d34dc39aad8e7dd105b271fee7d14e45e8
parent54bce9308b67ebfeb77c4090a2ed79aef31ae19b (diff)
downloadrabbitmq-server-965dad72f59a767d9d6b1343eaea810a5f13c39e.tar.gz
...and the same for exchanges.
-rw-r--r--src/rabbit_exchange.erl19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index f184174c..5448cb01 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -214,19 +214,18 @@ check_type(TypeBin) ->
end
end.
-assert_equivalence(X = #exchange{ durable = Durable,
+assert_equivalence(X = #exchange{ name = XName,
+ durable = Durable,
auto_delete = AutoDelete,
internal = Internal,
type = Type},
- Type, Durable, AutoDelete, Internal, RequiredArgs) ->
- (type_to_module(Type)):assert_args_equivalence(X, RequiredArgs);
-assert_equivalence(#exchange{ name = Name },
- _Type, _Durable, _Internal, _AutoDelete, _Args) ->
- rabbit_misc:protocol_error(
- precondition_failed,
- "cannot redeclare ~s with different type, durable, "
- "internal or autodelete value",
- [rabbit_misc:rs(Name)]).
+ ReqType, ReqDurable, ReqAutoDelete, ReqInternal, ReqArgs) ->
+ AFE = fun rabbit_misc:assert_field_equivalence/4,
+ AFE(Type, ReqType, XName, type),
+ AFE(Durable, ReqDurable, XName, durable),
+ AFE(AutoDelete, ReqAutoDelete, XName, auto_delete),
+ AFE(Internal, ReqInternal, XName, internal),
+ (type_to_module(Type)):assert_args_equivalence(X, ReqArgs).
assert_args_equivalence(#exchange{ name = Name, arguments = Args },
RequiredArgs) ->