Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 375aec4a5 -> 521e0cafe


DISPATCH-505 - Fix handling of credit with unroutable deliveries on anonymous 
links.


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/521e0caf
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/521e0caf
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/521e0caf

Branch: refs/heads/master
Commit: 521e0cafe9eb59d76819e4aa14cd40fbb596ea0f
Parents: 375aec4
Author: Ted Ross <tr...@redhat.com>
Authored: Tue Sep 13 13:59:42 2016 -0400
Committer: Ted Ross <tr...@redhat.com>
Committed: Fri Sep 16 09:15:22 2016 -0400

----------------------------------------------------------------------
 src/router_core/transfer.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/521e0caf/src/router_core/transfer.c
----------------------------------------------------------------------
diff --git a/src/router_core/transfer.c b/src/router_core/transfer.c
index 5ae61ec..b1348a1 100644
--- a/src/router_core/transfer.c
+++ b/src/router_core/transfer.c
@@ -497,12 +497,14 @@ static int qdr_link_forward_CT(qdr_core_t *core, 
qdr_link_t *link, qdr_delivery_
             dlv->where = QDR_DELIVERY_IN_UNDELIVERED;
         } else {
             //
-            // Release the delivery
+            // Message was not delivered and the link is anonymous, drop the 
delivery.
             //
-            qdr_delivery_release_CT(core, dlv);
+            // If the delivery is not settled, release it.
+            //
+            if (!dlv->settled)
+                qdr_delivery_release_CT(core, dlv);
             qdr_delivery_decref(dlv);
-            if (link->link_type == QD_LINK_ROUTER)
-                qdr_link_issue_credit_CT(core, link, 1, false);
+            qdr_link_issue_credit_CT(core, link, 1, false);
         }
     } else if (fanout > 0) {
         if (dlv->settled) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to