package constant import "strings" const ( DefaultDNSTTL = 600 ) type DomainStrategy = uint8 const ( DomainStrategyAsIS DomainStrategy = iota DomainStrategyPreferIPv4 DomainStrategyPreferIPv6 DomainStrategyIPv4Only DomainStrategyIPv6Only ) const ( DNSTypeLegacy = "legacy" DNSTypeLegacyRcode = "legacy_rcode" DNSTypeUDP = "udp" DNSTypeTCP = "tcp" DNSTypeTLS = "tls" DNSTypeHTTPS = "https" DNSTypeQUIC = "quic" DNSTypeHTTP3 = "h3" DNSTypeLocal = "local" DNSTypeHosts = "hosts" DNSTypeFakeIP = "fakeip" DNSTypeDHCP = "dhcp" DNSTypeTailscale = "tailscale" ) const ( DNSProviderAliDNS = "alidns" DNSProviderCloudflare = "cloudflare" DNSProviderACMEDNS = "acmedns" DNSProviderTencentCloud = "tencentcloud" DNSProviderDNSPod = "dnspod" ) func NormalizeACMEDNSProvider(provider string) string { switch strings.ToLower(strings.TrimSpace(provider)) { case "", DNSProviderAliDNS, DNSProviderCloudflare, DNSProviderACMEDNS: return strings.ToLower(strings.TrimSpace(provider)) case "aliyun": return DNSProviderAliDNS case "cf": return DNSProviderCloudflare case "acme-dns": return DNSProviderACMEDNS case "tencent", "tencentcloud", "dnspod-tencentcloud", "qcloud": return DNSProviderTencentCloud case "dnspod": return DNSProviderDNSPod default: return strings.ToLower(strings.TrimSpace(provider)) } }