40 lines
1.4 KiB
Go
40 lines
1.4 KiB
Go
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)
|
|
}
|