jsonDNS

package
v1.3.2 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2018 License: MIT Imports: 9 Imported by: 21

Documentation

Index

Constants

View Source
const USER_AGENT = "DNS-over-HTTPS/" + VERSION + " (+https://github.com/m13253/dns-over-https)"
View Source
const VERSION = "1.3.2"

Variables

This section is empty.

Functions

func FormatError

func FormatError(w http.ResponseWriter, comment string, errcode int)

func IsGlobalIP

func IsGlobalIP(ip net.IP) bool

func PrepareReply

func PrepareReply(req *dns.Msg) *dns.Msg

func Unmarshal

func Unmarshal(msg *dns.Msg, resp *Response, udpSize uint16, ednsClientNetmask uint8) *dns.Msg

Types

type Question

type Question struct {
	// FQDN with trailing dot
	Name string `json:"name"`
	// Standard DNS RR type
	Type uint16 `json:"type"`
}

type RR

type RR struct {
	Question
	// Record's time-to-live in seconds
	TTL uint32 `json:"TTL"`
	// TTL in absolute time
	Expires    time.Time `json:"-"`
	ExpiresStr string    `json:"Expires"`
	// Data
	Data string `json:"data"`
}

type Response

type Response struct {
	// Standard DNS response code (32 bit integer)
	Status uint32 `json:"Status"`
	// Whether the response is truncated
	TC bool `json:"TC"`
	// Recursion desired
	RD bool `json:"RD"`
	// Recursion available
	RA bool `json:"RA"`
	// Whether all response data was validated with DNSSEC
	// FIXME: We don't have DNSSEC yet! This bit is not reliable!
	AD bool `json:"AD"`
	// Whether the client asked to disable DNSSEC
	CD               bool       `json:"CD"`
	Question         []Question `json:"Question"`
	Answer           []RR       `json:"Answer,omitempty"`
	Authority        []RR       `json:"Authority,omitempty"`
	Additional       []RR       `json:"Additional,omitempty"`
	Comment          string     `json:"Comment,omitempty"`
	EdnsClientSubnet string     `json:"edns_client_subnet,omitempty"`
	// Least time-to-live
	HaveTTL         bool      `json:"-"`
	LeastTTL        uint32    `json:"-"`
	EarliestExpires time.Time `json:"-"`
}

func Marshal

func Marshal(msg *dns.Msg) *Response

type UnmarshalError

type UnmarshalError struct {
	// contains filtered or unexported fields
}

func (UnmarshalError) Error

func (e UnmarshalError) Error() string

Jump to

Keyboard shortcuts

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