package app // --------------------------------------------------------------------- // Go resolver // --------------------------------------------------------------------- // EN: Go-based domain resolver pipeline used by routes update. // EN: Handles cache reuse, concurrent DNS lookups, PTR labeling for static entries, // EN: and returns deduplicated IP sets plus IP-to-label mapping artifacts. // RU: Go-резолвер, используемый пайплайном обновления маршрутов. // RU: Обрабатывает кэш, конкурентные DNS-запросы, PTR-лейблы для static entries // RU: и возвращает дедуплицированный список IP и IP-to-label mapping. // Empty by default: primary resolver pool comes from DNS upstream pool state. // Optional fallback list can still be provided via RESOLVE_DNS_FALLBACKS env. var resolverFallbackDNS []string // --------------------------------------------------------------------- // EN: `runResolverJob` runs the workflow for resolver job. // RU: `runResolverJob` - запускает рабочий процесс для resolver job. // --------------------------------------------------------------------- func runResolverJob(opts ResolverOpts, logf func(string, ...any)) (resolverResult, error) { res := resolverResult{ DomainCache: map[string]any{}, PtrCache: map[string]any{}, } ctx := buildResolverJobContext(opts, logf) runResolverPipeline(&ctx, &res, logf) return res, nil } // --------------------------------------------------------------------- // DNS resolve helpers moved to app/resolver/* (bridged via resolver_host_lookup_bridge.go) // --------------------------------------------------------------------- // DNS config + cache helpers moved to app/resolver/* (bridged via resolver_domain_cache_bridge.go + resolver_static_labels_bridge.go + resolver_dns_config_bridge.go) // --------------------------------------------------------------------- // EN: `saveJSON` saves json to persistent storage. // RU: `saveJSON` - сохраняет json в постоянное хранилище. // ---------------------------------------------------------------------