You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2016/01/29 22:13:00 UTC

[3/4] qpid-dispatch git commit: DISPATCH-179 - Fixed the handling of deliveries accepted by an internal endpoint (management agent).

DISPATCH-179 - Fixed the handling of deliveries accepted by an internal endpoint (management agent).


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

Branch: refs/heads/tross-DISPATCH-179-1
Commit: b6ef1c36876613ef7ab87c6c3d388c77db497e10
Parents: 4fbc6e8
Author: Ted Ross <tr...@redhat.com>
Authored: Fri Jan 29 13:24:36 2016 -0500
Committer: Ted Ross <tr...@redhat.com>
Committed: Fri Jan 29 13:24:36 2016 -0500

----------------------------------------------------------------------
 src/router_core/transfer.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b6ef1c36/src/router_core/transfer.c
----------------------------------------------------------------------
diff --git a/src/router_core/transfer.c b/src/router_core/transfer.c
index 50e5320..6bda6ad 100644
--- a/src/router_core/transfer.c
+++ b/src/router_core/transfer.c
@@ -303,14 +303,20 @@ static void qdr_link_deliver_CT(qdr_core_t *core, qdr_action_t *action, bool dis
             //
         }
     } else if (fanout == 1) {
-        if (presettled) {
+        if (dlv->settled) {
             //
-            // The delivery was pre-settled.  Issue replacement credit now that it's
-            // been forwarded.
+            // The delivery is settled.  Keep it off the unsettled list and issue
+            // replacement credit for it now.
             //
             qdr_link_issue_credit_CT(core, link, 1);
-            assert(!dlv->peer);
-            qdr_delivery_free(dlv);
+
+            //
+            // If the delivery was pre-settled, free it now.
+            //
+            if (presettled) {
+                assert(!dlv->peer);
+                qdr_delivery_free(dlv);
+            }
         } else
             DEQ_INSERT_TAIL(link->unsettled, dlv);
     } else {


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