Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewStaticProvider ¶
func NewStaticProvider(servers []string) *staticProvider
func StartDynamicProvider ¶
StartDynamicProvider constructs a new dynamicProvider and starts its auto-update goroutine. The auto-update process queries DNS for SRV records at refresh intervals and uses the resulting IP/port combos to populate the list returned by Addrs. The update process ignores the Priority and Weight attributes of the SRV records. The given server name should be a full domain name like `example.com`, which will result in SRV queries for `_dns._udp.example.com`.
Types ¶
type Client ¶
type Client interface { LookupTXT(context.Context, string) (txts []string, err error) LookupHost(context.Context, string) ([]net.IP, error) LookupCAA(context.Context, string) ([]*dns.CAA, string, error) }
Client queries for DNS records
func New ¶
func New( readTimeout time.Duration, servers ServerProvider, stats prometheus.Registerer, clk clock.Clock, maxTries int, log blog.Logger, ) Client
New constructs a new DNS resolver object that utilizes the provided list of DNS servers for resolution.
func NewTest ¶
func NewTest( readTimeout time.Duration, servers ServerProvider, stats prometheus.Registerer, clk clock.Clock, maxTries int, log blog.Logger) Client
NewTest 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).
type Error ¶
type Error struct {
// contains filtered or unexported fields
}
Error wraps a DNS error with various relevant information
type MockClient ¶
MockClient is a mock
func (*MockClient) LookupHost ¶
LookupHost is a mock
type ServerProvider ¶
serverProvider represents a type which can provide a list of addresses for the bdns to use as DNS resolvers. Different implementations may provide different strategies for providing addresses, and may provide different kinds of addresses (e.g. host:port combos vs IP addresses).