diff options
author | Gordon Sim <gsim@apache.org> | 2015-11-19 15:43:10 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2015-11-19 15:43:10 +0000 |
commit | 22051c890795ac692180b88d00d481db6f009701 (patch) | |
tree | dfc84c260975aef36a27a536153a41a442c855b2 | |
parent | 11368ef1a01233f253eb9eadbadaa9cb9b8465f3 (diff) | |
download | qpid-python-22051c890795ac692180b88d00d481db6f009701.tar.gz |
QPID-6870: qpidd does not at present have facility to track deliverability to individual links, so treat undeliverable-here as rejection
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1715199 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp b/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp index f2949c5879..72a5c59667 100644 --- a/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp +++ b/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp @@ -139,8 +139,15 @@ void OutgoingFromQueue::handle(pn_delivery_t* delivery) outgoingMessageRejected();//TODO: not quite true... break; case PN_MODIFIED: - if (preAcquires()) queue->release(r.cursor, pn_disposition_is_failed(pn_delivery_remote(delivery))); - //TODO: handle undeliverable-here and message-annotations + if (preAcquires()) { + //TODO: handle message-annotations + if (pn_disposition_is_undeliverable(pn_delivery_remote(delivery))) { + //treat undeliverable here as rejection + queue->reject(r.cursor); + } else { + queue->release(r.cursor, pn_disposition_is_failed(pn_delivery_remote(delivery))); + } + } outgoingMessageRejected();//TODO: not quite true... break; default: |