topo_recovery: каскадное восстановление узлов с группировкой по next_hop

При разрыве ETCP-соединения модуль собирает каскадно отвалившиеся узлы:
- add_node из hop_list вычисляет next_hop относительно failed_peer,
  группирует узлы в отдельные recovery-контексты (direct/indirect списки)
- start запускает асинхронный перебор для каждой группы параллельно
- is_next_hop-узел пробуется первым с приоритетом по мин. RTT
- таймаут 2с на попытку, conn_mgr_cancel_callback при отмене
- отмена: topo_group_new_conn (on_up) находит узел в любом ctx -> ctx целиком
- завершение: оба списка пусты -> освобождение ctx
This commit is contained in:
Evgeny committed 2026-07-22 19:01:55 +03:00
1 parent f6b37a857b
commit 4215349349
8 files changed
+416 -3

No files matched your search

+1
View File
@@ -66,6 +66,7 @@ set(UTUN_COMMON_SOURCES
${SRC_DIR}/routing_layer/route_connectivity.c
${SRC_DIR}/db_sync.c
${SRC_DIR}/routing_layer/conn_mgr.c
${SRC_DIR}/routing_layer/topo_recovery.c
${TRANSPORT_DIR}/chat_sync.c
${TRANSPORT_DIR}/merkle_sync.c
${TRANSPORT_DIR}/member_sync.c