You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gm...@apache.org on 2017/02/27 22:18:29 UTC

qpid-dispatch git commit: DISPATCH-643 - Selectively log link close message only on socket close.

Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 6ebae2e63 -> 178612056


DISPATCH-643 - Selectively log link close message only on socket close.


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

Branch: refs/heads/master
Commit: 178612056f7fc241feee01298c1ea17eeb4180fb
Parents: 6ebae2e
Author: Ganesh Murthy <gm...@redhat.com>
Authored: Mon Feb 27 16:25:11 2017 -0500
Committer: Ganesh Murthy <gm...@redhat.com>
Committed: Mon Feb 27 17:13:44 2017 -0500

----------------------------------------------------------------------
 src/container.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/17861205/src/container.c
----------------------------------------------------------------------
diff --git a/src/container.c b/src/container.c
index d2af4e0..e32e739 100644
--- a/src/container.c
+++ b/src/container.c
@@ -260,16 +260,23 @@ static void notify_closed(qd_container_t *container, qd_connection_t *conn, void
     }
 }
 
-static void close_links(qd_container_t *container, pn_connection_t *conn)
+static void close_links(qd_container_t *container, pn_connection_t *conn, bool print_log)
 {
     pn_link_t *pn_link = pn_link_head(conn, 0);
     while (pn_link) {
         qd_link_t *qd_link = (qd_link_t*) pn_link_get_context(pn_link);
+
+        if (qd_link && qd_link_get_context(qd_link) == 0) {
+            pn_link = pn_link_next(pn_link, 0);
+            continue;
+        }
+
         if (qd_link && qd_link->node) {
             qd_node_t *node = qd_link->node;
-            qd_log(container->log_source, QD_LOG_NOTICE,
-                   "Aborting link '%s' due to parent connection end",
-                   pn_link_name(pn_link));
+            if (print_log)
+                qd_log(container->log_source, QD_LOG_NOTICE,
+                       "Aborting link '%s' due to parent connection end",
+                       pn_link_name(pn_link));
             node->ntype->link_detach_handler(node->context, qd_link, QD_LOST);
         }
         pn_link = pn_link_next(pn_link, 0);
@@ -283,10 +290,11 @@ static int close_handler(qd_container_t *container, void* conn_context, pn_conne
     // Close all links, passing QD_LOST as the reason.  These links are not
     // being properly 'detached'.  They are being orphaned.
     //
-    close_links(container, conn);
+    close_links(container, conn, true);
 
     // close the connection
     pn_connection_close(conn);
+
     notify_closed(container, qd_conn, conn_context);
     return 0;
 }
@@ -420,7 +428,7 @@ int pn_event_handler(void *handler_context, void *conn_context, pn_event_t *even
 
     case PN_CONNECTION_REMOTE_CLOSE :
         if (pn_connection_state(conn) == (PN_LOCAL_ACTIVE | PN_REMOTE_CLOSED)) {
-            close_links(container, conn);
+            close_links(container, conn, false);
             pn_connection_close(conn);
         }
         break;


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