From 3bab4174ae29518f7f5dd73bb0548927dd758fbb Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Tue, 24 Sep 2013 16:27:32 +0000 Subject: 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 --- qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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(); } -- cgit v1.2.1