diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2014-09-10 17:45:49 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2014-09-10 17:45:49 +0100 |
| commit | 0c197b506acae19b36d2f535edfaec739dc1c833 (patch) | |
| tree | bd4087d34dc39aad8e7dd105b271fee7d14e45e8 | |
| parent | 27b9f2e9b0ce75746fa5556dcc4b882ef8cf2025 (diff) | |
| download | rabbitmq-server-git-0c197b506acae19b36d2f535edfaec739dc1c833.tar.gz | |
...and the same for exchanges.
| -rw-r--r-- | src/rabbit_exchange.erl | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index f184174c8a..5448cb01c4 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) -> |
