summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bakken <lbakken@pivotal.io>2019-02-17 09:36:12 -0800
committerLuke Bakken <lbakken@pivotal.io>2019-02-18 08:20:49 -0800
commit4f853ad021d61daab3dc1a8a7612d8512d1f45e7 (patch)
treeadbe06a7fb6df01d5865b5114819f439cce58db3
parentf6d93688a71bb765c91fe2cc3bba6e729d5fae5e (diff)
downloadrabbitmq-server-git-4f853ad021d61daab3dc1a8a7612d8512d1f45e7.tar.gz
Check exclusive owner before durable argument
Fixes #1887
-rw-r--r--src/rabbit_amqqueue.erl14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index dbf8693a96..5385ed368f 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -616,14 +616,14 @@ priv_absent(QueueName, _QPid, _IsDurable, timeout) ->
rabbit_framing:amqp_table(), rabbit_types:maybe(pid())) ->
'ok' | rabbit_types:channel_exit() | rabbit_types:connection_exit().
-assert_equivalence(Q, Durable1, AD1, Args1, Owner) ->
+assert_equivalence(Q, DurableDeclare, AutoDeleteDeclare, Args1, Owner) ->
QName = amqqueue:get_name(Q),
- Durable = amqqueue:is_durable(Q),
- AD = amqqueue:is_auto_delete(Q),
- rabbit_misc:assert_field_equivalence(Durable, Durable1, QName, durable),
- rabbit_misc:assert_field_equivalence(AD, AD1, QName, auto_delete),
- assert_args_equivalence(Q, Args1),
- check_exclusive_access(Q, Owner, strict).
+ DurableQ = amqqueue:is_durable(Q),
+ AutoDeleteQ = amqqueue:is_auto_delete(Q),
+ ok = check_exclusive_access(Q, Owner, strict),
+ ok = rabbit_misc:assert_field_equivalence(DurableQ, DurableDeclare, QName, durable),
+ ok = rabbit_misc:assert_field_equivalence(AutoDeleteQ, AutoDeleteDeclare, QName, auto_delete),
+ ok = assert_args_equivalence(Q, Args1).
-spec check_exclusive_access(amqqueue:amqqueue(), pid()) ->
'ok' | rabbit_types:channel_exit().