platform: modularize api/gui, add docs-tests-web foundation, and refresh root config
This commit is contained in:
39
selective-vpn-api/app/resolver/precheck_state.go
Normal file
39
selective-vpn-api/app/resolver/precheck_state.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package resolver
|
||||
|
||||
func SaveResolverPrecheckState(path string, ts int, timeoutStats ResolverTimeoutRecheckStats, live ResolverLiveBatchStats) {
|
||||
if path == "" || ts <= 0 {
|
||||
return
|
||||
}
|
||||
state := LoadJSONMap(path)
|
||||
if state == nil {
|
||||
state = map[string]any{}
|
||||
}
|
||||
state["last_run"] = ts
|
||||
state["timeout_recheck"] = map[string]any{
|
||||
"checked": timeoutStats.Checked,
|
||||
"recovered": timeoutStats.Recovered,
|
||||
"recovered_ips": timeoutStats.RecoveredIPs,
|
||||
"still_timeout": timeoutStats.StillTimeout,
|
||||
"now_nxdomain": timeoutStats.NowNXDomain,
|
||||
"now_temporary": timeoutStats.NowTemporary,
|
||||
"now_other": timeoutStats.NowOther,
|
||||
"no_signal": timeoutStats.NoSignal,
|
||||
}
|
||||
state["live_batch_target"] = live.Target
|
||||
state["live_batch_total"] = live.Total
|
||||
state["live_batch_deferred"] = live.Deferred
|
||||
state["live_batch_p1"] = live.P1
|
||||
state["live_batch_p2"] = live.P2
|
||||
state["live_batch_p3"] = live.P3
|
||||
state["live_batch_nxheavy_pct"] = live.NXHeavyPct
|
||||
state["live_batch_nxheavy_total"] = live.NXHeavyTotal
|
||||
state["live_batch_nxheavy_skip"] = live.NXHeavySkip
|
||||
state["live_batch_nxheavy_next_pct"] = live.NextNXPct
|
||||
state["live_batch_nxheavy_next_reason"] = live.NextNXReason
|
||||
state["live_batch_next_target"] = live.NextTarget
|
||||
state["live_batch_next_reason"] = live.NextReason
|
||||
state["live_batch_dns_attempts"] = live.DNSAttempts
|
||||
state["live_batch_dns_timeout"] = live.DNSTimeout
|
||||
state["live_batch_dns_cooldown_skips"] = live.DNSCoolSkips
|
||||
SaveJSON(state, path)
|
||||
}
|
||||
Reference in New Issue
Block a user