summaryrefslogtreecommitdiff
path: root/qpid/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
commit72816282f067e233e82a0ec1c628e2e88d81e21f (patch)
tree43dec3c4dc60d44cedc177e409772be1bbda5910 /qpid/cpp/src
parent91f938099f7faab7933df84129ac3df405e2d884 (diff)
downloadqpid-python-72816282f067e233e82a0ec1c628e2e88d81e21f.tar.gz
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
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/messaging/amqp/EncodedMessage.cpp10
1 files changed, 9 insertions, 1 deletions
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 <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
{