summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2011-02-10 17:16:28 +0000
committerMatthew Sackman <matthew@rabbitmq.com>2011-02-10 17:16:28 +0000
commit3f16737601797b59724cc037449024b1fdd90a32 (patch)
treeb93736ba40614ea9b1b5dee0a4ffd70007ded2ce /src
parent89a2adc676e8ef3deba8b3423878c763d8aca2f5 (diff)
downloadrabbitmq-server-git-3f16737601797b59724cc037449024b1fdd90a32.tar.gz
The channel.close_ok from the client might be immediately followed by a channel.open. As such we must make sure that we send the channel.open to a new channel
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_reader.erl3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index 4d02657fd4..7fdd8ee63c 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -552,6 +552,9 @@ handle_frame(Type, Channel, Payload,
Channel, ChPid, FramingState),
put({channel, Channel}, {ChPid, NewAState}),
case AnalyzedFrame of
+ {method, #'channel.close_ok'{}, _} ->
+ erase({channel, Channel}),
+ State;
{method, MethodName, _} ->
case (State#v1.connection_state =:= blocking
andalso