platform: modularize api/gui, add docs-tests-web foundation, and refresh root config

This commit is contained in:
beckline
2026-03-26 22:40:54 +03:00
parent 0e2d7f61ea
commit 6a56d734c2
562 changed files with 70151 additions and 16423 deletions

View File

@@ -0,0 +1,97 @@
package app
import (
"os"
"strings"
"time"
)
func defaultDNSAttemptPolicy(dnsCount int) dnsAttemptPolicy {
tryLimit := envInt("RESOLVE_DNS_TRY_LIMIT", 2)
if tryLimit < 1 {
tryLimit = 1
}
if dnsCount > 0 && tryLimit > dnsCount {
tryLimit = dnsCount
}
budgetMS := envInt("RESOLVE_DNS_DOMAIN_BUDGET_MS", 1200)
if budgetMS < 200 {
budgetMS = 200
}
if budgetMS > 15000 {
budgetMS = 15000
}
return dnsAttemptPolicy{
TryLimit: tryLimit,
DomainBudget: time.Duration(budgetMS) * time.Millisecond,
StopOnNX: resolveNXEarlyStopEnabled(),
}
}
func directDNSAttemptPolicy(dnsCount int) dnsAttemptPolicy {
tryLimit := envInt("RESOLVE_DIRECT_TRY_LIMIT", 2)
if tryLimit < 1 {
tryLimit = 1
}
if tryLimit > 3 {
tryLimit = 3
}
if dnsCount > 0 && tryLimit > dnsCount {
tryLimit = dnsCount
}
budgetMS := envInt("RESOLVE_DIRECT_BUDGET_MS", 1200)
if budgetMS < 200 {
budgetMS = 200
}
if budgetMS > 15000 {
budgetMS = 15000
}
return dnsAttemptPolicy{
TryLimit: tryLimit,
DomainBudget: time.Duration(budgetMS) * time.Millisecond,
StopOnNX: resolveNXEarlyStopEnabled(),
}
}
func wildcardDNSAttemptPolicy(dnsCount int) dnsAttemptPolicy {
tryLimit := envInt("RESOLVE_WILDCARD_TRY_LIMIT", 1)
if tryLimit < 1 {
tryLimit = 1
}
if tryLimit > 2 {
tryLimit = 2
}
if dnsCount > 0 && tryLimit > dnsCount {
tryLimit = dnsCount
}
budgetMS := envInt("RESOLVE_WILDCARD_BUDGET_MS", 1200)
if budgetMS < 200 {
budgetMS = 200
}
if budgetMS > 15000 {
budgetMS = 15000
}
return dnsAttemptPolicy{
TryLimit: tryLimit,
DomainBudget: time.Duration(budgetMS) * time.Millisecond,
StopOnNX: resolveNXEarlyStopEnabled(),
}
}
func resolveNXEarlyStopEnabled() bool {
switch strings.ToLower(strings.TrimSpace(os.Getenv("RESOLVE_NX_EARLY_STOP"))) {
case "0", "false", "no", "off":
return false
default:
return true
}
}
func resolveNXHardQuarantineEnabled() bool {
switch strings.ToLower(strings.TrimSpace(os.Getenv("RESOLVE_NX_HARD_QUARANTINE"))) {
case "1", "true", "yes", "on":
return true
default:
return false
}
}