|
|
|
|
@ -707,7 +707,13 @@ static void member_committed(struct UTUN_INSTANCE* inst, const char* ns, uint64_
|
|
|
|
|
merkle_sync_changed(inst, ns); |
|
|
|
|
struct TOPO_GROUP* g = inst->topo_groups ? topo_groups_find(inst->topo_groups, strtoull(ns, NULL, 10)) : NULL; |
|
|
|
|
struct ETCP_CONN* conn = instance_find_conn(inst, node_id); |
|
|
|
|
if (g && g->group_type == TOPO_GROUP_TYPE_CHAT && conn) topo_group_connect_node_once(g, node_id); |
|
|
|
|
if (g && g->group_type == TOPO_GROUP_TYPE_CHAT) { |
|
|
|
|
/* Существующий UP сохраняем; новый транспорт выбирает только автопланировщик. */ |
|
|
|
|
if (conn && conn->links_up && !conn->close_requested && topo_group_new_conn(g, conn) < 0) |
|
|
|
|
DEBUG_WARN(DEBUG_CATEGORY_MEMBER_SYNC, "%s: cannot attach UP member channel=%s node=%016llx", MS_ID, ns, |
|
|
|
|
(unsigned long long)node_id); |
|
|
|
|
topo_group_connect_changed(g); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int member_sync_apply_record(struct UTUN_INSTANCE* inst, const char* ch_id, |
|
|
|
|
|