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/06/14 12:52:57 UTC

qpid-dispatch git commit: DISPATCH-387 - Remove the assumption that core links are always paired with qd-links in CORE_* calls.

Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 0f74209f0 -> ebee479ec


DISPATCH-387 - Remove the assumption that core links are always paired with qd-links in CORE_* calls.


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

Branch: refs/heads/master
Commit: ebee479ece7fdcf27625dffac9f9ab963f7cc195
Parents: 0f74209
Author: Ted Ross <tr...@redhat.com>
Authored: Tue Jun 14 08:51:05 2016 -0400
Committer: Ted Ross <tr...@redhat.com>
Committed: Tue Jun 14 08:51:05 2016 -0400

----------------------------------------------------------------------
 src/router_node.c | 42 +++++++++++++++++++++++++++++++++---------
 1 file changed, 33 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/ebee479e/src/router_node.c
----------------------------------------------------------------------
diff --git a/src/router_node.c b/src/router_node.c
index 819a69f..c02b016 100644
--- a/src/router_node.c
+++ b/src/router_node.c
@@ -763,15 +763,22 @@ static void CORE_link_detach(void *context, qdr_link_t *link, qdr_error_t *error
 static void CORE_link_flow(void *context, qdr_link_t *link, int credit)
 {
     qd_link_t *qlink = (qd_link_t*) qdr_link_get_context(link);
+    if (!qlink)
+        return;
+    
     pn_link_t *plink = qd_link_pn(qlink);
 
-    pn_link_flow(plink, credit);
+    if (plink)
+        pn_link_flow(plink, credit);
 }
 
 
 static void CORE_link_offer(void *context, qdr_link_t *link, int delivery_count)
 {
     qd_link_t *qlink = (qd_link_t*) qdr_link_get_context(link);
+    if (!qlink)
+        return;
+
     pn_link_t *plink = qd_link_pn(qlink);
 
     if (plink)
@@ -782,6 +789,9 @@ static void CORE_link_offer(void *context, qdr_link_t *link, int delivery_count)
 static void CORE_link_drained(void *context, qdr_link_t *link)
 {
     qd_link_t *qlink = (qd_link_t*) qdr_link_get_context(link);
+    if (!qlink)
+        return;
+
     pn_link_t *plink = qd_link_pn(qlink);
 
     if (plink)
@@ -792,6 +802,9 @@ static void CORE_link_drained(void *context, qdr_link_t *link)
 static void CORE_link_drain(void *context, qdr_link_t *link, bool mode)
 {
     qd_link_t *qlink = (qd_link_t*) qdr_link_get_context(link);
+    if (!qlink)
+        return;
+
     pn_link_t *plink = qd_link_pn(qlink);
 
     if (plink) {
@@ -803,12 +816,17 @@ static void CORE_link_drain(void *context, qdr_link_t *link, bool mode)
 
 static void CORE_link_push(void *context, qdr_link_t *link)
 {
-    qd_router_t *router      = (qd_router_t*) context;
-    qd_link_t   *qlink       = (qd_link_t*) qdr_link_get_context(link);
-    pn_link_t   *plink       = qd_link_pn(qlink);
-    int          link_credit = pn_link_credit(plink);
+    qd_router_t *router = (qd_router_t*) context;
+    qd_link_t   *qlink  = (qd_link_t*) qdr_link_get_context(link);
+    if (!qlink)
+        return;
+    
+    pn_link_t *plink = qd_link_pn(qlink);
 
-    qdr_link_process_deliveries(router->router_core, link, link_credit);
+    if (plink) {
+        int link_credit = pn_link_credit(plink);
+        qdr_link_process_deliveries(router->router_core, link, link_credit);
+    }
 }
 
 
@@ -816,9 +834,15 @@ static void CORE_link_deliver(void *context, qdr_link_t *link, qdr_delivery_t *d
 {
     qd_router_t *router = (qd_router_t*) context;
     qd_link_t   *qlink  = (qd_link_t*) qdr_link_get_context(link);
-    pn_link_t   *plink  = qd_link_pn(qlink);
-    const char  *tag;
-    int          tag_length;
+    if (!qlink)
+        return;
+
+    pn_link_t *plink = qd_link_pn(qlink);
+    if (!plink)
+        return;
+
+    const char *tag;
+    int         tag_length;
 
     qdr_delivery_tag(dlv, &tag, &tag_length);
 


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