summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2010-06-29 16:40:53 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2010-06-29 16:40:53 +0100
commitac87cd4aec22dafad101d5b415b793631feda50d (patch)
treeb429204e5fa097dd6b6f52ed7a4fdc234906090e
parent3e14d8d9d0ae179ac11a1ebb0b177830171593e2 (diff)
downloadrabbitmq-server-ac87cd4aec22dafad101d5b415b793631feda50d.tar.gz
Make tests pass again and correct placement of permission check
-rw-r--r--src/rabbit_channel.erl10
-rw-r--r--src/rabbit_tests.erl7
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),