diff --git a/src/transport_layer/etcp.c b/src/transport_layer/etcp.c index aabb16ef..48be3ea3 100644 --- a/src/transport_layer/etcp.c +++ b/src/transport_layer/etcp.c @@ -320,7 +320,12 @@ static void etcp_on_up(struct ETCP_CONN* etcp) { strbuf_free(&sb); (void)elapsed_ms; etcp_cbk_fire(etcp, ETCP_CBK_EVENT_UP); - if (!etcp->close_requested) etcp_fire_conn_status(etcp, ETCP_CONN_STATUS_UP); + if (etcp->close_requested || !etcp->links_up) { + DEBUG_DEBUG(DEBUG_CATEGORY_ETCP, "[%s] UP publication stopped after callback: closing=%u links_up=%u", + etcp->log_name, etcp->close_requested, etcp->links_up); + return; + } + etcp_fire_conn_status(etcp, ETCP_CONN_STATUS_UP); } static void etcp_on_down(struct ETCP_CONN* etcp, struct ETCP_LINK* down_link) {