diff options
Diffstat (limited to 'cpp/src/tests/qpid-receive.cpp')
-rw-r--r-- | cpp/src/tests/qpid-receive.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/cpp/src/tests/qpid-receive.cpp b/cpp/src/tests/qpid-receive.cpp index 9b84306605..28e229ca27 100644 --- a/cpp/src/tests/qpid-receive.cpp +++ b/cpp/src/tests/qpid-receive.cpp @@ -191,8 +191,7 @@ int main(int argc, char ** argv) int64_t interval = 0; if (opts.receiveRate) interval = qpid::sys::TIME_SEC/opts.receiveRate; - Address replyToAddress; - Sender replyToSender; + std::map<std::string,Sender> replyTo; while (!done && receiver.fetch(msg, timeout)) { reporter.message(msg); @@ -227,12 +226,12 @@ int main(int argc, char ** argv) session.acknowledge(); } if (msg.getReplyTo()) { // Echo message back to reply-to address. - if (msg.getReplyTo() != replyToAddress) { - replyToSender = session.createSender(msg.getReplyTo()); - replyToSender.setCapacity(opts.capacity); - replyToAddress = msg.getReplyTo(); + Sender& s = replyTo[msg.getReplyTo().str()]; + if (s.isNull()) { + s = session.createSender(msg.getReplyTo()); + s.setCapacity(opts.capacity); } - replyToSender.send(msg); + s.send(msg); } if (opts.receiveRate) { qpid::sys::AbsTime waitTill(start, count*interval); |