summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_channel.erl5
-rw-r--r--src/rabbit_reader.erl3
2 files changed, 5 insertions, 3 deletions
diff --git a/src/rabbit_channel.erl b/src/rabbit_channel.erl
index c9714c3def..d87dc5d108 100644
--- a/src/rabbit_channel.erl
+++ b/src/rabbit_channel.erl
@@ -245,7 +245,10 @@ handle_call(_Request, _From, State) ->
noreply(State).
handle_cast({method, Method, Content}, State = #ch{conn_pid = Conn}) ->
- rabbit_flow:ack(Conn),
+ case Content of
+ none -> ok;
+ _ -> rabbit_flow:ack(Conn)
+ end,
try handle_method(Method, Content, State) of
{reply, Reply, NewState} ->
ok = rabbit_writer:send_command(NewState#ch.writer_pid, Reply),
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index f22b6b940c..22d238a5cf 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -923,8 +923,7 @@ send_to_new_channel(Channel, AnalyzedFrame, State) ->
process_channel_frame(Frame, ErrPid, Channel, ChPid, AState) ->
case rabbit_command_assembler:process(Frame, AState) of
{ok, NewAState} -> NewAState;
- {ok, Method, NewAState} -> rabbit_flow:send(ChPid),
- rabbit_channel:do(ChPid, Method),
+ {ok, Method, NewAState} -> rabbit_channel:do(ChPid, Method),
NewAState;
{ok, Method, Content, NewAState} -> rabbit_flow:send(ChPid),
rabbit_channel:do(ChPid,