diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2010-06-29 16:40:53 +0100 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2010-06-29 16:40:53 +0100 |
commit | ac87cd4aec22dafad101d5b415b793631feda50d (patch) | |
tree | b429204e5fa097dd6b6f52ed7a4fdc234906090e | |
parent | 3e14d8d9d0ae179ac11a1ebb0b177830171593e2 (diff) | |
download | rabbitmq-server-ac87cd4aec22dafad101d5b415b793631feda50d.tar.gz |
Make tests pass again and correct placement of permission check
-rw-r--r-- | src/rabbit_channel.erl | 10 | ||||
-rw-r--r-- | src/rabbit_tests.erl | 7 |
2 files changed, 9 insertions, 8 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl index 4a741be7..01f41a0c 100644 --- a/src/rabbit_channel.erl +++ b/src/rabbit_channel.erl @@ -736,17 +736,17 @@ handle_method(#'queue.declare'{queue = QueueNameBin, Other -> check_name('queue', Other) end, QueueName = rabbit_misc:r(VHostPath, queue, ActualNameBin), + check_configure_permitted(QueueName, State), case rabbit_amqqueue:with(QueueName, fun (Q) -> {rabbit_amqqueue:stat(Q), Q} end) of - {{ok, _ActualName, MessageCount1, ConsumerCount1}, + {{ok, _ActualName, MessageCount, ConsumerCount}, #amqqueue{name = QueueName, durable = Durable1, auto_delete = AutoDelete1} = Q1} when Durable =:= Durable1, AutoDelete =:= AutoDelete1 -> check_exclusive_access(Q1, Owner, strict), - check_configure_permitted(QueueName, State), - return_queue_declare_ok(Q1, NoWait, MessageCount1, ConsumerCount1, + return_queue_declare_ok(Q1, NoWait, MessageCount, ConsumerCount, false, Owner, State); - {{ok, _ActualName, _MessageCount1, _ConsumerCount1}, + {{ok, _ActualName, _MessageCount, _ConsumerCount}, #amqqueue{name = QueueName}} -> rabbit_misc:protocol_error( precondition_failed, "parameters for ~s not equivalent", @@ -770,11 +770,11 @@ handle_method(#'queue.declare'{queue = QueueNameBin, _, State = #ch{virtual_host = VHostPath, reader_pid = ReaderPid}) -> QueueName = rabbit_misc:r(VHostPath, queue, QueueNameBin), + check_configure_permitted(QueueName, State), {{ok, _ActualName, MessageCount, ConsumerCount}, #amqqueue{name = QueueName} = Q} = rabbit_amqqueue:with_or_die( QueueName, fun (Q1) -> {rabbit_amqqueue:stat(Q1), Q1} end), - check_configure_permitted(QueueName, State), check_exclusive_access(Q, ReaderPid, lax), return_queue_declare_ok(Q, NoWait, MessageCount, ConsumerCount, false, none, State); diff --git a/src/rabbit_tests.erl b/src/rabbit_tests.erl index cf782497..34eec121 100644 --- a/src/rabbit_tests.erl +++ b/src/rabbit_tests.erl @@ -792,10 +792,11 @@ test_server_status() -> Writer = spawn(fun () -> receive shutdown -> ok end end), Ch = rabbit_channel:start_link(1, self(), Writer, <<"user">>, <<"/">>, self()), - [Q, Q2] = [#amqqueue{} = rabbit_amqqueue:declare( + [Q, Q2] = [Queue || Name <- [<<"foo">>, <<"bar">>], + {new, Queue = #amqqueue{}} <- + [rabbit_amqqueue:declare( rabbit_misc:r(<<"/">>, queue, Name), - false, false, [], none) || - Name <- [<<"foo">>, <<"bar">>]], + false, false, [], none)]], ok = rabbit_amqqueue:basic_consume(Q, true, Ch, undefined, <<"ctag">>, true, undefined), |