Documentation ¶
Index ¶
- func MockTimeoutError() *net.OpError
- func ReadHostList(filename string) (map[string]bool, error)
- type DNSClient
- type DNSClientImpl
- func (dnsClient *DNSClientImpl) LookupCAA(ctx context.Context, hostname string) ([]*dns.CAA, []*dns.CNAME, error)
- func (dnsClient *DNSClientImpl) LookupHost(ctx context.Context, hostname string) ([]net.IP, error)
- func (dnsClient *DNSClientImpl) LookupMX(ctx context.Context, hostname string) ([]string, error)
- func (dnsClient *DNSClientImpl) LookupTXT(ctx context.Context, hostname string) ([]string, []string, error)
- type DNSError
- type MockDNSClient
- func (mock *MockDNSClient) LookupCAA(_ context.Context, domain string) ([]*dns.CAA, []*dns.CNAME, error)
- func (mock *MockDNSClient) LookupHost(_ context.Context, hostname string) ([]net.IP, error)
- func (mock *MockDNSClient) LookupMX(_ context.Context, domain string) ([]string, error)
- func (mock *MockDNSClient) LookupTXT(_ context.Context, hostname string) ([]string, []string, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MockTimeoutError ¶
MockTimeoutError returns a a net.OpError for which Timeout() returns true.
Types ¶
type DNSClient ¶
type DNSClient interface { LookupTXT(context.Context, string) (txts []string, authorities []string, err error) LookupHost(context.Context, string) ([]net.IP, error) LookupCAA(context.Context, string) ([]*dns.CAA, []*dns.CNAME, error) LookupMX(context.Context, string) ([]string, error) }
DNSClient queries for DNS records
type DNSClientImpl ¶
type DNSClientImpl struct {
// contains filtered or unexported fields
}
DNSClientImpl represents a client that talks to an external resolver
func NewDNSClientImpl ¶
func NewDNSClientImpl( readTimeout time.Duration, servers []string, caaSERVFAILExceptions map[string]bool, stats metrics.Scope, clk clock.Clock, maxTries int, ) *DNSClientImpl
NewDNSClientImpl constructs a new DNS resolver object that utilizes the provided list of DNS servers for resolution.
func NewTestDNSClientImpl ¶
func NewTestDNSClientImpl(readTimeout time.Duration, servers []string, stats metrics.Scope, clk clock.Clock, maxTries int) *DNSClientImpl
NewTestDNSClientImpl constructs a new DNS resolver object that utilizes the provided list of DNS servers for resolution and will allow loopback addresses. This constructor should *only* be called from tests (unit or integration).
func (*DNSClientImpl) LookupCAA ¶
func (dnsClient *DNSClientImpl) LookupCAA(ctx context.Context, hostname string) ([]*dns.CAA, []*dns.CNAME, error)
LookupCAA sends a DNS query to find all CAA records associated with the provided hostname. It also returns all CNAMEs that were part of the response, for using in CAA tree climbing.
func (*DNSClientImpl) LookupHost ¶
LookupHost sends a DNS query to find all A and AAAA records associated with the provided hostname. This method assumes that the external resolver will chase CNAME/DNAME aliases and return relevant records. It will retry requests in the case of temporary network errors. It can return net package, context.Canceled, and context.DeadlineExceeded errors, all wrapped in the DNSError type.
type DNSError ¶
type DNSError struct {
// contains filtered or unexported fields
}
DNSError wraps a DNS error with various relevant information
type MockDNSClient ¶
type MockDNSClient struct { }
MockDNSClient is a mock
func (*MockDNSClient) LookupCAA ¶
func (mock *MockDNSClient) LookupCAA(_ context.Context, domain string) ([]*dns.CAA, []*dns.CNAME, error)
LookupCAA returns mock records for use in tests.
func (*MockDNSClient) LookupHost ¶
LookupHost is a mock
Note: see comments on LookupMX regarding email.only