From 036cf4391869a9b190c5a47c99378989fc2b69a7 Mon Sep 17 00:00:00 2001 From: evgeny Date: Thu, 22 Oct 2026 22:25:52 +0200 Subject: [PATCH] Build and document direct connections through NCD --- src/Makefile.am | 2 -- src/transport_layer/etcp_api_doc.md | 12 ++++-------- src/utun_instance_doc.md | 1 - 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index e991ba94..93a8b8eb 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -99,7 +99,6 @@ utun_CORE_SOURCES = \ transport_layer/pkt_normalizer.c \ transport_layer/packet_dump.c \ transport_layer/etcp_api.c \ - transport_layer/etcp_connect.c \ transport_layer/node_conn_direct.c \ transport_layer/socket_monitor.c \ transport_layer/auto_socket.c \ @@ -286,7 +285,6 @@ libutun_a_SOURCES = \ transport_layer/pkt_normalizer.c \ transport_layer/packet_dump.c \ transport_layer/etcp_api.c \ - transport_layer/etcp_connect.c \ transport_layer/node_conn_direct.c \ transport_layer/socket_monitor.c \ transport_layer/auto_socket.c \ diff --git a/src/transport_layer/etcp_api_doc.md b/src/transport_layer/etcp_api_doc.md index dd1100b1..bbc9dabe 100644 --- a/src/transport_layer/etcp_api_doc.md +++ b/src/transport_layer/etcp_api_doc.md @@ -63,14 +63,11 @@ etcp_set_new_conn_cbk(instance, on_new_conn, my_data); Значения уникальны внутри каждой таблицы; совпадения между двумя таблицами допустимы. Проверка реестра и регистраций выполняется автоматически при `make check`. -### Фоновые соединения (etcp_connect) +### Прямые соединения -```c -etcp_connect(instance, node, on_connect, arg, - ETCP_CONNECT_EARLY | ETCP_CONNECT_LATE); -``` - -Флаги: `ETCP_CONNECT_EARLY` — раннее подключение, `ETCP_CONNECT_LATE` — отложенное. +Владелец открывает handle через `node_conn_direct_open/open_node`, ждёт `NCD_EVENT_UP` +и получает транспорт через `node_conn_direct_get_conn`. Handle удерживается на всё +время использования; его закрытие не отменяет владение других сервисов. Контракт — в `node_conn_direct.h`. ## 3. API @@ -104,7 +101,6 @@ etcp_connect(instance, node, on_connect, arg, | `etcp_conn_add_down_cbk/remove_down_cbk` | Аналогично для down | | `etcp_set_new_conn_cbk(inst, fn, arg)` | Установить коллбэк на входящее соединение | | `etcp_add_new_conn_cbk/remove_new_conn_cbk` | Добавить/убрать из цепочки new_conn | -| `etcp_connect(inst, node, cb, arg, flags)` | Фоновое подключение к узлу | ### Командные ID (сырые, первый байт кодограммы) diff --git a/src/utun_instance_doc.md b/src/utun_instance_doc.md index 05845c4c..a8704336 100644 --- a/src/utun_instance_doc.md +++ b/src/utun_instance_doc.md @@ -85,7 +85,6 @@ inst = utun_instance_reload(inst, ua, "utun.conf"); | `conn_mgr` | `struct CONN_MGR*` | Менеджер соединений (может быть NULL) | | `db_sync` | `struct DB_SYNC*` | Распределённая синхронизация БД (может быть NULL) | | `networks` | `struct ll_queue*` | Очередь сетей (NETWORK_ENTRY, индекс по 56-bit id) | -| `pending_connects` | `struct ETCP_CONNECT*` | Ожидающие фоновые подключения | | `ntp` / `ntp_node` | `struct NTP_TIME` / `NTP_NODE_TIME` | Синхронизация времени | | `next_socket_id` | `uint8_t` | Счётчик уникальных ID сокетов (0–255) | | `socket_init_status` | `int` | Статус инициализации сокетов: 0=OK, 1=частично, -1=ошибка |