Allow overriding the provider preset with an explicit HTTPS DoH URL, including validation that custom endpoints apply only to DoH queries.
60 lines
1.8 KiB
Go
60 lines
1.8 KiB
Go
package edns
|
|
|
|
type QueryOptions struct {
|
|
Name string
|
|
RecordType string
|
|
Protocol string
|
|
Provider string
|
|
Method string
|
|
EndpointURL string
|
|
}
|
|
|
|
type Result struct {
|
|
SchemaVersion int `json:"schema_version"`
|
|
Operation string `json:"operation"`
|
|
Completed bool `json:"completed"`
|
|
Query QueryInfo `json:"query"`
|
|
Resolver ResolverInfo `json:"resolver"`
|
|
Transport TransportInfo `json:"transport"`
|
|
DNS DNSInfo `json:"dns"`
|
|
Warnings []string `json:"warnings,omitempty"`
|
|
Error *ErrorInfo `json:"error,omitempty"`
|
|
}
|
|
|
|
type QueryInfo struct {
|
|
Name string `json:"name"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
type ResolverInfo struct {
|
|
Provider string `json:"provider"`
|
|
Endpoint string `json:"endpoint"`
|
|
Profile string `json:"profile"`
|
|
}
|
|
|
|
type TransportInfo struct {
|
|
Protocol string `json:"protocol"`
|
|
Encrypted bool `json:"encrypted"`
|
|
ServerAuthenticated bool `json:"server_authenticated"`
|
|
ElapsedMS int64 `json:"elapsed_ms"`
|
|
Bootstrap string `json:"bootstrap"`
|
|
TLSVersion string `json:"tls_version,omitempty"`
|
|
ALPN string `json:"alpn,omitempty"`
|
|
HTTPVersion string `json:"http_version,omitempty"`
|
|
}
|
|
|
|
type DNSInfo struct {
|
|
RCode string `json:"rcode"`
|
|
RCodeValue int `json:"rcode_value"`
|
|
ResolverReportsDNSSECAuthenticated bool `json:"resolver_reports_dnssec_authenticated"`
|
|
ClientValidatedDNSSEC bool `json:"client_validated_dnssec"`
|
|
Answers []AnswerRecord `json:"answers"`
|
|
}
|
|
|
|
type AnswerRecord map[string]any
|
|
|
|
type ErrorInfo struct {
|
|
Class string `json:"class"`
|
|
Message string `json:"message"`
|
|
}
|