Логика статуса туннеля в рантайме
Эта заметка описывает, как рассчитывается runtime-статус туннеля по client state файлу.
Источник данных
Runtime status читает C:\ProgramData\xp2p\xp2p-client.state.json и использует:
tun_enabledmoderuntime.tun.*runtime.routes.*runtime.socks_readyruntime.last_errorruntime.timestamp
Если файл отсутствует или runtime пустой, статус будет Tun: Unknown.
Вывод статуса
Готовность туннеля
- Если
tun_enabled=false(proxy mode): - Ready, когда
runtime.socks_ready=true - Pending, когда
runtime.socks_ready=false - Если
tun_enabled=true: tun_ready = runtime.tun.readyroutes_ready = runtime.routes.full_applied || runtime.routes.redirect_applied- Ready, когда и
tun_ready, иroutes_readyравны true - Pending иначе
Метка маршрутов
Логика статуса использует runtime flags с учётом текущего mode:
Proxy, когдаtun_enabled=falseFull, когдаruntime.routes.full_applied=trueSplit, когдаruntime.routes.redirect_applied=trueTun, когдаtun_enabled=trueи ни один из route flags не true
Ошибки
Если есть runtime.last_error, он добавляется в detail line.
Примеры строк
Proxy: Ready (SOCKS)Tun: Ready | Routes: FullTun: Pending | Routes: SplitTun: Unknown