Document config identity and publication guarantees
This commit is contained in:
1 parent
bb87a0845b
commit
80eb331d6a
2 files changed
+79
-53
No files matched your search
+12
-3
@@ -1,6 +1,10 @@
|
||||
/* INI-конфигурация ядра: слушающие сокеты, исходящие пиры, сети/подсети и настройки сервисов.
|
||||
* parse_config читает файл, parse_config_from_buf — текст; filename задаёт источник в диагностике.
|
||||
* Успех возвращает выделенную utun_config со списками; освобождение — только free_config.
|
||||
* Файл и буфер проходят один разбор. Пробелы вокруг секций, ключей и значений удаляются;
|
||||
* имена секций нечувствительны к регистру, имена ключей чувствительны. Комментарий — #.
|
||||
* HEX проверяется целиком; ошибочный список REALITY short_ids не применяется частично.
|
||||
* Встроенный NUL и строки >1022 байтов до LF запрещены (CR входит в этот предел).
|
||||
* Парсер заполняет модель, запуск сетевых ресурсов выполняет utun_instance. */
|
||||
#ifndef CONFIG_PARSER_H
|
||||
#define CONFIG_PARSER_H
|
||||
@@ -133,7 +137,7 @@ struct global_config {
|
||||
char my_public_key_hex[MAX_KEY_LEN];
|
||||
uint64_t my_node_id;
|
||||
uint8_t client_type; // 0=server, 1=desktop, 2=mobile
|
||||
int tun_enabled; // 1 = create TUN (default), 0 = skip TUN (run without root)
|
||||
int tun_enabled; // 1 = запрошен TUN, 0 = выключен (значение по умолчанию)
|
||||
char tun_ifname[16]; // TUN interface name (e.g., "tun12")
|
||||
struct IP tun_ip;
|
||||
int mtu;
|
||||
@@ -141,7 +145,7 @@ struct global_config {
|
||||
char control_ip[MAX_ADDR_LEN]; // Control server IP address
|
||||
// Debug and logging configuration
|
||||
char log_file[256]; // Path to log file (empty = stdout)
|
||||
char db_path[256]; // Path to SQLite database (empty = disabled)
|
||||
char db_path[256]; // Каталог chats.db; пусто — ядро использует SQLite :memory:
|
||||
int db_sync_enabled; // 1 = enable distributed DB sync (default: 0)
|
||||
int chatserver_enabled; // 1 = chat server mode (set by [chatserver] section presence)
|
||||
uint32_t db_sync_ttl; // TTL for unsent records in seconds (default: 86400)
|
||||
@@ -165,7 +169,7 @@ struct global_config {
|
||||
int keepalive_timeout; // keepalive timeout in ms (default: 2000)
|
||||
int keepalive_interval; // keepalive interval in ms (default: 200)
|
||||
int keepalive_adaptive; // 1 = adaptive period (default), 0 = fixed interval
|
||||
int bbr_max_cwnd; // BBR cwnd cap in bytes (default: 100000)
|
||||
int bbr_max_cwnd; // BBR cwnd cap in bytes (default: 1048576)
|
||||
|
||||
// Firewall configuration
|
||||
struct CFG_FIREWALL_RULE *firewall_rules;
|
||||
@@ -261,7 +265,12 @@ struct utun_config {
|
||||
struct CFG_NETWORK* networks;
|
||||
};
|
||||
|
||||
/* Непустой путь; результат освобождать free_config. NULL при ошибке открытия, чтения,
|
||||
* закрытия, памяти или обязательной проверки формата. Часть ошибочных опций только
|
||||
* логируется и пропускается; ненулевой результат не гарантирует корректность всех полей. */
|
||||
struct utun_config* parse_config(const char *filename);
|
||||
/* buf — len байтов без завершающего NUL (NULL допустим при len=0), буфер не меняется.
|
||||
* filename — источник для диагностики, NULL означает <buffer>. Возврат как у parse_config. */
|
||||
struct utun_config* parse_config_from_buf(const char *buf, size_t len, const char *filename);
|
||||
void free_config(struct utun_config *config);
|
||||
void print_config(const struct utun_config *config);
|
||||
|
||||
Reference in new issue
Block a user