1package sessionresolver
2
3import "github.com/ooni/probe-cli/v3/internal/engine/netx"
4
5// dnsclientmaker makes a new resolver.
6type dnsclientmaker interface {
7	// Make makes a new resolver.
8	Make(config netx.Config, URL string) (childResolver, error)
9}
10
11// clientmaker returns a valid dnsclientmaker
12func (r *Resolver) clientmaker() dnsclientmaker {
13	if r.dnsClientMaker != nil {
14		return r.dnsClientMaker
15	}
16	return &defaultDNSClientMaker{}
17}
18
19// defaultDNSClientMaker is the default dnsclientmaker
20type defaultDNSClientMaker struct{}
21
22// Make implements dnsclientmaker.Make.
23func (*defaultDNSClientMaker) Make(config netx.Config, URL string) (childResolver, error) {
24	return netx.NewDNSClient(config, URL)
25}
26