Versions in this module Expand all Collapse all v0 v0.42.2 Apr 8, 2022 Changes in this version + const NAT64PrefixLength + const NextProtoDQ + const UnqualifiedNames + func CheckDisabledAAAARequest(ctx *DNSContext, ipv6Disabled bool) bool + func GenEmptyMessage(request *dns.Msg, rCode int, retry uint32) *dns.Msg + type BeforeRequestHandler func(p *Proxy, d *DNSContext) (bool, error) + type Config struct + BeforeRequestHandler BeforeRequestHandler + BogusNXDomain []*net.IPNet + CacheEnabled bool + CacheMaxTTL uint32 + CacheMinTTL uint32 + CacheOptimistic bool + CacheSizeBytes int + DNSCryptProviderName string + DNSCryptResolverCert *dnscrypt.Cert + DNSCryptTCPListenAddr []*net.TCPAddr + DNSCryptUDPListenAddr []*net.UDPAddr + EDNSAddr net.IP + EnableEDNSClientSubnet bool + Fallbacks []upstream.Upstream + FastestPingTimeout time.Duration + HTTPSListenAddr []*net.TCPAddr + MaxGoroutines int + QUICListenAddr []*net.UDPAddr + Ratelimit int + RatelimitWhitelist []string + RefuseAny bool + RequestHandler RequestHandler + ResponseHandler ResponseHandler + TCPListenAddr []*net.TCPAddr + TLSConfig *tls.Config + TLSListenAddr []*net.TCPAddr + TrustedProxies []string + UDPBufferSize int + UDPListenAddr []*net.UDPAddr + UpstreamConfig *UpstreamConfig + UpstreamMode UpstreamModeType + type DNSContext struct + Addr net.Addr + CachedUpstreamAddr string + Conn net.Conn + CustomUpstreamConfig *UpstreamConfig + DNSCryptResponseWriter dnscrypt.ResponseWriter + HTTPRequest *http.Request + HTTPResponseWriter http.ResponseWriter + Proto Proto + QUICSession quic.Session + QUICStream quic.Stream + Req *dns.Msg + ReqECS *net.IPNet + RequestID uint64 + Res *dns.Msg + StartTime time.Time + Upstream upstream.Upstream + type Proto string + const ProtoDNSCrypt + const ProtoHTTPS + const ProtoQUIC + const ProtoTCP + const ProtoTLS + const ProtoUDP + type Proxy struct + func (p *Proxy) Addr(proto Proto) net.Addr + func (p *Proxy) Addrs(proto Proto) []net.Addr + func (p *Proxy) Init() (err error) + func (p *Proxy) LookupIPAddr(host string) ([]net.IPAddr, error) + func (p *Proxy) Resolve(d *DNSContext) (err error) + func (p *Proxy) ServeHTTP(w http.ResponseWriter, r *http.Request) + func (p *Proxy) SetNAT64Prefix(prefix []byte) + func (p *Proxy) Start() (err error) + func (p *Proxy) Stop() error + type RequestHandler func(p *Proxy, d *DNSContext) error + type ResponseHandler func(d *DNSContext, err error) + type UpstreamConfig struct + DomainReservedUpstreams map[string][]upstream.Upstream + Upstreams []upstream.Upstream + func ParseUpstreamsConfig(upstreamConfig []string, options *upstream.Options) (*UpstreamConfig, error) + type UpstreamModeType int + const UModeFastestAddr + const UModeLoadBalance + const UModeParallel