package dnsmessage
Import Path
vendor/golang.org/x/net/dns/dnsmessage (on golang.org and go.dev)
Dependency Relation
imports one package, and imported by one package
Involved Source Files
d-> message.go
Exported Type Names
type AAAAResource (struct)
An AAAAResource is an AAAA Resource record.
AAAA [16]byte
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).AAAAResource() (AAAAResource, error)
func (*Builder).AAAAResource(h ResourceHeader, r AAAAResource) error
type AResource (struct)
An AResource is an A Resource record.
A [4]byte
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).AResource() (AResource, error)
func (*Builder).AResource(h ResourceHeader, r AResource) error
type Builder (struct)
A Builder allows incrementally packing a DNS message.
Example usage:
buf := make([]byte, 2, 514)
b := NewBuilder(buf, Header{...})
b.EnableCompression()
// Optionally start a section and add things to that section.
// Repeat adding sections as necessary.
buf, err := b.Finish()
// If err is nil, buf[2:] will contain the built bytes.
(*T) AAAAResource(h ResourceHeader, r AAAAResource) error
(*T) AResource(h ResourceHeader, r AResource) error
(*T) CNAMEResource(h ResourceHeader, r CNAMEResource) error
(*T) EnableCompression()
(*T) Finish() ([]byte, error)
(*T) MXResource(h ResourceHeader, r MXResource) error
(*T) NSResource(h ResourceHeader, r NSResource) error
(*T) OPTResource(h ResourceHeader, r OPTResource) error
(*T) PTRResource(h ResourceHeader, r PTRResource) error
(*T) Question(q Question) error
(*T) SOAResource(h ResourceHeader, r SOAResource) error
(*T) SRVResource(h ResourceHeader, r SRVResource) error
(*T) StartAdditionals() error
(*T) StartAnswers() error
(*T) StartAuthorities() error
(*T) StartQuestions() error
(*T) TXTResource(h ResourceHeader, r TXTResource) error
func NewBuilder(buf []byte, h Header) Builder
type Class uint16
A Class is a type of network.
(T) GoString() string
(T) String() string
T : fmt.GoStringer
T : fmt.Stringer
const ClassANY
const ClassCHAOS
const ClassCSNET
const ClassHESIOD
const ClassINET
type CNAMEResource (struct)
A CNAMEResource is a CNAME Resource record.
CNAME Name
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).CNAMEResource() (CNAMEResource, error)
func (*Builder).CNAMEResource(h ResourceHeader, r CNAMEResource) error
type Header (struct)
Header is a representation of a DNS message header.
Authoritative bool
ID uint16
OpCode OpCode
RCode RCode
RecursionAvailable bool
RecursionDesired bool
Response bool
Truncated bool
(*T) GoString() string
*T : fmt.GoStringer
func (*Parser).Start(msg []byte) (Header, error)
func NewBuilder(buf []byte, h Header) Builder
type Message (struct)
Message is a representation of a DNS message.
Additionals []Resource
Answers []Resource
Authorities []Resource
Header Header
Header.Authoritative bool
Header.ID uint16
Header.OpCode OpCode
Header.RCode RCode
Header.RecursionAvailable bool
Header.RecursionDesired bool
Header.Response bool
Header.Truncated bool
Questions []Question
(*T) AppendPack(b []byte) ([]byte, error)
(*T) GoString() string
(*T) Pack() ([]byte, error)
(*T) Unpack(msg []byte) error
*T : fmt.GoStringer
type MXResource (struct)
An MXResource is an MX Resource record.
MX Name
Pref uint16
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).MXResource() (MXResource, error)
func (*Builder).MXResource(h ResourceHeader, r MXResource) error
type Name (struct)
A Name is a non-encoded domain name. It is used instead of strings to avoid
allocations.
Data [255]byte
Length uint8
(*T) GoString() string
(T) String() string
*T : fmt.GoStringer
T : fmt.Stringer
func MustNewName(name string) Name
func NewName(name string) (Name, error)
type NSResource (struct)
An NSResource is an NS Resource record.
NS Name
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).NSResource() (NSResource, error)
func (*Builder).NSResource(h ResourceHeader, r NSResource) error
type Option (struct)
An Option represents a DNS message option within OPTResource.
The message option is part of the extension mechanisms for DNS as
defined in RFC 6891.
Code uint16
Data []byte
(*T) GoString() string
*T : fmt.GoStringer
type OPTResource (struct)
An OPTResource is an OPT pseudo Resource record.
The pseudo resource record is part of the extension mechanisms for DNS
as defined in RFC 6891.
Options []Option
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).OPTResource() (OPTResource, error)
func (*Builder).OPTResource(h ResourceHeader, r OPTResource) error
type Parser (struct)
A Parser allows incrementally parsing a DNS message.
When parsing is started, the Header is parsed. Next, each Question can be
either parsed or skipped. Alternatively, all Questions can be skipped at
once. When all Questions have been parsed, attempting to parse Questions
will return (nil, nil) and attempting to skip Questions will return
(true, nil). After all Questions have been either parsed or skipped, all
Answers, Authorities and Additionals can be either parsed or skipped in the
same way, and each type of Resource must be fully parsed or skipped before
proceeding to the next type of Resource.
Note that there is no requirement to fully skip or parse the message.
(*T) AAAAResource() (AAAAResource, error)
(*T) AResource() (AResource, error)
(*T) Additional() (Resource, error)
(*T) AdditionalHeader() (ResourceHeader, error)
(*T) AllAdditionals() ([]Resource, error)
(*T) AllAnswers() ([]Resource, error)
(*T) AllAuthorities() ([]Resource, error)
(*T) AllQuestions() ([]Question, error)
(*T) Answer() (Resource, error)
(*T) AnswerHeader() (ResourceHeader, error)
(*T) Authority() (Resource, error)
(*T) AuthorityHeader() (ResourceHeader, error)
(*T) CNAMEResource() (CNAMEResource, error)
(*T) MXResource() (MXResource, error)
(*T) NSResource() (NSResource, error)
(*T) OPTResource() (OPTResource, error)
(*T) PTRResource() (PTRResource, error)
(*T) Question() (Question, error)
(*T) SOAResource() (SOAResource, error)
(*T) SRVResource() (SRVResource, error)
(*T) SkipAdditional() error
(*T) SkipAllAdditionals() error
(*T) SkipAllAnswers() error
(*T) SkipAllAuthorities() error
(*T) SkipAllQuestions() error
(*T) SkipAnswer() error
(*T) SkipAuthority() error
(*T) SkipQuestion() error
(*T) Start(msg []byte) (Header, error)
(*T) TXTResource() (TXTResource, error)
type PTRResource (struct)
A PTRResource is a PTR Resource record.
PTR Name
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).PTRResource() (PTRResource, error)
func (*Builder).PTRResource(h ResourceHeader, r PTRResource) error
type Question (struct)
A Question is a DNS query.
Class Class
Name Name
Type Type
(*T) GoString() string
*T : fmt.GoStringer
func (*Parser).AllQuestions() ([]Question, error)
func (*Parser).Question() (Question, error)
func (*Builder).Question(q Question) error
type RCode uint16
An RCode is a DNS response status code.
(T) GoString() string
(T) String() string
T : fmt.GoStringer
T : fmt.Stringer
func (*ResourceHeader).ExtendedRCode(rcode RCode) RCode
func (*ResourceHeader).ExtendedRCode(rcode RCode) RCode
func (*ResourceHeader).SetEDNS0(udpPayloadLen int, extRCode RCode, dnssecOK bool) error
const RCodeFormatError
const RCodeNameError
const RCodeNotImplemented
const RCodeRefused
const RCodeServerFailure
const RCodeSuccess
type Resource (struct)
A Resource is a DNS resource record.
Body ResourceBody
Header ResourceHeader
(*T) GoString() string
*T : fmt.GoStringer
func (*Parser).Additional() (Resource, error)
func (*Parser).AllAdditionals() ([]Resource, error)
func (*Parser).AllAnswers() ([]Resource, error)
func (*Parser).AllAuthorities() ([]Resource, error)
func (*Parser).Answer() (Resource, error)
func (*Parser).Authority() (Resource, error)
type ResourceBody (interface)
A ResourceBody is a DNS resource record minus the header.
(T) GoString() string
*AAAAResource
*AResource
*CNAMEResource
*MXResource
*NSResource
*OPTResource
*PTRResource
*SOAResource
*SRVResource
*TXTResource
T : fmt.GoStringer
type ResourceHeader (struct)
A ResourceHeader is the header of a DNS resource record. There are
many types of DNS resource records, but they all share the same header.
Class Class
Length uint16
Name Name
TTL uint32
Type Type
(*T) DNSSECAllowed() bool
(*T) ExtendedRCode(rcode RCode) RCode
(*T) GoString() string
(*T) SetEDNS0(udpPayloadLen int, extRCode RCode, dnssecOK bool) error
*T : fmt.GoStringer
func (*Parser).AdditionalHeader() (ResourceHeader, error)
func (*Parser).AnswerHeader() (ResourceHeader, error)
func (*Parser).AuthorityHeader() (ResourceHeader, error)
func (*Builder).AAAAResource(h ResourceHeader, r AAAAResource) error
func (*Builder).AResource(h ResourceHeader, r AResource) error
func (*Builder).CNAMEResource(h ResourceHeader, r CNAMEResource) error
func (*Builder).MXResource(h ResourceHeader, r MXResource) error
func (*Builder).NSResource(h ResourceHeader, r NSResource) error
func (*Builder).OPTResource(h ResourceHeader, r OPTResource) error
func (*Builder).PTRResource(h ResourceHeader, r PTRResource) error
func (*Builder).SOAResource(h ResourceHeader, r SOAResource) error
func (*Builder).SRVResource(h ResourceHeader, r SRVResource) error
func (*Builder).TXTResource(h ResourceHeader, r TXTResource) error
type SOAResource (struct)
An SOAResource is an SOA Resource record.
Expire uint32
MBox Name
MinTTL uint32
NS Name
Refresh uint32
Retry uint32
Serial uint32
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).SOAResource() (SOAResource, error)
func (*Builder).SOAResource(h ResourceHeader, r SOAResource) error
type SRVResource (struct)
An SRVResource is an SRV Resource record.
Port uint16
Priority uint16
Target Name
Weight uint16
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).SRVResource() (SRVResource, error)
func (*Builder).SRVResource(h ResourceHeader, r SRVResource) error
type TXTResource (struct)
A TXTResource is a TXT Resource record.
TXT []string
(*T) GoString() string
*T : ResourceBody
*T : fmt.GoStringer
func (*Parser).TXTResource() (TXTResource, error)
func (*Builder).TXTResource(h ResourceHeader, r TXTResource) error
type Type uint16
A Type is a type of DNS request and response.
(T) GoString() string
(T) String() string
T : fmt.GoStringer
T : fmt.Stringer
const TypeA
const TypeAAAA
const TypeALL
const TypeAXFR
const TypeCNAME
const TypeHINFO
const TypeMINFO
const TypeMX
const TypeNS
const TypeOPT
const TypePTR
const TypeSOA
const TypeSRV
const TypeTXT
const TypeWKS
Exported Values
const ClassCHAOS Class = 3
const ClassCSNET Class = 2
const ClassHESIOD Class = 4
var ErrNotStarted error
ErrNotStarted indicates that the prerequisite information isn't
available yet because the previous records haven't been appropriately
parsed, skipped or finished.
var ErrSectionDone error
ErrSectionDone indicated that all records in the section have been
parsed or finished.
func MustNewName(name string) Name
MustNewName creates a new Name from a string and panics on error.
func NewBuilder(buf []byte, h Header) Builder
NewBuilder creates a new builder with compression disabled.
Note: Most users will want to immediately enable compression with the
EnableCompression method. See that method's comment for why you may or may
not want to enable compression.
The DNS message is appended to the provided initial buffer buf (which may be
nil) as it is built. The final message is returned by the (*Builder).Finish
method, which may return the same underlying array if there was sufficient
capacity in the slice.
const RCodeFormatError RCode = 1
const RCodeNameError RCode = 3
const RCodeNotImplemented RCode = 4
const RCodeRefused RCode = 5
const RCodeServerFailure RCode = 2
const RCodeSuccess RCode = 0
Message.Rcode
![]() |
The pages are generated with Golds v0.1.6. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project and developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |