22 lines
583 B
Go
22 lines
583 B
Go
|
package dnsx
|
||
|
|
||
|
import "context"
|
||
|
|
||
|
// RoundTripper represents an abstract DNS transport.
|
||
|
type RoundTripper interface {
|
||
|
// RoundTrip sends a DNS query and receives the reply.
|
||
|
RoundTrip(ctx context.Context, query []byte) (reply []byte, err error)
|
||
|
|
||
|
// RequiresPadding return true for DoH and DoT according to RFC8467
|
||
|
RequiresPadding() bool
|
||
|
|
||
|
// Network is the network of the round tripper (e.g. "dot")
|
||
|
Network() string
|
||
|
|
||
|
// Address is the address of the round tripper (e.g. "1.1.1.1:853")
|
||
|
Address() string
|
||
|
|
||
|
// CloseIdleConnections closes idle connections.
|
||
|
CloseIdleConnections()
|
||
|
}
|