Build and document direct connections through NCD

This commit is contained in:
evgeny committed 2026-10-22 22:25:52 +02:00
1 parent fc5b3911f3
commit 036cf43918
3 files changed
+4 -11

No files matched your search

-2
View File
@@ -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 \
+4 -8
View File
@@ -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 (сырые, первый байт кодограммы)
-1
View File
@@ -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=ошибка |