Files
chasquid/dnsoverride.go
Alberto Bertogli 5bb17c7066 Update build tag constraints
This patch updates all build tag constraints to add the new format,
alongside the old one, to maintain backwards compatibility.

This was done by using `go fmt`.

See https://go.dev/doc/go1.17#gofmt and
https://golang.org/design/draft-gobuild for more details.
2022-08-08 17:52:34 +01:00

38 lines
904 B
Go

// Support for overriding DNS lookups, for testing purposes.
// This is only used in tests, when the "dnsoverride" tag is active.
// It requires Go >= 1.8.
//
//go:build dnsoverride
// +build dnsoverride
package main
import (
"context"
"flag"
"net"
"time"
)
var (
dnsAddr = flag.String("testing__dns_addr", "127.0.0.1:9053",
"DNS server address to use, for testing purposes only")
)
var dialer = &net.Dialer{
// We're going to talk to localhost, so have a short timeout so we fail
// fast. Otherwise the callers might hang indefinitely when trying to
// dial the DNS server.
Timeout: 2 * time.Second,
}
func dial(ctx context.Context, network, address string) (net.Conn, error) {
return dialer.DialContext(ctx, network, *dnsAddr)
}
func init() {
// Override the resolver to talk with our local server for testing.
net.DefaultResolver.PreferGo = true
net.DefaultResolver.Dial = dial
}