From 72816282f067e233e82a0ec1c628e2e88d81e21f Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Tue, 24 Sep 2013 13:10:59 +0000 Subject: QPID-5168: less restrictive treatment of reply to addresses git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1525878 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'qpid/cpp/src') diff --git a/qpid/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp b/qpid/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp index 266060c117..1de7180cb9 100644 --- a/qpid/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp +++ b/qpid/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp @@ -169,7 +169,15 @@ qpid::amqp::CharSequence EncodedMessage::getBareMessage() const void EncodedMessage::getReplyTo(qpid::messaging::Address& a) const { - a = qpid::messaging::Address(replyTo.str()); + std::string rt = replyTo.str(); + std::string::size_type i = rt.find('/'); + if (i != std::string::npos && i > 0 && rt.find('/', i+1) == std::string::npos) { + //handle / special case + a.setName(rt.substr(0, i)); + a.setSubject(rt.substr(i+1)); + } else { + a.setName(rt); + } } void EncodedMessage::getSubject(std::string& s) const { -- cgit v1.2.1