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/09/30 12:23:43 UTC

[1/4] qpid-dispatch git commit: DISPATCH-496 - Issue credit to blocked senders when an autolink attaches the first consumer.

Repository: qpid-dispatch
Updated Branches:
  refs/heads/0.6.x 74544485b -> 2a00adda0


DISPATCH-496 - Issue credit to blocked senders when an autolink attaches the first consumer.


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

Branch: refs/heads/0.6.x
Commit: b18aa3ab35320e9984162bf8bd01da4232359e8d
Parents: 7454448
Author: Ted Ross <tr...@redhat.com>
Authored: Fri Sep 2 16:24:37 2016 -0400
Committer: Ted Ross <tr...@redhat.com>
Committed: Thu Sep 29 09:01:09 2016 -0400

----------------------------------------------------------------------
 src/router_core/connections.c | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/b18aa3ab/src/router_core/connections.c
----------------------------------------------------------------------
diff --git a/src/router_core/connections.c b/src/router_core/connections.c
index 336b90f..ff6362a 100644
--- a/src/router_core/connections.c
+++ b/src/router_core/connections.c
@@ -1214,6 +1214,7 @@ static void qdr_link_inbound_second_attach_CT(qdr_core_t *core, qdr_action_t *ac
                         const char *key = (const char*) qd_hash_key_by_handle(link->auto_link->addr->hash_handle);
                         if (key && *key == 'M')
                             qdr_post_mobile_added_CT(core, key);
+                        qdr_addr_start_inlinks_CT(core, link->auto_link->addr);
                     }
                 }
             }


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


[3/4] qpid-dispatch git commit: DISPATCH-523 - Make sure deliveries that _should_ be deliverable but are not get released.

Posted by tr...@apache.org.
DISPATCH-523 - Make sure deliveries that _should_ be deliverable but are not get released.


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

Branch: refs/heads/0.6.x
Commit: 74cee2f39a218bd93a59befbd135ca7c5581cd61
Parents: 0ec6ede
Author: Ted Ross <tr...@redhat.com>
Authored: Fri Sep 23 17:11:36 2016 -0400
Committer: Ted Ross <tr...@redhat.com>
Committed: Thu Sep 29 09:56:16 2016 -0400

----------------------------------------------------------------------
 src/router_core/transfer.c | 65 ++++++++++++++++++++++++-----------------
 1 file changed, 39 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/74cee2f3/src/router_core/transfer.c
----------------------------------------------------------------------
diff --git a/src/router_core/transfer.c b/src/router_core/transfer.c
index 40ee1ec..d33d905 100644
--- a/src/router_core/transfer.c
+++ b/src/router_core/transfer.c
@@ -430,8 +430,36 @@ static void qdr_link_flow_CT(qdr_core_t *core, qdr_action_t *action, bool discar
 }
 
 
-static int qdr_link_forward_CT(qdr_core_t *core, qdr_link_t *link, qdr_delivery_t *dlv, qdr_address_t *addr)
+/**
+ * Return the number of outbound paths to destinations that this address has.
+ * Note that even if there are more than zero paths, the destination still may
+ * be unreachable (e.g. an rnode next hop with no link).
+ */
+static long qdr_addr_path_count_CT(qdr_address_t *addr)
+{
+    return (long) DEQ_SIZE(addr->subscriptions) + (long) DEQ_SIZE(addr->rlinks) +
+        (long) qd_bitmask_cardinality(addr->rnodes);
+}
+
+
+static void qdr_link_forward_CT(qdr_core_t *core, qdr_link_t *link, qdr_delivery_t *dlv, qdr_address_t *addr)
 {
+    if (addr && addr == link->owning_addr && qdr_addr_path_count_CT(addr) == 0) {
+        //
+        // We are trying to forward a delivery on an address that has no outbound paths
+        // AND the incoming link is targeted (not anonymous).  In this case, we must put
+        // the delivery on the incoming link's undelivered list.  Note that it is safe
+        // to do this because the undelivered list will be flushed once the number of
+        // paths transitions from zero to one.
+        //
+        // Use the action-reference as the reference for undelivered rather
+        // than decrementing and incrementing the delivery ref_count.
+        //
+        DEQ_INSERT_TAIL(link->undelivered, dlv);
+        dlv->where = QDR_DELIVERY_IN_UNDELIVERED;
+        return;
+    }
+
     int fanout = 0;
 
     if (addr) {
@@ -442,28 +470,15 @@ static int qdr_link_forward_CT(qdr_core_t *core, qdr_link_t *link, qdr_delivery_
     }
 
     if (fanout == 0) {
-        if (link->owning_addr) {
-            //
-            // Message was not delivered and the link is not anonymous.
-            // Queue the message for later delivery (when the address gets
-            // a valid destination).
-            //
-            // Use the action-reference as the reference for undelivered rather
-            // than decrementing and incrementing the delivery ref_count.
-            //
-            DEQ_INSERT_TAIL(link->undelivered, dlv);
-            dlv->where = QDR_DELIVERY_IN_UNDELIVERED;
-        } else {
-            //
-            // Message was not delivered and the link is anonymous, drop the delivery.
-            //
-            // If the delivery is not settled, release it.
-            //
-            if (!dlv->settled)
-                qdr_delivery_release_CT(core, dlv);
-            qdr_delivery_decref(dlv);
-            qdr_link_issue_credit_CT(core, link, 1, false);
-        }
+        //
+        // Message was not delivered, drop the delivery.
+        //
+        // If the delivery is not settled, release it.
+        //
+        if (!dlv->settled)
+            qdr_delivery_release_CT(core, dlv);
+        qdr_delivery_decref(dlv);
+        qdr_link_issue_credit_CT(core, link, 1, false);
     } else if (fanout > 0) {
         if (dlv->settled) {
             //
@@ -494,8 +509,6 @@ static int qdr_link_forward_CT(qdr_core_t *core, qdr_link_t *link, qdr_delivery_
                 qdr_link_issue_credit_CT(core, link, 1, false);
         }
     }
-
-    return fanout;
 }
 
 
@@ -716,7 +729,7 @@ void qdr_addr_start_inlinks_CT(qdr_core_t *core, qdr_address_t *addr)
     if (DEQ_SIZE(addr->inlinks) == 0)
         return;
 
-    if (DEQ_SIZE(addr->subscriptions) + DEQ_SIZE(addr->rlinks) + qd_bitmask_cardinality(addr->rnodes) == 1) {
+    if (qdr_addr_path_count_CT(addr) == 1) {
         qdr_link_ref_t *ref = DEQ_HEAD(addr->inlinks);
         while (ref) {
             qdr_link_t *link = ref->link;


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


[4/4] qpid-dispatch git commit: DISPATCH-500 - Fixed code to use qdr_field_t to pass around the name and identity of management objects

Posted by tr...@apache.org.
DISPATCH-500 - Fixed code to use qdr_field_t to pass around the name and identity of management objects

(cherry picked from commit 52b5a19aca807b4b3abe8b9e81a9b4819e2d8773)


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

Branch: refs/heads/0.6.x
Commit: 2a00adda006a235bf2a54996b5c263fea821a211
Parents: 74cee2f
Author: Ganesh Murthy <gm...@redhat.com>
Authored: Wed Sep 14 14:10:32 2016 -0400
Committer: Ted Ross <tr...@redhat.com>
Committed: Fri Sep 30 08:21:35 2016 -0400

----------------------------------------------------------------------
 src/router_config.c                   | 27 ++++++++++++++++++---
 src/router_core/agent.c               | 39 ++++++++++++++++++------------
 src/router_core/router_core.c         | 11 +++++++++
 src/router_core/router_core_private.h |  5 ++--
 tests/system_tests_qdmanage.py        | 29 +++++++++++++++++++++-
 5 files changed, 90 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/2a00adda/src/router_config.c
----------------------------------------------------------------------
diff --git a/src/router_config.c b/src/router_config.c
index 1c37851..a100bbf 100644
--- a/src/router_config.c
+++ b/src/router_config.c
@@ -280,7 +280,14 @@ qd_error_t qd_router_configure_address(qd_router_t *router, qd_entity_t *entity)
         qd_parsed_field_t   *in_body = qd_parse(iter);
         qd_field_iterator_free(iter);
 
-        qdr_manage_create(router->router_core, 0, QD_ROUTER_CONFIG_ADDRESS, 0, in_body, 0);
+        qd_field_iterator_t *name_iter = 0;
+
+        if (name)
+            name_iter = qd_field_iterator_string(name);
+
+        qdr_manage_create(router->router_core, 0, QD_ROUTER_CONFIG_ADDRESS, name_iter, in_body, 0);
+
+        qd_field_iterator_free(name_iter);
 
 
     } while(0);
@@ -365,7 +372,14 @@ qd_error_t qd_router_configure_link_route(qd_router_t *router, qd_entity_t *enti
         qd_parsed_field_t   *in_body = qd_parse(iter);
         qd_field_iterator_free(iter);
 
-        qdr_manage_create(router->router_core, 0, QD_ROUTER_CONFIG_LINK_ROUTE, 0, in_body, 0);
+        qd_field_iterator_t *name_iter = 0;
+
+        if (name)
+            name_iter = qd_field_iterator_string(name);
+
+        qdr_manage_create(router->router_core, 0, QD_ROUTER_CONFIG_LINK_ROUTE, name_iter, in_body, 0);
+
+        qd_field_iterator_free(name_iter);
 
     } while(0);
 
@@ -450,7 +464,14 @@ qd_error_t qd_router_configure_auto_link(qd_router_t *router, qd_entity_t *entit
         qd_parsed_field_t   *in_body = qd_parse(iter);
         qd_field_iterator_free(iter);
 
-        qdr_manage_create(router->router_core, 0, QD_ROUTER_CONFIG_AUTO_LINK, 0, in_body, 0);
+        qd_field_iterator_t *name_iter = 0;
+
+        if (name)
+            name_iter = qd_field_iterator_string(name);
+
+        qdr_manage_create(router->router_core, 0, QD_ROUTER_CONFIG_AUTO_LINK, name_iter, in_body, 0);
+
+        qd_field_iterator_free(name_iter);
 
     } while (0);
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/2a00adda/src/router_core/agent.c
----------------------------------------------------------------------
diff --git a/src/router_core/agent.c b/src/router_core/agent.c
index 401d4ae..a72d4ca 100644
--- a/src/router_core/agent.c
+++ b/src/router_core/agent.c
@@ -112,7 +112,7 @@ void qdr_manage_create(qdr_core_t              *core,
 
     // Create a query object here
     action->args.agent.query = qdr_query(core, context, type, out_body);
-    action->args.agent.name = name;
+    action->args.agent.name = qdr_field_from_iter(name);
     action->args.agent.in_body = in_body;
 
     qdr_action_enqueue(core, action);
@@ -129,8 +129,8 @@ void qdr_manage_delete(qdr_core_t *core,
 
     // Create a query object here
     action->args.agent.query = qdr_query(core, context, type, 0);
-    action->args.agent.name = name;
-    action->args.agent.identity = identity;
+    action->args.agent.name = qdr_field_from_iter(name);
+    action->args.agent.identity = qdr_field_from_iter(identity);
 
     qdr_action_enqueue(core, action);
 }
@@ -147,8 +147,8 @@ void qdr_manage_read(qdr_core_t *core,
 
     // Create a query object here
     action->args.agent.query = qdr_query(core, context, entity_type, body);
-    action->args.agent.identity  = identity;
-    action->args.agent.name = name;
+    action->args.agent.identity  = qdr_field_from_iter(identity);
+    action->args.agent.name = qdr_field_from_iter(name);
 
     qdr_action_enqueue(core, action);
 }
@@ -164,8 +164,8 @@ void qdr_manage_update(qdr_core_t              *core,
 {
     qdr_action_t *action = qdr_action(qdr_manage_update_CT, "manage_update");
     action->args.agent.query = qdr_query(core, context, type, out_body);
-    action->args.agent.name = name;
-    action->args.agent.identity = identity;
+    action->args.agent.name = qdr_field_from_iter(name);
+    action->args.agent.identity = qdr_field_from_iter(identity);
     action->args.agent.in_body = in_body;
 
     qdr_action_enqueue(core, action);
@@ -330,8 +330,8 @@ static void qdr_agent_forbidden(qdr_core_t *core, qdr_query_t *query, bool op_qu
 
 static void qdr_manage_read_CT(qdr_core_t *core, qdr_action_t *action, bool discard)
 {
-    qd_field_iterator_t     *identity   = action->args.agent.identity;
-    qd_field_iterator_t     *name       = action->args.agent.name;
+    qd_field_iterator_t     *identity   = qdr_field_iterator(action->args.agent.identity);
+    qd_field_iterator_t     *name       = qdr_field_iterator(action->args.agent.name);
     qdr_query_t             *query      = action->args.agent.query;
 
     switch (query->entity_type) {
@@ -345,12 +345,15 @@ static void qdr_manage_read_CT(qdr_core_t *core, qdr_action_t *action, bool disc
     case QD_ROUTER_EXCHANGE:          break;
     case QD_ROUTER_BINDING:           break;
    }
+
+    qdr_field_free(action->args.agent.name);
+    qdr_field_free(action->args.agent.identity);
 }
 
 
 static void qdr_manage_create_CT(qdr_core_t *core, qdr_action_t *action, bool discard)
 {
-    qd_field_iterator_t     *name       = action->args.agent.name;
+    qd_field_iterator_t     *name       = qdr_field_iterator(action->args.agent.name);
     qdr_query_t             *query      = action->args.agent.query;
     qd_parsed_field_t       *in_body    = action->args.agent.in_body;
 
@@ -367,14 +370,15 @@ static void qdr_manage_create_CT(qdr_core_t *core, qdr_action_t *action, bool di
 
    }
 
+   qdr_field_free(action->args.agent.name);
    qd_parse_free(in_body);
 }
 
 
 static void qdr_manage_delete_CT(qdr_core_t *core, qdr_action_t *action, bool discard)
 {
-    qd_field_iterator_t     *name       = action->args.agent.name;
-    qd_field_iterator_t     *identity   = action->args.agent.identity;
+    qd_field_iterator_t     *name       = qdr_field_iterator(action->args.agent.name);
+    qd_field_iterator_t     *identity   = qdr_field_iterator(action->args.agent.identity);
     qdr_query_t             *query      = action->args.agent.query;
 
     switch (query->entity_type) {
@@ -388,12 +392,15 @@ static void qdr_manage_delete_CT(qdr_core_t *core, qdr_action_t *action, bool di
     case QD_ROUTER_EXCHANGE:          break;
     case QD_ROUTER_BINDING:           break;
    }
+
+   qdr_field_free(action->args.agent.name);
+   qdr_field_free(action->args.agent.identity);
 }
 
 static void qdr_manage_update_CT(qdr_core_t *core, qdr_action_t *action, bool discard)
 {
-    qd_field_iterator_t     *identity   = action->args.agent.identity;
-    qd_field_iterator_t     *name       = action->args.agent.name;
+    qd_field_iterator_t     *identity   = qdr_field_iterator(action->args.agent.identity);
+    qd_field_iterator_t     *name       = qdr_field_iterator(action->args.agent.name);
     qdr_query_t             *query      = action->args.agent.query;
     qd_parsed_field_t       *in_body    = action->args.agent.in_body;
 
@@ -409,7 +416,9 @@ static void qdr_manage_update_CT(qdr_core_t *core, qdr_action_t *action, bool di
     case QD_ROUTER_BINDING:           break;
    }
 
-    qd_parse_free(in_body);
+   qdr_field_free(action->args.agent.name);
+   qdr_field_free(action->args.agent.identity);
+   qd_parse_free(in_body);
 }
 
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/2a00adda/src/router_core/router_core.c
----------------------------------------------------------------------
diff --git a/src/router_core/router_core.c b/src/router_core/router_core.c
index f5b2474..059c03e 100644
--- a/src/router_core/router_core.c
+++ b/src/router_core/router_core.c
@@ -143,6 +143,9 @@ qdr_field_t *qdr_field(const char *text)
 
 qdr_field_t *qdr_field_from_iter(qd_field_iterator_t *iter)
 {
+    if (!iter)
+        return 0;
+
     qdr_field_t *field = new_qdr_field_t();
     qd_buffer_t *buf;
     int          remaining;
@@ -166,6 +169,14 @@ qdr_field_t *qdr_field_from_iter(qd_field_iterator_t *iter)
     return field;
 }
 
+qd_field_iterator_t *qdr_field_iterator(qdr_field_t *field)
+{
+    if (!field)
+        return 0;
+
+    return field->iterator;
+}
+
 
 void qdr_field_free(qdr_field_t *field)
 {

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/2a00adda/src/router_core/router_core_private.h
----------------------------------------------------------------------
diff --git a/src/router_core/router_core_private.h b/src/router_core/router_core_private.h
index 394bd55..9b64a21 100644
--- a/src/router_core/router_core_private.h
+++ b/src/router_core/router_core_private.h
@@ -61,6 +61,7 @@ typedef struct {
 
 qdr_field_t *qdr_field(const char *string);
 qdr_field_t *qdr_field_from_iter(qd_field_iterator_t *iter);
+qd_field_iterator_t *qdr_field_iterator(qdr_field_t *field);
 void qdr_field_free(qdr_field_t *field);
 char *qdr_field_copy(qdr_field_t *field);
 
@@ -137,8 +138,8 @@ struct qdr_action_t {
         struct {
             qdr_query_t             *query;
             int                      offset;
-            qd_field_iterator_t     *identity;
-            qd_field_iterator_t     *name;
+            qdr_field_t             *identity;
+            qdr_field_t             *name;
             qd_parsed_field_t       *in_body;
         } agent;
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/2a00adda/tests/system_tests_qdmanage.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_qdmanage.py b/tests/system_tests_qdmanage.py
index b8837b3..5696d44 100644
--- a/tests/system_tests_qdmanage.py
+++ b/tests/system_tests_qdmanage.py
@@ -46,7 +46,10 @@ class QdmanageTest(TestCase):
                              'password': 'server-password'}),
             ('listener', {'port': cls.tester.get_port()}),
             ('connector', {'role': 'inter-router', 'port': cls.inter_router_port}),
-            ('listener', {'port': cls.tester.get_port(), 'ssl-profile': 'server-ssl'})
+            ('address', {'name': 'test-address', 'prefix': 'abcd', 'distribution': 'multicast'}),
+            ('linkRoute', {'name': 'test-link-route', 'prefix': 'xyz', 'dir': 'in'}),
+            ('autoLink', {'name': 'test-auto-link', 'addr': 'mnop', 'dir': 'out'}),
+            ('listener', {'port': cls.tester.get_port(), 'sslProfile': 'server-ssl'})
         ])
 
         config_2 = Qdrouterd.Config([
@@ -198,6 +201,30 @@ class QdmanageTest(TestCase):
         connector = json.loads(self.run_qdmanage(create_command))
         return connector
 
+    def test_check_address_name(self):
+        long_type = 'org.apache.qpid.dispatch.router.config.address'
+        query_command = 'QUERY --type=' + long_type
+        output = json.loads(self.run_qdmanage(query_command))
+        self.assertEqual(output[0]['name'], "test-address")
+        self.assertEqual(output[0]['distribution'], "multicast")
+        self.assertEqual(output[0]['prefix'], "abcd")
+
+    def test_check_link_route_name(self):
+        long_type = 'org.apache.qpid.dispatch.router.config.linkRoute'
+        query_command = 'QUERY --type=' + long_type
+        output = json.loads(self.run_qdmanage(query_command))
+        self.assertEqual(output[0]['name'], "test-link-route")
+        self.assertEqual(output[0]['dir'], "in")
+        self.assertEqual(output[0]['prefix'], "xyz")
+
+    def test_check_auto_link_name(self):
+        long_type = 'org.apache.qpid.dispatch.router.config.autoLink'
+        query_command = 'QUERY --type=' + long_type
+        output = json.loads(self.run_qdmanage(query_command))
+        self.assertEqual(output[0]['name'], "test-auto-link")
+        self.assertEqual(output[0]['dir'], "out")
+        self.assertEqual(output[0]['addr'], "mnop")
+
     def test_create_delete_connector(self):
         long_type = 'org.apache.qpid.dispatch.connector'
         query_command = 'QUERY --type=' + long_type


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


[2/4] qpid-dispatch git commit: DISPATCH-505 - Fix handling of credit with unroutable deliveries on anonymous links.

Posted by tr...@apache.org.
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/0ec6ede0
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/0ec6ede0
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/0ec6ede0

Branch: refs/heads/0.6.x
Commit: 0ec6ede05f0b780fd94596e37019acd238dec73f
Parents: b18aa3a
Author: Ted Ross <tr...@redhat.com>
Authored: Tue Sep 13 13:59:42 2016 -0400
Committer: Ted Ross <tr...@redhat.com>
Committed: Thu Sep 29 09:01:36 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/0ec6ede0/src/router_core/transfer.c
----------------------------------------------------------------------
diff --git a/src/router_core/transfer.c b/src/router_core/transfer.c
index 40ba82e..40ee1ec 100644
--- a/src/router_core/transfer.c
+++ b/src/router_core/transfer.c
@@ -455,12 +455,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-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org