ooni-probe-cli/internal/engine/experiment/websteps/dns.go

28 lines
749 B
Go
Raw Normal View History

package websteps
import (
"context"
"github.com/apex/log"
"github.com/ooni/probe-cli/v3/internal/engine/netx"
"github.com/ooni/probe-cli/v3/internal/netxlite"
"github.com/ooni/probe-cli/v3/internal/runtimex"
)
type DNSConfig struct {
Domain string
Resolver netxlite.Resolver
}
// DNSDo performs the DNS check.
func DNSDo(ctx context.Context, config DNSConfig) ([]string, error) {
resolver := config.Resolver
if resolver == nil {
childResolver, err := netx.NewDNSClient(netx.Config{Logger: log.Log}, "doh://google")
runtimex.PanicOnError(err, "NewDNSClient failed")
var resolver netxlite.Resolver = childResolver
resolver = &netxlite.ResolverIDNA{Resolver: resolver}
}
return config.Resolver.LookupHost(ctx, config.Domain)
}