dns

package
v3.0.2+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 1, 2018 License: BSD-3-Clause, GPL-2.0 Imports: 18 Imported by: 11

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrMessageTooLarge = errors.New("message body too large")
	ErrNoDnsServers    = errors.New("no dns servers")
	ErrUnknown         = errors.New("unknown error")
)
View Source
var (
	DEBUGDNS = true
)

Functions

func DebugDNS

func DebugDNS(quiz, resp *dns.Msg)

func ParseUint

func ParseUint(s string) (n uint64)

func RegisterService

func RegisterService(dnsnet string, dnsaddrs []string) (err error)

func TestHttpsDns

func TestHttpsDns(t *testing.T)

func TranslateRRs

func TranslateRRs(jrs *[]DNSRR, rrs *[]dns.RR)

Types

type DNSMsg

type DNSMsg struct {
	Status             int32         `json:"Status,omitempty"`
	TC                 bool          `json:"TC,omitempty"`
	RD                 bool          `json:"RD,omitempty"`
	RA                 bool          `json:"RA,omitempty"`
	AD                 bool          `json:"AD,omitempty"`
	CD                 bool          `json:"CD,omitempty"`
	Question           []DNSQuestion `json:"Question,omitempty"`
	Answer             []DNSRR       `json:"Answer,omitempty"`
	Authority          []DNSRR       `json:"Authority,omitempty"`
	Additional         []DNSRR       `json:"Additional,omitempty"`
	Edns_client_subnet string        `json:"edns_client_subnet,omitempty"`
	Comment            string        `json:"Comment,omitempty"`
}

func (*DNSMsg) TranslateAnswer

func (msg *DNSMsg) TranslateAnswer(quiz *dns.Msg) (resp *dns.Msg, err error)

type DNSQuestion

type DNSQuestion struct {
	Name string `json:"name,omitempty"`
	Type int32  `json:"type,omitempty"`
}

type DNSRR

type DNSRR struct {
	Name string `json:"name,omitempty"`
	Type int32  `json:"type,omitempty"`
	TTL  int32  `json:"TTL,omitempty"`
	Data string `json:"data,omitempty"`
}

func (*DNSRR) Translate

func (jr *DNSRR) Translate() (rr dns.RR)

type Dns

type Dns struct {
	Resolver
	Servers []string
	// contains filtered or unexported fields
}

func NewDns

func NewDns(servers []string, dnsnet string) (d *Dns)

func (*Dns) Exchange

func (d *Dns) Exchange(m *dns.Msg) (r *dns.Msg, err error)

type Exchanger

type Exchanger interface {
	Exchange(*dns.Msg) (*dns.Msg, error)
}

type HttpsDns

type HttpsDns struct {
	Resolver
	// contains filtered or unexported fields
}

func NewHttpsDns

func NewHttpsDns(dialer netutil.Dialer) (httpsdns *HttpsDns, err error)

func (*HttpsDns) Exchange

func (handler *HttpsDns) Exchange(quiz *dns.Msg) (resp *dns.Msg, err error)

func (*HttpsDns) QueryHttpsDNS

func (handler *HttpsDns) QueryHttpsDNS(qtype, name, subnet string) (jsonresp *DNSMsg, err error)

type Resolver

type Resolver interface {
	LookupIP(host string) (addrs []net.IP, err error)
}
var DefaultResolver Resolver

type TcpClient

type TcpClient struct {
	Resolver
	// contains filtered or unexported fields
}

func NewTcpClient

func NewTcpClient(dialer netutil.Dialer) (client *TcpClient)

func (*TcpClient) Exchange

func (client *TcpClient) Exchange(quiz *dns.Msg) (resp *dns.Msg, err error)

type TcpServer

type TcpServer struct {
	Exchanger
}

func (*TcpServer) Handle

func (server *TcpServer) Handle(fabconn net.Conn) (err error)

type WrapExchanger

type WrapExchanger struct {
	Exchanger
}

func (*WrapExchanger) LookupIP

func (wrap *WrapExchanger) LookupIP(host string) (addrs []net.IP, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL