summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2013-09-24 13:10:59 +0000
committerGordon Sim <gsim@apache.org>2013-09-24 13:10:59 +0000
commit45165c4acce82ed44973b01181ff560248a02b40 (patch)
tree4ab98cb34c0ca8e4508b306bba65deb867a8bb65 /cpp/src
parentf012c2a0116e31c8d978f1779d38075fefc7647c (diff)
downloadqpid-python-45165c4acce82ed44973b01181ff560248a02b40.tar.gz
QPID-5168: less restrictive treatment of reply to addresses
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1525878 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/messaging/amqp/EncodedMessage.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp b/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp
index 266060c117..1de7180cb9 100644
--- a/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp
+++ b/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 <name>/<subject> 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
{