Make authenticated known-key admission strictly local to each link
This commit is contained in:
1 parent
fd05e13525
commit
dcc7e2f8d7
2 files changed
+3
-4
No files matched your search
@@ -1118,7 +1118,6 @@ static struct ETCP_LINK* link_create(struct ETCP_CONN* etcp, struct ETCP_SOCKET*
|
||||
link->conn = conn;
|
||||
link->codec = driver ? &bound_codec : (is_tcp ? &stcp_codec : &udp_codec);
|
||||
link->etcp = etcp;
|
||||
link->require_known_node = driver && etcp->require_known_node; /* Сокеты UTUN не требуют членства CHAT. */
|
||||
link->is_server = is_server;
|
||||
link->is_tcp = (uint8_t)is_tcp;
|
||||
int mtu;
|
||||
@@ -1258,7 +1257,7 @@ struct ETCP_LINK* etcp_link_add(struct ETCP_CONN* conn, const struct packet_link
|
||||
DEBUG_ERROR(DEBUG_CATEGORY_ETCP, "link_add: packet capacity too small: %zu", state.max_packet); return NULL;
|
||||
}
|
||||
struct ETCP_LINK* link = link_create(conn, NULL, NULL, 0, driver);
|
||||
if (link) link->require_known_node |= !!require_known_node; /* RX/state callbacks драйвера отложены. */
|
||||
if (link) link->require_known_node = !!require_known_node; /* RX/state callbacks драйвера отложены. */
|
||||
return link;
|
||||
}
|
||||
|
||||
|
||||
@@ -240,7 +240,7 @@ struct ETCP_LINK {
|
||||
uint32_t recovery_interval; // recovery интервал (x0.1ms)
|
||||
uint8_t is_server; // инициирует подключение клиент
|
||||
uint8_t initialized; // Флаг инициализации (1=подтверждено или получен request)
|
||||
uint8_t require_known_node; // Эффективная политика пути: драйвер наследует conn и может усилить её; сокеты UTUN — 0.
|
||||
uint8_t require_known_node; // Допуск только этого линка: штатный BLE=1, сокеты UTUN=0; общий ETCP_CONN политики не имеет.
|
||||
uint8_t peer_admitted; // Положительный результат проверки после аутентифицированного handshake; сбрасывается при новом INIT.
|
||||
uint8_t closing; // Close начат: повторный вход из callback игнорируется до окончательного free
|
||||
uint32_t active_users; // Внутренние стеки конструктора/RX/событий; память закрытого линка живёт до выхода последнего
|
||||
@@ -434,7 +434,7 @@ void tcp_server_on_link(struct stcp_link *link, struct ETCP_SOCKET *tcp_sock);
|
||||
* Уведомляет о создании, для исходящего UDP запускает INIT. Ошибка/close из callback — NULL без живого линка.
|
||||
* Конструктор удерживает память до возврата; отмена сразу закрывает ресурсы. */
|
||||
/* Добавить произвольный пакетный драйвер к conn с настроенным ключом пира.
|
||||
* require_known_node=1 усиливает политику conn для этого пути; 0 наследует начальную политику conn.
|
||||
* require_known_node=1 проверяет известность ключа при handshake только этого пути; 0 — без CHAT-фильтра.
|
||||
* На канале используется защищённый ETCP INIT/DATA без IP-заголовков. OPEN драйвера ещё не UP ETCP.
|
||||
* Успех копирует API и забирает ctx; отказ оставляет ctx непривязанным у вызывающего.
|
||||
* Начальный handshake/callbacks отложены. Все операции — conn->instance->ua. */
|
||||
|
||||
Reference in new issue
Block a user