summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2013-09-24 16:27:32 +0000
committerGordon Sim <gsim@apache.org>2013-09-24 16:27:32 +0000
commit3bab4174ae29518f7f5dd73bb0548927dd758fbb (patch)
tree408cfce24c2621807d171c751e8b349a0e24343d /qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
parent72816282f067e233e82a0ec1c628e2e88d81e21f (diff)
downloadqpid-python-3bab4174ae29518f7f5dd73bb0548927dd758fbb.tar.gz
QPID-5170: if peer settles without setting state, treat as accept
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1525941 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp')
-rw-r--r--qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp b/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
index e8c05ed7b0..6b9da64017 100644
--- a/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
+++ b/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
@@ -121,6 +121,10 @@ void OutgoingFromQueue::handle(pn_delivery_t* delivery)
} else if (pn_delivery_updated(delivery)) {
assert(r.delivery == delivery);
r.disposition = pn_delivery_remote_state(delivery);
+ if (!r.disposition && pn_delivery_settled(delivery)) {
+ //if peer has settled without setting state, assume accepted
+ r.disposition = PN_ACCEPTED;
+ }
if (r.disposition) {
switch (r.disposition) {
case PN_ACCEPTED:
@@ -142,7 +146,7 @@ void OutgoingFromQueue::handle(pn_delivery_t* delivery)
default:
QPID_LOG(warning, "Unhandled disposition: " << r.disposition);
}
- //TODO: ony settle once any dequeue on store has completed
+ //TODO: only settle once any dequeue on store has completed
pn_delivery_settle(delivery);
r.reset();
}