diff options
Diffstat (limited to 'cpp/lib/broker/MessageHandlerImpl.cpp')
-rw-r--r-- | cpp/lib/broker/MessageHandlerImpl.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/cpp/lib/broker/MessageHandlerImpl.cpp b/cpp/lib/broker/MessageHandlerImpl.cpp index 5f5e9b84e7..49c4153185 100644 --- a/cpp/lib/broker/MessageHandlerImpl.cpp +++ b/cpp/lib/broker/MessageHandlerImpl.cpp @@ -217,14 +217,13 @@ MessageHandlerImpl::transfer(const MethodContext& context, MessageTransferBody::shared_ptr transfer( boost::shared_polymorphic_downcast<MessageTransferBody>( context.methodBody)); - if (body.isInline()) { - Message::shared_ptr msg(new MessageMessage(transfer)); - channel.handleInlineTransfer(msg, exchange); - } - else { - // Add to reference. - references.get(body.getValue()).transfer(transfer); - } + MessageMessage::shared_ptr message( + new MessageMessage(&connection, transfer)); + + if (body.isInline()) + channel.handleInlineTransfer(message, exchange); + else + references.get(body.getValue()).addMessage(message); client.ok(context); } |