Documentation ¶
Overview ¶
Package bootstrap provides types and functions to resolve upstream hostnames and to dial retrieved addresses.
Index ¶
Constants ¶
const ErrNoResolvers errors.Error = "no resolvers specified"
ErrNoResolvers is returned when zero resolvers specified.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DialHandler ¶
DialHandler is a dial function for creating unencrypted network connections to the upstream server. It establishes the connection to the server specified at initialization and ignores the addr.
func NewDialContext ¶
func NewDialContext(timeout time.Duration, addrs ...string) (h DialHandler)
NewDialContext returns a DialHandler that dials addrs and returns the first successful connection. At least a single addr should be specified.
TODO(e.burkov): Consider using Resolver instead of [upstream.Options.Bootstrap] and [upstream.Options.ServerIPAddrs].
func ResolveDialContext ¶
func ResolveDialContext( u *url.URL, timeout time.Duration, resolver Resolver, preferIPv6 bool, ) (h DialHandler, err error)
ResolveDialContext returns a DialHandler that uses addresses resolved from u using resolver. u must not be nil.
type ParallelResolver ¶ added in v0.58.0
type ParallelResolver []Resolver
ParallelResolver is a slice of resolvers that are queried concurrently. The first successful response is returned.
type Resolver ¶
type Resolver interface { // LookupNetIP looks up the IP addresses for the given host. network must // be one of "ip", "ip4" or "ip6". The response may be empty even if err is // nil. LookupNetIP(ctx context.Context, network, host string) (addrs []netip.Addr, err error) }
Resolver resolves the hostnames to IP addresses.