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