package tlsmiddlebox

//
// DNS Lookup for tlsmiddlebox
//

import (
	"context"
	"time"

	"github.com/ooni/probe-cli/v3/internal/measurexlite"
	"github.com/ooni/probe-cli/v3/internal/model"
)

// DNSLookup performs a DNS Lookup for the passed domain
func (m *Measurer) DNSLookup(ctx context.Context, index int64, zeroTime time.Time,
	logger model.Logger, domain string, tk *TestKeys) ([]string, error) {
	url := m.config.resolverURL()
	trace := measurexlite.NewTrace(index, zeroTime)
	ol := measurexlite.NewOperationLogger(logger, "DNSLookup #%d, %s, %s", index, url, domain)
	// TODO(DecFox, bassosimone): We are currently using the DoH resolver, we will
	// switch to the TRR2 resolver once we have it in measurexlite
	// Issue: https://github.com/ooni/probe/issues/2185
	resolver := trace.NewParallelDNSOverHTTPSResolver(logger, url)
	addrs, err := resolver.LookupHost(ctx, domain)
	ol.Stop(err)
	tk.addQueries(trace.DNSLookupsFromRoundTrip())
	return addrs, err
}
