fix(runtime): устранение сбоев запуска sing-box, исправление правил nftables и защита от гонок вочдога

- Восстановление кэша правил: восстановление .srs, .lst, .json файлов из постоянного каталога /etc/tachyon/rulesets/ при старте; защита от удаления кэша при остановке; добавление фоллбэка пустых ruleset в runtime.uc перед валидацией
- nftables: удаление невалидного auto-merge для интервальных составных сетов (ipv4_addr/ipv6_addr . inet_service)
- core/ip: исправление нормализации IPv6-адреса и порта для TPROXY без дублирования скобок
- dns block: исправление возвращаемого статуса nft_add_dns_block_rules_from_schedules при отсутствии правил блокировки
- watchdog & lifecycle: добавление флага блокировки /var/run/tachyon/starting для исключения сброса правил вочдогом во время старта
- ui & i18n: форматирование бейджей устройств в родительском контроле и обновление переводов
This commit is contained in:
Dushnilin
2026-08-21 08:52:23 +03:00
parent adf5c7a22f
commit e4e2d19c6d
13 changed files with 128 additions and 40 deletions
+3 -1
View File
@@ -132,6 +132,8 @@ function ip_family(value) {
function format_ipv6_tproxy_target(address, port) {
address = as_string(address);
if (index(address, "]:") >= 0)
return address;
if (substr(address, 0, 1) == "[" && substr(address, length(address) - 1, 1) == "]")
return address + ":" + as_string(port);
return "[" + address + "]:" + as_string(port);
@@ -148,4 +150,4 @@ return {
nft_ip_or_cidr,
ip_family,
format_ipv6_tproxy_target
};
};