From 6a7940450eb62c5353e64c8d1ae90cd01079c08f Mon Sep 17 00:00:00 2001 From: evgeny Date: Fri, 30 Oct 2026 22:42:50 +0100 Subject: [PATCH] Clarify constructor admission requirements and keep helper below includes --- doc/ble_etcp.txt | 2 +- src/transport_layer/etcp.h | 1 + src/transport_layer/etcp_connections.c | 17 +++++++++-------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/doc/ble_etcp.txt b/doc/ble_etcp.txt index 061b6fd9b..f31df48af 100644 --- a/doc/ble_etcp.txt +++ b/doc/ble_etcp.txt @@ -80,7 +80,7 @@ BLE ACK подтверждает приём GATT-value драйвером, не кадры — неизменённые зашифрованные ETCP-пакеты, без IP-заголовков/добавочного framing. До завершения обмена ключами действует дедлайн 20 секунд. -Допуск знакомого узла (31.10.2026) +Допуск знакомого узла (30.10.2026) -------------------------------- etcp_connection_create(instance, name, require_known_node) сохраняет политику до NEW callbacks. При флаге1 сам ETCP проверяет ключ после аутентификации пакета/STCP, до ответа INIT, diff --git a/src/transport_layer/etcp.h b/src/transport_layer/etcp.h index ce9931830..fec5cb359 100644 --- a/src/transport_layer/etcp.h +++ b/src/transport_layer/etcp.h @@ -268,6 +268,7 @@ struct ETCP_CONN { #define RTT_CB_PERIOD_TB 600000 // 1 минута в 0.1ms /* Создать транспортный объект в instance, name копируется (может быть NULL). + * require_known_node=1 требует точный ключ участника своей CHAT-группы при аутентифицированном handshake; 0 — обычная политика. * Жизненным циклом прикладного соединения управляет NCD. Возвращает объект либо NULL при ошибке/отмене из callback. * New-connection/NEW callbacks могут закрыть объект; после отмены конструктор завершает закрытие и не возвращает handle. */ struct ETCP_CONN* etcp_connection_create(struct UTUN_INSTANCE* instance, char* name, int require_known_node); diff --git a/src/transport_layer/etcp_connections.c b/src/transport_layer/etcp_connections.c index 9919525b5..8c8407c27 100644 --- a/src/transport_layer/etcp_connections.c +++ b/src/transport_layer/etcp_connections.c @@ -31,6 +31,15 @@ #include "../lib/debug_config.h" #include "etcp_loadbalancer.h" +#include "etcp_keepalive.h" +#ifdef UTUN_HAVE_STANDBY +#include "standby.h" +#endif +#include +#include +#include "../lib/mem.h" +#include "etcp.h" + /* Вызывать только после аутентификации ciphertext/STCP, под active_users/callbacks_running. * Новый handshake перепроверяет членство; обычные DATA используют положительный кэш этого линка. */ static int admit_peer(struct ETCP_LINK* link, int handshake) { @@ -46,14 +55,6 @@ static int admit_peer(struct ETCP_LINK* link, int handshake) { DEBUG_INFO(DEBUG_CATEGORY_ETCP, "[%s] authenticated known peer admitted path=%u", c->log_name, link->local_link_id); return 1; } -#include "etcp_keepalive.h" -#ifdef UTUN_HAVE_STANDBY -#include "standby.h" -#endif -#include -#include -#include "../lib/mem.h" -#include "etcp.h" // Читаемое имя типа сокета (CFG_SERVER_TYPE_*) для логов. static const char* server_type_str(uint8_t type) {