diff options
Diffstat (limited to 'cpp/src/qpid/broker/Connection.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/Connection.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/cpp/src/qpid/broker/Connection.cpp b/cpp/src/qpid/broker/Connection.cpp index ec6fd6ece7..b1b8abe4fd 100644 --- a/cpp/src/qpid/broker/Connection.cpp +++ b/cpp/src/qpid/broker/Connection.cpp @@ -23,7 +23,7 @@ #include <assert.h> #include "Connection.h" -#include "Session.h" +#include "SessionState.h" #include "qpid/framing/AMQP_ClientProxy.h" #include "BrokerAdapter.h" #include "SemanticHandler.h" @@ -52,8 +52,7 @@ void Connection::received(framing::AMQFrame& frame){ if (frame.getChannel() == 0) { adapter.handle(frame); } else { - SessionHandler sa = getChannel(frame.getChannel()); - sa.in(frame); + getChannel(frame.getChannel()).in(frame); } } @@ -94,7 +93,7 @@ void Connection::closeChannel(uint16_t id) { if (i != channels.end()) channels.erase(i); } -SessionHandler Connection::getChannel(ChannelId id) { +SessionHandler& Connection::getChannel(ChannelId id) { boost::optional<SessionHandler>& ch = channels[id]; if (!ch) { ch = boost::in_place(boost::ref(*this), id); |
