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 | 286919c43f55bda9fd9e5e840ec9dd35adb1c812 (patch) | |
| tree | b429204e5fa097dd6b6f52ed7a4fdc234906090e /src | |
| parent | a781e9c0efb9b531d71f73c437ff79e5bb4e58ae (diff) | |
| download | rabbitmq-server-git-286919c43f55bda9fd9e5e840ec9dd35adb1c812.tar.gz | |
Make tests pass again and correct placement of permission check
Diffstat (limited to 'src')
| -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 4a741be7ed..01f41a0c9d 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 cf78249793..34eec12183 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), |
