ooni-probe-cli/internal/engine/internal/sessionresolver/clientmaker.go
Simone Basso 034db78f94
refactor(sessionresolver): adapt to changing network conditions (#238)
* feat(sessionresolver): try many and use what works

* fix(sessionresolver): make sure we can use quic

* fix: the config struct is unnecessary

* fix: make kvstore optional

* feat: write simple integration test

* feat: start adding tests

* feat: continue writing tests

* fix(sessionresolver): add more unit tests

* fix(sessionresolver): finish adding tests

* refactor(sessionresolver): changes after code review
2021-03-03 11:28:39 +01:00

26 lines
708 B
Go

package sessionresolver
import "github.com/ooni/probe-cli/v3/internal/engine/netx"
// dnsclientmaker makes a new resolver.
type dnsclientmaker interface {
// Make makes a new resolver.
Make(config netx.Config, URL string) (childResolver, error)
}
// clientmaker returns a valid dnsclientmaker
func (r *Resolver) clientmaker() dnsclientmaker {
if r.dnsClientMaker != nil {
return r.dnsClientMaker
}
return &defaultDNSClientMaker{}
}
// defaultDNSClientMaker is the default dnsclientmaker
type defaultDNSClientMaker struct{}
// Make implements dnsclientmaker.Make.
func (*defaultDNSClientMaker) Make(config netx.Config, URL string) (childResolver, error) {
return netx.NewDNSClient(config, URL)
}