Documentation
¶
Index ¶
- Variables
- func ParseName[T []byte | string](n *Name, s T) error
- func ParseNameLabels[T []byte | string](n *Name, ls []T) error
- func ParseNameRaw[T []byte | string](n *Name, s T) error
- func ReleaseA(r *A)
- func ReleaseAAAA(r *AAAA)
- func ReleaseMX(r *MX)
- func ReleaseMsg(m *Msg)
- func ReleaseNAME(r *NAMEResource)
- func ReleaseName(n *Name)
- func ReleaseQuestion(q *Question)
- func ReleaseRaw(r *RawResource)
- func ReleaseResource(r Resource)
- func ReleaseSOA(r *SOA)
- func ReleaseSRV(r *SRV)
- func RemoveEDNS0(m *Msg)
- func UnpackHdr(msg []byte, off int) (Header, HeaderCount, int, error)
- type A
- type AAAA
- type Class
- type Header
- type HeaderCount
- type MX
- type Msg
- type NAMEResource
- type Name
- type OpCode
- type Question
- type RCode
- type RawResource
- type Resource
- type ResourceHdr
- type SOA
- type SRV
- type Type
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrSmallBuffer = errors.New("buffer is too small")
)
Functions ¶
func ParseName ¶
Parse a readable domain to empty n. Empty s or "." will be the root domain. Both FQDN/non-FQDN are OK. escaping "\", e.g. "\.", "\DDD", is supported.
func ReleaseAAAA ¶
func ReleaseAAAA(r *AAAA)
func ReleaseMsg ¶
func ReleaseMsg(m *Msg)
func ReleaseNAME ¶
func ReleaseNAME(r *NAMEResource)
func ReleaseQuestion ¶
func ReleaseQuestion(q *Question)
func ReleaseRaw ¶
func ReleaseRaw(r *RawResource)
func ReleaseResource ¶
func ReleaseResource(r Resource)
func ReleaseSOA ¶
func ReleaseSOA(r *SOA)
func ReleaseSRV ¶
func ReleaseSRV(r *SRV)
func RemoveEDNS0 ¶
func RemoveEDNS0(m *Msg)
Types ¶
type AAAA ¶
type AAAA struct {
ResourceHdr
AAAA [16]byte
}
func (*AAAA) Hdr ¶
func (r *AAAA) Hdr() *ResourceHdr
type Header ¶
type Header struct {
ID uint16
Response bool
OpCode OpCode
Authoritative bool
Truncated bool
RecursionDesired bool
RecursionAvailable bool
AuthenticData bool
CheckingDisabled bool
RCode RCode
}
Header is a representation of a DNS message header.
type HeaderCount ¶
HeaderCount is a dns msg header section. Useful when manually unpacking a dns msg.
type MX ¶
type MX struct {
ResourceHdr
Pref uint16
MX Name
}
func (*MX) Hdr ¶
func (r *MX) Hdr() *ResourceHdr
type Msg ¶
type Msg struct {
Header
Questions []*Question
Answers []Resource
Authorities []Resource
Additionals []Resource
// contains filtered or unexported fields
}
func (*Msg) MaxPackLen ¶
Pack length if no compression.
type NAMEResource ¶
type NAMEResource struct {
ResourceHdr
NameData Name
}
CNAME, NS, PTR
func NewNAME ¶
func NewNAME() *NAMEResource
func (*NAMEResource) Copy ¶
func (r *NAMEResource) Copy() Resource
func (*NAMEResource) Hdr ¶
func (r *NAMEResource) Hdr() *ResourceHdr
type Name ¶
type Name struct {
// contains filtered or unexported fields
}
Name is a dns name.
func (*Name) AppendReadableTo ¶
Convert n from wire format to common readable format. Root domain will be '.' . Labels will be split by '.' . No '.' at the end of the name. Unprintable characters will be escaped as "\DDD". '.' and '\' will be "\.", "\\". If n is invalid, returns nil, err.
type Question ¶
func NewQuestion ¶
func NewQuestion() *Question
type RawResource ¶
type RawResource struct {
ResourceHdr
Data pool.Buffer
}
func NewRaw ¶
func NewRaw() *RawResource
func (*RawResource) Copy ¶
func (r *RawResource) Copy() Resource
func (*RawResource) Hdr ¶
func (r *RawResource) Hdr() *ResourceHdr
type Resource ¶
type Resource interface {
Hdr() *ResourceHdr
Copy() Resource
// contains filtered or unexported methods
}
type ResourceHdr ¶
type SOA ¶
type SOA struct {
ResourceHdr
NS Name
MBox Name
Serial uint32
Refresh uint32
Retry uint32
Expire uint32
MinTTL uint32
}
func (*SOA) Hdr ¶
func (r *SOA) Hdr() *ResourceHdr
type SRV ¶
type SRV struct {
ResourceHdr
Priority uint16
Weight uint16
Port uint16
Target Name // Not compressed as per RFC 2782.
}
func (*SRV) Hdr ¶
func (r *SRV) Hdr() *ResourceHdr
type Type ¶
type Type uint16
A Type is a type of DNS request and response.
const ( // ResourceHeader.Type and Question.Type TypeA Type = 1 TypeNS Type = 2 TypeCNAME Type = 5 TypeSOA Type = 6 TypePTR Type = 12 TypeMX Type = 15 TypeTXT Type = 16 TypeAAAA Type = 28 TypeSRV Type = 33 TypeOPT Type = 41 // Question.Type TypeWKS Type = 11 TypeHINFO Type = 13 TypeMINFO Type = 14 TypeAXFR Type = 252 TypeALL Type = 255 )
Click to show internal directories.
Click to hide internal directories.