summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2011-06-29 09:32:29 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2011-06-29 09:32:29 +0100
commit82d316afe123376bd90937dce37155ceb8f6098f (patch)
tree259b868581229f766989383741a5fbe6c0662081 /src
parenta699c342fb44010106054f915ee460bcdb3ee282 (diff)
parentf1a7fc4cfcf0e566a1cf3f76ca3e73e242d43d6d (diff)
downloadrabbitmq-server-git-82d316afe123376bd90937dce37155ceb8f6098f.tar.gz
merge bug24207 into default (Rabbit doesn't stop and halt correctly)
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_channel.erl2
-rw-r--r--src/rabbit_limiter.erl4
2 files changed, 2 insertions, 4 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl
index 991b0b065c..49b6160040 100644
--- a/src/rabbit_channel.erl
+++ b/src/rabbit_channel.erl
@@ -894,7 +894,6 @@ handle_method(#'exchange.declare'{exchange = ExchangeNameBin,
nowait = NoWait},
_, State = #ch{virtual_host = VHostPath}) ->
ExchangeName = rabbit_misc:r(VHostPath, exchange, ExchangeNameBin),
- check_configure_permitted(ExchangeName, State),
check_not_default_exchange(ExchangeName),
_ = rabbit_exchange:lookup_or_die(ExchangeName),
return_ok(State, NoWait, #'exchange.declare_ok'{});
@@ -990,7 +989,6 @@ handle_method(#'queue.declare'{queue = QueueNameBin,
_, State = #ch{virtual_host = VHostPath,
conn_pid = ConnPid}) ->
QueueName = rabbit_misc:r(VHostPath, queue, QueueNameBin),
- check_configure_permitted(QueueName, State),
{{ok, MessageCount, ConsumerCount}, #amqqueue{} = Q} =
rabbit_amqqueue:with_or_die(
QueueName, fun (Q) -> {rabbit_amqqueue:stat(Q), Q} end),
diff --git a/src/rabbit_limiter.erl b/src/rabbit_limiter.erl
index 1b72dd761a..e79583fa89 100644
--- a/src/rabbit_limiter.erl
+++ b/src/rabbit_limiter.erl
@@ -120,9 +120,9 @@ init([ChPid, UnackedMsgCount]) ->
prioritise_call(get_limit, _From, _State) -> 9;
prioritise_call(_Msg, _From, _State) -> 0.
-handle_call({can_send, _QPid, _AckRequired}, _From,
+handle_call({can_send, QPid, _AckRequired}, _From,
State = #lim{blocked = true}) ->
- {reply, false, State};
+ {reply, false, limit_queue(QPid, State)};
handle_call({can_send, QPid, AckRequired}, _From,
State = #lim{volume = Volume}) ->
case limit_reached(State) of