Avoid identity reload when removing expired LAN candidates
This commit is contained in:
1 parent
77b43363fb
commit
e75bd460b8
2 files changed
+10
-8
No files matched your search
@@ -98,6 +98,12 @@ NAT-профиль и обязательные метаданные REALITY. IPv
|
||||
`node_conn_direct_open_node` сверяет переданную запись с реестром/БД. Более
|
||||
свежая подписанная запись принимается целиком, старая уступает уже известной.
|
||||
Bootstrap-адреса не перекрывают подписанную запись даже при DOWN.
|
||||
ID узла проверяется по public_key. Ошибка запуска возвращает NULL handle и не снимает
|
||||
прежний FIN_WAIT. Отдельно принятый snapshot и уже добавленные линки при частичной
|
||||
ошибке могут сохраниться; новый handle публикуется после подготовки ресурсов.
|
||||
Явный specific_sock задаёт локальную политику, сохраняя проверки family/протокола/цели/REALITY;
|
||||
автоматическое появление сокета использует обычную политику подбора.
|
||||
|
||||
LAN discovery предоставляет отдельные адреса подключения и не меняет подписанный снимок.
|
||||
Открытое объявление рабочих сокетов и ответ на проверку имеют Ed25519-подпись;
|
||||
публичные ключи в этих пакетах отсутствуют. Получатель использует известный ключ
|
||||
@@ -126,12 +132,6 @@ NCD использует эти кандидаты при проверке со
|
||||
метаданных из известного снимка; прямые LAN TCP-пробы при глобальном SOCKS выключены.
|
||||
Диагностика: discovery для подписи/nonce/адресов, etcp для NCD-проб и их удаления.
|
||||
|
||||
ID узла проверяется по public_key. Ошибка запуска возвращает NULL handle и не снимает
|
||||
прежний FIN_WAIT. Отдельно принятый snapshot и уже добавленные линки при частичной
|
||||
ошибке могут сохраниться; новый handle публикуется после подготовки ресурсов.
|
||||
Явный specific_sock задаёт локальную политику, сохраняя проверки family/протокола/цели/REALITY;
|
||||
автоматическое появление сокета использует обычную политику подбора.
|
||||
|
||||
Конфигурационные подключения UTUN используют один адаптер
|
||||
`init_client_connections` для старта и reload. Все адреса, TCP и REALITY
|
||||
передаются NCD; адаптер не создаёт ETCP-линки. Новый набор handles открывается
|
||||
|
||||
@@ -586,10 +586,12 @@ int node_conn_direct_update_local(struct UTUN_INSTANCE* inst, uint64_t node_id)
|
||||
struct ETCP_CONN* conn = entry->conn;
|
||||
if (etcp_conn_ref_take(conn) < 0) return -1;
|
||||
entry->active_calls++;
|
||||
struct TOPO_NODE* known = ncd_lookup_node(inst, node_id);
|
||||
struct local_route route;
|
||||
int has_routes = local_transport_route(inst->local_transport, node_id, 0, &route);
|
||||
struct TOPO_NODE* known = has_routes ? ncd_lookup_node(inst, node_id) : NULL;
|
||||
struct TOPO_NODE* copy = known ? ncd_copy_node(inst, known) : NULL;
|
||||
if (known) topo_node_registry_unref(inst->topo_groups, node_id);
|
||||
int result = copy ? ncd_create_lan_links(entry, copy, NULL, NULL) : known ? -1 : 0;
|
||||
int result = copy ? ncd_create_lan_links(entry, copy, NULL, NULL) : has_routes ? -1 : 0;
|
||||
if (!copy) ncd_prune_lan(entry, 0);
|
||||
topo_node_destroy(inst->topo_groups, copy);
|
||||
entry->active_calls--; ncd_collect(entry); etcp_conn_ref_free(conn);
|
||||
|
||||
Reference in new issue
Block a user