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