diff options
Diffstat (limited to 'cpp/src/qpid/broker/SessionHandler.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/SessionHandler.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/SessionHandler.cpp b/cpp/src/qpid/broker/SessionHandler.cpp index e59a79f711..2ec0988fc0 100644 --- a/cpp/src/qpid/broker/SessionHandler.cpp +++ b/cpp/src/qpid/broker/SessionHandler.cpp @@ -65,6 +65,9 @@ void SessionHandler::handleIn(AMQFrame& f) { } else if (session.get()) { //we are attached and frame was not a session control so it is for upper layers session->handle(f); + } else if (m && m->isA<SessionDetachedBody>()) { + handleDetach(); + connection.closeChannel(channel.get()); } else { throw NotAttachedException(QPID_MSG("Channel " << channel.get() << " is not attached")); } |
