Repository: qpid-dispatch
Updated Branches:
  refs/heads/master 532ebae51 -> 723b73585


DISPATCH-1020: set close on link lost based on whether terminus would survive 
disconnect


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

Branch: refs/heads/master
Commit: 723b73585bec70f009f5409bf29cd1edceaa167d
Parents: 532ebae
Author: Gordon Sim <g...@redhat.com>
Authored: Thu Jun 21 14:55:26 2018 +0100
Committer: Gordon Sim <g...@redhat.com>
Committed: Wed Jun 27 23:06:41 2018 +0100

----------------------------------------------------------------------
 src/router_core/connections.c         | 3 ++-
 src/router_core/router_core_private.h | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/723b7358/src/router_core/connections.c
----------------------------------------------------------------------
diff --git a/src/router_core/connections.c b/src/router_core/connections.c
index 8f7c196..721c1a7 100644
--- a/src/router_core/connections.c
+++ b/src/router_core/connections.c
@@ -445,6 +445,7 @@ qdr_link_t *qdr_link_first_attach(qdr_connection_t *conn,
     link->credit_pending = conn->link_capacity;
     link->admin_enabled  = true;
     link->oper_status    = QDR_LINK_OPER_DOWN;
+    link->terminus_survives_disconnect = 
qdr_terminus_survives_disconnect(local_terminus);
 
     link->strip_annotations_in  = conn->strip_annotations_in;
     link->strip_annotations_out = conn->strip_annotations_out;
@@ -1723,7 +1724,7 @@ static void qdr_link_inbound_detach_CT(qdr_core_t *core, 
qdr_action_t *action, b
         if (dt != QD_LOST)
             qdr_link_outbound_detach_CT(core, link->connected_link, error, 
QDR_CONDITION_NONE, dt == QD_CLOSED);
         else {
-            qdr_link_outbound_detach_CT(core, link->connected_link, 0, 
QDR_CONDITION_ROUTED_LINK_LOST, false);
+            qdr_link_outbound_detach_CT(core, link->connected_link, 0, 
QDR_CONDITION_ROUTED_LINK_LOST, !link->terminus_survives_disconnect);
             qdr_error_free(error);
         }
 

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/723b7358/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 3f80ba4..cbb7315 100644
--- a/src/router_core/router_core_private.h
+++ b/src/router_core/router_core_private.h
@@ -408,6 +408,7 @@ struct qdr_link_t {
     bool                     stalled_outbound;  ///< Indicates that this link 
is stalled on outbound buffer backpressure
     char                    *strip_prefix;
     char                    *insert_prefix;
+    bool                     terminus_survives_disconnect;
 
     uint64_t  total_deliveries;
     uint64_t  presettled_deliveries;


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

Reply via email to