package internal
import "google.golang.org/grpc/internal/resolver/dns/internal"
Package internal contains functionality internal to the dns resolver package.
Index ¶
Variables ¶
var ( // ErrMissingAddr is the error returned when building a DNS resolver when // the provided target name is empty. ErrMissingAddr = errors.New("dns resolver: missing address") // ErrEndsWithColon is the error returned when building a DNS resolver when // the provided target name ends with a colon that is supposed to be the // separator between host and port. E.g. "::" is a valid address as it is // an IPv6 address (host only) and "[::]:" is invalid as it ends with a // colon as the host and port separator ErrEndsWithColon = errors.New("dns resolver: missing port after port-separator colon") )
var ( // TimeAfterFunc is used by the DNS resolver to wait for the given duration // to elapse. In non-test code, this is implemented by time.After. In test // code, this can be used to control the amount of time the resolver is // blocked waiting for the duration to elapse. TimeAfterFunc func(time.Duration) <-chan time.Time // TimeNowFunc is used by the DNS resolver to get the current time. // In non-test code, this is implemented by time.Now. In test code, // this can be used to control the current time for the resolver. TimeNowFunc func() time.Time // TimeUntilFunc is used by the DNS resolver to calculate the remaining // wait time for re-resolution. In non-test code, this is implemented by // time.Until. In test code, this can be used to control the remaining // time for resolver to wait for re-resolution. TimeUntilFunc func(time.Time) time.Duration // NewNetResolver returns the net.Resolver instance for the given target. NewNetResolver func(string) (NetResolver, error) // AddressDialer is the dialer used to dial the DNS server. It accepts the // Host portion of the URL corresponding to the user's dial target and // returns a dial function. AddressDialer func(address string) func(context.Context, string, string) (net.Conn, error) )
The following vars are overridden from tests.
Types ¶
type NetResolver ¶
type NetResolver interface { LookupHost(ctx context.Context, host string) (addrs []string, err error) LookupSRV(ctx context.Context, service, proto, name string) (cname string, addrs []*net.SRV, err error) LookupTXT(ctx context.Context, name string) (txts []string, err error) }
NetResolver groups the methods on net.Resolver that are used by the DNS resolver implementation. This allows the default net.Resolver instance to be overridden from tests.
Source Files ¶
internal.go
- Version
- v1.66.3
- Published
- Sep 30, 2024
- Platform
- linux/amd64
- Imports
- 4 packages
- Last checked
- 1 hour ago –
Tools for package owners.