| // Code generated by "go run msg_generate.go"; DO NOT EDIT. |
| |
| package dns |
| |
| // pack*() functions |
| |
| func (rr *A) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packDataA(rr.A, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *AAAA) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packDataAAAA(rr.AAAA, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *AFSDB) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Subtype, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Hostname, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *ANY) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *AVC) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packStringTxt(rr.Txt, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *CAA) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint8(rr.Flag, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packString(rr.Tag, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringOctet(rr.Value, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *CDNSKEY) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Flags, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Protocol, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringBase64(rr.PublicKey, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *CDS) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.KeyTag, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.DigestType, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.Digest, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *CERT) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Type, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.KeyTag, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringBase64(rr.Certificate, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *CNAME) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Target, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *CSYNC) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint32(rr.Serial, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Flags, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packDataNsec(rr.TypeBitMap, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *DHCID) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packStringBase64(rr.Digest, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *DLV) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.KeyTag, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.DigestType, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.Digest, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *DNAME) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Target, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *DNSKEY) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Flags, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Protocol, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringBase64(rr.PublicKey, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *DS) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.KeyTag, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.DigestType, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.Digest, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *EID) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packStringHex(rr.Endpoint, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *EUI48) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint48(rr.Address, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *EUI64) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint64(rr.Address, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *GID) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint32(rr.Gid, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *GPOS) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packString(rr.Longitude, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packString(rr.Latitude, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packString(rr.Altitude, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *HINFO) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packString(rr.Cpu, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packString(rr.Os, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *HIP) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint8(rr.HitLength, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.PublicKeyAlgorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.PublicKeyLength, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.Hit, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringBase64(rr.PublicKey, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packDataDomainNames(rr.RendezvousServers, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *KEY) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Flags, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Protocol, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringBase64(rr.PublicKey, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *KX) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Preference, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Exchanger, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *L32) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Preference, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packDataA(rr.Locator32, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *L64) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Preference, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint64(rr.Locator64, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *LOC) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint8(rr.Version, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Size, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.HorizPre, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.VertPre, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Latitude, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Longitude, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Altitude, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *LP) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Preference, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Fqdn, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *MB) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Mb, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *MD) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Md, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *MF) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Mf, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *MG) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Mg, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *MINFO) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Rmail, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Email, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *MR) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Mr, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *MX) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Preference, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Mx, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *NAPTR) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Order, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Preference, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packString(rr.Flags, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packString(rr.Service, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packString(rr.Regexp, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Replacement, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *NID) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Preference, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint64(rr.NodeID, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *NIMLOC) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packStringHex(rr.Locator, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *NINFO) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packStringTxt(rr.ZSData, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *NS) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Ns, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *NSAPPTR) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Ptr, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *NSEC) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.NextDomain, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| off, err = packDataNsec(rr.TypeBitMap, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *NSEC3) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint8(rr.Hash, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Flags, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Iterations, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.SaltLength, msg, off) |
| if err != nil { |
| return off, err |
| } |
| // Only pack salt if value is not "-", i.e. empty |
| if rr.Salt != "-" { |
| off, err = packStringHex(rr.Salt, msg, off) |
| if err != nil { |
| return off, err |
| } |
| } |
| off, err = packUint8(rr.HashLength, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringBase32(rr.NextDomain, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packDataNsec(rr.TypeBitMap, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *NSEC3PARAM) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint8(rr.Hash, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Flags, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Iterations, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.SaltLength, msg, off) |
| if err != nil { |
| return off, err |
| } |
| // Only pack salt if value is not "-", i.e. empty |
| if rr.Salt != "-" { |
| off, err = packStringHex(rr.Salt, msg, off) |
| if err != nil { |
| return off, err |
| } |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *OPENPGPKEY) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packStringBase64(rr.PublicKey, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *OPT) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packDataOpt(rr.Option, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *PTR) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Ptr, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *PX) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Preference, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Map822, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Mapx400, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *RFC3597) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packStringHex(rr.Rdata, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *RKEY) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Flags, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Protocol, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringBase64(rr.PublicKey, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *RP) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Mbox, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Txt, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *RRSIG) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.TypeCovered, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Labels, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.OrigTtl, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Expiration, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Inception, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.KeyTag, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.SignerName, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringBase64(rr.Signature, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *RT) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Preference, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Host, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *SIG) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.TypeCovered, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Labels, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.OrigTtl, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Expiration, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Inception, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.KeyTag, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.SignerName, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringBase64(rr.Signature, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *SMIMEA) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint8(rr.Usage, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Selector, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.MatchingType, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.Certificate, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *SOA) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Ns, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Mbox, msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Serial, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Refresh, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Retry, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Expire, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Minttl, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *SPF) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packStringTxt(rr.Txt, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *SRV) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Priority, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Weight, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Port, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.Target, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *SSHFP) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Type, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.FingerPrint, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *TA) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.KeyTag, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Algorithm, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.DigestType, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.Digest, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *TALINK) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.PreviousName, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| off, err = PackDomainName(rr.NextName, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *TKEY) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Algorithm, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Inception, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint32(rr.Expiration, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Mode, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Error, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.KeySize, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.Key, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.OtherLen, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.OtherData, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *TLSA) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint8(rr.Usage, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.Selector, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint8(rr.MatchingType, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.Certificate, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *TSIG) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = PackDomainName(rr.Algorithm, msg, off, compression, false) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint48(rr.TimeSigned, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Fudge, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.MACSize, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.MAC, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.OrigId, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Error, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.OtherLen, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringHex(rr.OtherData, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *TXT) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packStringTxt(rr.Txt, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *UID) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint32(rr.Uid, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *UINFO) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packString(rr.Uinfo, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *URI) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packUint16(rr.Priority, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packUint16(rr.Weight, msg, off) |
| if err != nil { |
| return off, err |
| } |
| off, err = packStringOctet(rr.Target, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| func (rr *X25) pack(msg []byte, off int, compression map[string]int, compress bool) (int, error) { |
| off, err := rr.Hdr.pack(msg, off, compression, compress) |
| if err != nil { |
| return off, err |
| } |
| headerEnd := off |
| off, err = packString(rr.PSDNAddress, msg, off) |
| if err != nil { |
| return off, err |
| } |
| rr.Header().Rdlength = uint16(off - headerEnd) |
| return off, nil |
| } |
| |
| // unpack*() functions |
| |
| func unpackA(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(A) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.A, off, err = unpackDataA(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackAAAA(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(AAAA) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.AAAA, off, err = unpackDataAAAA(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackAFSDB(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(AFSDB) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Subtype, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Hostname, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackANY(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(ANY) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| return rr, off, err |
| } |
| |
| func unpackAVC(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(AVC) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Txt, off, err = unpackStringTxt(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackCAA(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(CAA) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Flag, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Tag, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Value, off, err = unpackStringOctet(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackCDNSKEY(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(CDNSKEY) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Flags, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Protocol, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackCDS(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(CDS) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.KeyTag, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.DigestType, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackCERT(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(CERT) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Type, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.KeyTag, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Certificate, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackCNAME(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(CNAME) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Target, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackCSYNC(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(CSYNC) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Serial, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Flags, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.TypeBitMap, off, err = unpackDataNsec(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackDHCID(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(DHCID) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Digest, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackDLV(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(DLV) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.KeyTag, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.DigestType, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackDNAME(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(DNAME) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Target, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackDNSKEY(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(DNSKEY) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Flags, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Protocol, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackDS(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(DS) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.KeyTag, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.DigestType, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackEID(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(EID) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Endpoint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackEUI48(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(EUI48) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Address, off, err = unpackUint48(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackEUI64(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(EUI64) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Address, off, err = unpackUint64(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackGID(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(GID) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Gid, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackGPOS(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(GPOS) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Longitude, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Latitude, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Altitude, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackHINFO(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(HINFO) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Cpu, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Os, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackHIP(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(HIP) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.HitLength, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.PublicKeyAlgorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.PublicKeyLength, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Hit, off, err = unpackStringHex(msg, off, off+int(rr.HitLength)) |
| if err != nil { |
| return rr, off, err |
| } |
| rr.PublicKey, off, err = unpackStringBase64(msg, off, off+int(rr.PublicKeyLength)) |
| if err != nil { |
| return rr, off, err |
| } |
| rr.RendezvousServers, off, err = unpackDataDomainNames(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackKEY(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(KEY) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Flags, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Protocol, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackKX(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(KX) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Preference, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Exchanger, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackL32(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(L32) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Preference, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Locator32, off, err = unpackDataA(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackL64(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(L64) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Preference, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Locator64, off, err = unpackUint64(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackLOC(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(LOC) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Version, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Size, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.HorizPre, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.VertPre, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Latitude, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Longitude, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Altitude, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackLP(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(LP) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Preference, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Fqdn, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackMB(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(MB) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Mb, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackMD(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(MD) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Md, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackMF(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(MF) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Mf, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackMG(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(MG) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Mg, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackMINFO(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(MINFO) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Rmail, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Email, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackMR(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(MR) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Mr, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackMX(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(MX) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Preference, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Mx, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackNAPTR(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(NAPTR) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Order, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Preference, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Flags, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Service, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Regexp, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Replacement, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackNID(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(NID) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Preference, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.NodeID, off, err = unpackUint64(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackNIMLOC(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(NIMLOC) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Locator, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackNINFO(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(NINFO) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.ZSData, off, err = unpackStringTxt(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackNS(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(NS) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Ns, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackNSAPPTR(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(NSAPPTR) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Ptr, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackNSEC(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(NSEC) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.NextDomain, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.TypeBitMap, off, err = unpackDataNsec(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackNSEC3(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(NSEC3) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Hash, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Flags, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Iterations, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.SaltLength, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Salt, off, err = unpackStringHex(msg, off, off+int(rr.SaltLength)) |
| if err != nil { |
| return rr, off, err |
| } |
| rr.HashLength, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.NextDomain, off, err = unpackStringBase32(msg, off, off+int(rr.HashLength)) |
| if err != nil { |
| return rr, off, err |
| } |
| rr.TypeBitMap, off, err = unpackDataNsec(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackNSEC3PARAM(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(NSEC3PARAM) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Hash, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Flags, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Iterations, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.SaltLength, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Salt, off, err = unpackStringHex(msg, off, off+int(rr.SaltLength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackOPENPGPKEY(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(OPENPGPKEY) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackOPT(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(OPT) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Option, off, err = unpackDataOpt(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackPTR(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(PTR) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Ptr, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackPX(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(PX) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Preference, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Map822, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Mapx400, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackRFC3597(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(RFC3597) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Rdata, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackRKEY(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(RKEY) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Flags, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Protocol, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackRP(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(RP) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Mbox, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Txt, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackRRSIG(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(RRSIG) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.TypeCovered, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Labels, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.OrigTtl, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Expiration, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Inception, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.KeyTag, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.SignerName, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackRT(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(RT) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Preference, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Host, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackSIG(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(SIG) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.TypeCovered, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Labels, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.OrigTtl, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Expiration, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Inception, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.KeyTag, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.SignerName, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackSMIMEA(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(SMIMEA) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Usage, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Selector, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.MatchingType, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackSOA(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(SOA) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Ns, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Mbox, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Serial, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Refresh, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Retry, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Expire, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Minttl, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackSPF(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(SPF) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Txt, off, err = unpackStringTxt(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackSRV(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(SRV) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Priority, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Weight, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Port, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Target, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackSSHFP(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(SSHFP) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Type, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.FingerPrint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackTA(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(TA) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.KeyTag, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Algorithm, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.DigestType, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackTALINK(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(TALINK) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.PreviousName, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.NextName, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackTKEY(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(TKEY) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Algorithm, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Inception, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Expiration, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Mode, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Error, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.KeySize, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Key, off, err = unpackStringHex(msg, off, off+int(rr.KeySize)) |
| if err != nil { |
| return rr, off, err |
| } |
| rr.OtherLen, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.OtherData, off, err = unpackStringHex(msg, off, off+int(rr.OtherLen)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackTLSA(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(TLSA) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Usage, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Selector, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.MatchingType, off, err = unpackUint8(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackTSIG(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(TSIG) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Algorithm, off, err = UnpackDomainName(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.TimeSigned, off, err = unpackUint48(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Fudge, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.MACSize, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.MAC, off, err = unpackStringHex(msg, off, off+int(rr.MACSize)) |
| if err != nil { |
| return rr, off, err |
| } |
| rr.OrigId, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Error, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.OtherLen, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.OtherData, off, err = unpackStringHex(msg, off, off+int(rr.OtherLen)) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackTXT(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(TXT) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Txt, off, err = unpackStringTxt(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackUID(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(UID) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Uid, off, err = unpackUint32(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackUINFO(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(UINFO) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Uinfo, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackURI(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(URI) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.Priority, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Weight, off, err = unpackUint16(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| if off == len(msg) { |
| return rr, off, nil |
| } |
| rr.Target, off, err = unpackStringOctet(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| func unpackX25(h RR_Header, msg []byte, off int) (RR, int, error) { |
| rr := new(X25) |
| rr.Hdr = h |
| if noRdata(h) { |
| return rr, off, nil |
| } |
| var err error |
| rdStart := off |
| _ = rdStart |
| |
| rr.PSDNAddress, off, err = unpackString(msg, off) |
| if err != nil { |
| return rr, off, err |
| } |
| return rr, off, err |
| } |
| |
| var typeToUnpack = map[uint16]func(RR_Header, []byte, int) (RR, int, error){ |
| TypeA: unpackA, |
| TypeAAAA: unpackAAAA, |
| TypeAFSDB: unpackAFSDB, |
| TypeANY: unpackANY, |
| TypeAVC: unpackAVC, |
| TypeCAA: unpackCAA, |
| TypeCDNSKEY: unpackCDNSKEY, |
| TypeCDS: unpackCDS, |
| TypeCERT: unpackCERT, |
| TypeCNAME: unpackCNAME, |
| TypeCSYNC: unpackCSYNC, |
| TypeDHCID: unpackDHCID, |
| TypeDLV: unpackDLV, |
| TypeDNAME: unpackDNAME, |
| TypeDNSKEY: unpackDNSKEY, |
| TypeDS: unpackDS, |
| TypeEID: unpackEID, |
| TypeEUI48: unpackEUI48, |
| TypeEUI64: unpackEUI64, |
| TypeGID: unpackGID, |
| TypeGPOS: unpackGPOS, |
| TypeHINFO: unpackHINFO, |
| TypeHIP: unpackHIP, |
| TypeKEY: unpackKEY, |
| TypeKX: unpackKX, |
| TypeL32: unpackL32, |
| TypeL64: unpackL64, |
| TypeLOC: unpackLOC, |
| TypeLP: unpackLP, |
| TypeMB: unpackMB, |
| TypeMD: unpackMD, |
| TypeMF: unpackMF, |
| TypeMG: unpackMG, |
| TypeMINFO: unpackMINFO, |
| TypeMR: unpackMR, |
| TypeMX: unpackMX, |
| TypeNAPTR: unpackNAPTR, |
| TypeNID: unpackNID, |
| TypeNIMLOC: unpackNIMLOC, |
| TypeNINFO: unpackNINFO, |
| TypeNS: unpackNS, |
| TypeNSAPPTR: unpackNSAPPTR, |
| TypeNSEC: unpackNSEC, |
| TypeNSEC3: unpackNSEC3, |
| TypeNSEC3PARAM: unpackNSEC3PARAM, |
| TypeOPENPGPKEY: unpackOPENPGPKEY, |
| TypeOPT: unpackOPT, |
| TypePTR: unpackPTR, |
| TypePX: unpackPX, |
| TypeRKEY: unpackRKEY, |
| TypeRP: unpackRP, |
| TypeRRSIG: unpackRRSIG, |
| TypeRT: unpackRT, |
| TypeSIG: unpackSIG, |
| TypeSMIMEA: unpackSMIMEA, |
| TypeSOA: unpackSOA, |
| TypeSPF: unpackSPF, |
| TypeSRV: unpackSRV, |
| TypeSSHFP: unpackSSHFP, |
| TypeTA: unpackTA, |
| TypeTALINK: unpackTALINK, |
| TypeTKEY: unpackTKEY, |
| TypeTLSA: unpackTLSA, |
| TypeTSIG: unpackTSIG, |
| TypeTXT: unpackTXT, |
| TypeUID: unpackUID, |
| TypeUINFO: unpackUINFO, |
| TypeURI: unpackURI, |
| TypeX25: unpackX25, |
| } |