Repository: qpid-dispatch
Updated Branches:
  refs/heads/1.1.x ee29b2a55 -> 12ea70165


DISPATCH-1022 - Zeroed out pn_link references on qd_links before closing 
session locally so no activities can happen on those links

(cherry picked from commit 43b3b2e03c182e4bffd33a96daa3a911dd4132ea)


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

Branch: refs/heads/1.1.x
Commit: 12ea7016553f8c2389ac94a16b46c09de039e1b3
Parents: ee29b2a
Author: Ganesh Murthy <[email protected]>
Authored: Mon Jun 4 15:07:48 2018 -0400
Committer: Ganesh Murthy <[email protected]>
Committed: Wed Jun 6 09:33:50 2018 -0400

----------------------------------------------------------------------
 src/container.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/12ea7016/src/container.c
----------------------------------------------------------------------
diff --git a/src/container.c b/src/container.c
index 1f2b8f0..a70e5a1 100644
--- a/src/container.c
+++ b/src/container.c
@@ -444,6 +444,17 @@ void qd_container_handle_event(qd_container_t *container, 
pn_event_t *event)
                 if (qd_conn->policy_settings) {
                     qd_conn->n_sessions--;
                 }
+
+                pn_link = pn_link_head(conn, PN_LOCAL_ACTIVE | 
PN_REMOTE_CLOSED);
+                while (pn_link) {
+                    if (pn_link_session(pn_link) == ssn) {
+                        qd_link_t *qd_link = (qd_link_t*) 
pn_link_get_context(pn_link);
+                        if (qd_link)
+                            qd_link->pn_link = 0;
+                    }
+                    pn_link = pn_link_next(pn_link, PN_LOCAL_ACTIVE | 
PN_REMOTE_CLOSED);
+                }
+
                 pn_session_close(ssn);
             }
             else if (pn_session_state(ssn) == (PN_LOCAL_CLOSED | 
PN_REMOTE_CLOSED)) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to