diff options
Diffstat (limited to 'vendor/github.com/miekg/dns')
| -rw-r--r-- | vendor/github.com/miekg/dns/edns.go | 22 | ||||
| -rw-r--r-- | vendor/github.com/miekg/dns/msg.go | 25 | ||||
| -rw-r--r-- | vendor/github.com/miekg/dns/server.go | 12 | ||||
| -rw-r--r-- | vendor/github.com/miekg/dns/svcb.go | 58 | ||||
| -rw-r--r-- | vendor/github.com/miekg/dns/version.go | 2 | ||||
| -rw-r--r-- | vendor/github.com/miekg/dns/zmsg.go | 422 |
6 files changed, 277 insertions, 264 deletions
diff --git a/vendor/github.com/miekg/dns/edns.go b/vendor/github.com/miekg/dns/edns.go index 91793b906..5c970ca7e 100644 --- a/vendor/github.com/miekg/dns/edns.go +++ b/vendor/github.com/miekg/dns/edns.go @@ -317,30 +317,30 @@ func (e *EDNS0_SUBNET) pack() ([]byte, error) { // "dig" sets AddressFamily to 0 if SourceNetmask is also 0 // We might don't need to complain either if e.SourceNetmask != 0 { - return nil, errors.New("dns: bad address family") + return nil, errors.New("bad address family") } case 1: if e.SourceNetmask > net.IPv4len*8 { - return nil, errors.New("dns: bad netmask") + return nil, errors.New("bad netmask") } if len(e.Address.To4()) != net.IPv4len { - return nil, errors.New("dns: bad address") + return nil, errors.New("bad address") } ip := e.Address.To4().Mask(net.CIDRMask(int(e.SourceNetmask), net.IPv4len*8)) needLength := (e.SourceNetmask + 8 - 1) / 8 // division rounding up b = append(b, ip[:needLength]...) case 2: if e.SourceNetmask > net.IPv6len*8 { - return nil, errors.New("dns: bad netmask") + return nil, errors.New("bad netmask") } if len(e.Address) != net.IPv6len { - return nil, errors.New("dns: bad address") + return nil, errors.New("bad address") } ip := e.Address.Mask(net.CIDRMask(int(e.SourceNetmask), net.IPv6len*8)) needLength := (e.SourceNetmask + 8 - 1) / 8 // division rounding up b = append(b, ip[:needLength]...) default: - return nil, errors.New("dns: bad address family") + return nil, errors.New("bad address family") } return b, nil } @@ -357,25 +357,25 @@ func (e *EDNS0_SUBNET) unpack(b []byte) error { // "dig" sets AddressFamily to 0 if SourceNetmask is also 0 // It's okay to accept such a packet if e.SourceNetmask != 0 { - return errors.New("dns: bad address family") + return errors.New("bad address family") } e.Address = net.IPv4(0, 0, 0, 0) case 1: if e.SourceNetmask > net.IPv4len*8 || e.SourceScope > net.IPv4len*8 { - return errors.New("dns: bad netmask") + return errors.New("bad netmask") } addr := make(net.IP, net.IPv4len) copy(addr, b[4:]) e.Address = addr.To16() case 2: if e.SourceNetmask > net.IPv6len*8 || e.SourceScope > net.IPv6len*8 { - return errors.New("dns: bad netmask") + return errors.New("bad netmask") } addr := make(net.IP, net.IPv6len) copy(addr, b[4:]) e.Address = addr default: - return errors.New("dns: bad address family") + return errors.New("bad address family") } return nil } @@ -720,7 +720,7 @@ func (e *EDNS0_TCP_KEEPALIVE) unpack(b []byte) error { case 2: e.Timeout = binary.BigEndian.Uint16(b) default: - return fmt.Errorf("dns: length mismatch, want 0/2 but got %d", len(b)) + return fmt.Errorf("length mismatch, want 0/2 but got %d", len(b)) } return nil } diff --git a/vendor/github.com/miekg/dns/msg.go b/vendor/github.com/miekg/dns/msg.go index d87b5323b..edf185961 100644 --- a/vendor/github.com/miekg/dns/msg.go +++ b/vendor/github.com/miekg/dns/msg.go @@ -872,7 +872,7 @@ func (dns *Msg) unpack(dh Header, msg []byte, off int) (err error) { // TODO(miek) make this an error? // use PackOpt to let people tell how detailed the error reporting should be? // if off != len(msg) { - // // println("dns: extra bytes in dns packet", off, "<", len(msg)) + // // println("dns: extra bytes in dns packet", off, "<", len(msg)) // } return err } @@ -1123,23 +1123,28 @@ func unpackQuestion(msg []byte, off int) (Question, int, error) { ) q.Name, off, err = UnpackDomainName(msg, off) if err != nil { - return q, off, err + return q, off, fmt.Errorf("bad question name: %w", err) } if off == len(msg) { return q, off, nil } q.Qtype, off, err = unpackUint16(msg, off) if err != nil { - return q, off, err + return q, off, fmt.Errorf("bad question qtype: %w", err) } if off == len(msg) { return q, off, nil } q.Qclass, off, err = unpackUint16(msg, off) + if err != nil { + return q, off, fmt.Errorf("bad question qclass: %w", err) + } + if off == len(msg) { return q, off, nil } - return q, off, err + + return q, off, nil } func (dh *Header) pack(msg []byte, off int, compression compressionMap, compress bool) (int, error) { @@ -1177,27 +1182,27 @@ func unpackMsgHdr(msg []byte, off int) (Header, int, error) { ) dh.Id, off, err = unpackUint16(msg, off) if err != nil { - return dh, off, err + return dh, off, fmt.Errorf("bad header id: %w", err) } dh.Bits, off, err = unpackUint16(msg, off) if err != nil { - return dh, off, err + return dh, off, fmt.Errorf("bad header bits: %w", err) } dh.Qdcount, off, err = unpackUint16(msg, off) if err != nil { - return dh, off, err + return dh, off, fmt.Errorf("bad header question count: %w", err) } dh.Ancount, off, err = unpackUint16(msg, off) if err != nil { - return dh, off, err + return dh, off, fmt.Errorf("bad header answer count: %w", err) } dh.Nscount, off, err = unpackUint16(msg, off) if err != nil { - return dh, off, err + return dh, off, fmt.Errorf("bad header ns count: %w", err) } dh.Arcount, off, err = unpackUint16(msg, off) if err != nil { - return dh, off, err + return dh, off, fmt.Errorf("bad header extra count: %w", err) } return dh, off, nil } diff --git a/vendor/github.com/miekg/dns/server.go b/vendor/github.com/miekg/dns/server.go index b04d370f6..2b4630f38 100644 --- a/vendor/github.com/miekg/dns/server.go +++ b/vendor/github.com/miekg/dns/server.go @@ -44,6 +44,8 @@ type ResponseWriter interface { LocalAddr() net.Addr // RemoteAddr returns the net.Addr of the client that sent the current request. RemoteAddr() net.Addr + // Network returns the value of the Net field of the Server (e.g., "tcp", "tcp-tls"). + Network() string // WriteMsg writes a reply back to the client. WriteMsg(*Msg) error // Write writes a raw buffer back to the client. @@ -77,6 +79,7 @@ type response struct { udpSession *SessionUDP // oob data to get egress interface right pcSession net.Addr // address to use when writing to a generic net.PacketConn writer Writer // writer to output the raw DNS bits + network string // corresponding Server.Net value } // handleRefused returns a HandlerFunc that returns REFUSED for every request it gets. @@ -332,7 +335,7 @@ func (srv *Server) ListenAndServe() error { return srv.serveTCP(l) case "tcp-tls", "tcp4-tls", "tcp6-tls": if srv.TLSConfig == nil || (len(srv.TLSConfig.Certificates) == 0 && srv.TLSConfig.GetCertificate == nil) { - return errors.New("dns: neither Certificates nor GetCertificate set in Config") + return errors.New("neither Certificates nor GetCertificate set in config") } network := strings.TrimSuffix(srv.Net, "-tls") l, err := listenTCP(network, addr, srv.ReusePort, srv.ReuseAddr) @@ -557,7 +560,7 @@ func (srv *Server) serveUDP(l net.PacketConn) error { // Serve a new TCP connection. func (srv *Server) serveTCPConn(wg *sync.WaitGroup, rw net.Conn) { - w := &response{tsigProvider: srv.tsigProvider(), tcp: rw} + w := &response{tsigProvider: srv.tsigProvider(), tcp: rw, network: srv.Net} if srv.DecorateWriter != nil { w.writer = srv.DecorateWriter(w) } else { @@ -612,7 +615,7 @@ func (srv *Server) serveTCPConn(wg *sync.WaitGroup, rw net.Conn) { // Serve a new UDP request. func (srv *Server) serveUDPPacket(wg *sync.WaitGroup, m []byte, u net.PacketConn, udpSession *SessionUDP, pcSession net.Addr) { - w := &response{tsigProvider: srv.tsigProvider(), udp: u, udpSession: udpSession, pcSession: pcSession} + w := &response{tsigProvider: srv.tsigProvider(), udp: u, udpSession: udpSession, pcSession: pcSession, network: srv.Net} if srv.DecorateWriter != nil { w.writer = srv.DecorateWriter(w) } else { @@ -818,6 +821,9 @@ func (w *response) RemoteAddr() net.Addr { } } +// Network implements the ResponseWriter.Network method. +func (w *response) Network() string { return w.network } + // TsigStatus implements the ResponseWriter.TsigStatus method. func (w *response) TsigStatus() error { return w.tsigStatus } diff --git a/vendor/github.com/miekg/dns/svcb.go b/vendor/github.com/miekg/dns/svcb.go index d1baeea99..598103c10 100644 --- a/vendor/github.com/miekg/dns/svcb.go +++ b/vendor/github.com/miekg/dns/svcb.go @@ -298,7 +298,7 @@ func (s *SVCBMandatory) pack() ([]byte, error) { func (s *SVCBMandatory) unpack(b []byte) error { if len(b)%2 != 0 { - return errors.New("dns: svcbmandatory: value length is not a multiple of 2") + return errors.New("bad svcbmandatory: value length is not a multiple of 2") } codes := make([]SVCBKey, 0, len(b)/2) for i := 0; i < len(b); i += 2 { @@ -395,10 +395,10 @@ func (s *SVCBAlpn) pack() ([]byte, error) { b := make([]byte, 0, 10*len(s.Alpn)) for _, e := range s.Alpn { if e == "" { - return nil, errors.New("dns: svcbalpn: empty alpn-id") + return nil, errors.New("bad svcbalpn: empty alpn-id") } if len(e) > 255 { - return nil, errors.New("dns: svcbalpn: alpn-id too long") + return nil, errors.New("bad svcbalpn: alpn-id too long") } b = append(b, byte(len(e))) b = append(b, e...) @@ -413,7 +413,7 @@ func (s *SVCBAlpn) unpack(b []byte) error { length := int(b[i]) i++ if i+length > len(b) { - return errors.New("dns: svcbalpn: alpn array overflowing") + return errors.New("bad svcbalpn: alpn array overflowing") } alpn = append(alpn, string(b[i:i+length])) i += length @@ -433,13 +433,13 @@ func (s *SVCBAlpn) parse(b string) error { for p := 0; p < len(b); { c, q := nextByte(b, p) if q == 0 { - return errors.New("dns: svcbalpn: unterminated escape") + return errors.New("bad svcbalpn: unterminated escape") } p += q // If we find a comma, we have finished reading an alpn. if c == ',' { if len(a) == 0 { - return errors.New("dns: svcbalpn: empty protocol identifier") + return errors.New("bad svcbalpn: empty protocol identifier") } alpn = append(alpn, string(a)) a = []byte{} @@ -449,10 +449,10 @@ func (s *SVCBAlpn) parse(b string) error { if c == '\\' { dc, dq := nextByte(b, p) if dq == 0 { - return errors.New("dns: svcbalpn: unterminated escape decoding comma-separated list") + return errors.New("bad svcbalpn: unterminated escape decoding comma-separated list") } if dc != '\\' && dc != ',' { - return errors.New("dns: svcbalpn: bad escaped character decoding comma-separated list") + return errors.New("bad svcbalpn: bad escaped character decoding comma-separated list") } p += dq c = dc @@ -461,7 +461,7 @@ func (s *SVCBAlpn) parse(b string) error { } // Add the final alpn. if len(a) == 0 { - return errors.New("dns: svcbalpn: last protocol identifier empty") + return errors.New("bad svcbalpn: last protocol identifier empty") } s.Alpn = append(alpn, string(a)) return nil @@ -499,14 +499,14 @@ func (*SVCBNoDefaultAlpn) len() int { return 0 } func (*SVCBNoDefaultAlpn) unpack(b []byte) error { if len(b) != 0 { - return errors.New("dns: svcbnodefaultalpn: no-default-alpn must have no value") + return errors.New("bad svcbnodefaultalpn: no-default-alpn must have no value") } return nil } func (*SVCBNoDefaultAlpn) parse(b string) error { if b != "" { - return errors.New("dns: svcbnodefaultalpn: no-default-alpn must have no value") + return errors.New("bad svcbnodefaultalpn: no-default-alpn must have no value") } return nil } @@ -529,7 +529,7 @@ func (s *SVCBPort) copy() SVCBKeyValue { return &SVCBPort{s.Port} } func (s *SVCBPort) unpack(b []byte) error { if len(b) != 2 { - return errors.New("dns: svcbport: port length is not exactly 2 octets") + return errors.New("bad svcbport: port length is not exactly 2 octets") } s.Port = binary.BigEndian.Uint16(b) return nil @@ -544,7 +544,7 @@ func (s *SVCBPort) pack() ([]byte, error) { func (s *SVCBPort) parse(b string) error { port, err := strconv.ParseUint(b, 10, 16) if err != nil { - return errors.New("dns: svcbport: port out of range") + return errors.New("bad svcbport: port out of range") } s.Port = uint16(port) return nil @@ -577,7 +577,7 @@ func (s *SVCBIPv4Hint) pack() ([]byte, error) { for _, e := range s.Hint { x := e.To4() if x == nil { - return nil, errors.New("dns: svcbipv4hint: expected ipv4, hint is ipv6") + return nil, errors.New("bad svcbipv4hint: expected ipv4, hint is ipv6") } b = append(b, x...) } @@ -586,7 +586,7 @@ func (s *SVCBIPv4Hint) pack() ([]byte, error) { func (s *SVCBIPv4Hint) unpack(b []byte) error { if len(b) == 0 || len(b)%4 != 0 { - return errors.New("dns: svcbipv4hint: ipv4 address byte array length is not a multiple of 4") + return errors.New("bad svcbipv4hint: ipv4 address byte array length is not a multiple of 4") } b = cloneSlice(b) x := make([]net.IP, 0, len(b)/4) @@ -611,10 +611,10 @@ func (s *SVCBIPv4Hint) String() string { func (s *SVCBIPv4Hint) parse(b string) error { if b == "" { - return errors.New("dns: svcbipv4hint: empty hint") + return errors.New("bad svcbipv4hint: empty hint") } if strings.Contains(b, ":") { - return errors.New("dns: svcbipv4hint: expected ipv4, got ipv6") + return errors.New("bad svcbipv4hint: expected ipv4, got ipv6") } hint := make([]net.IP, 0, strings.Count(b, ",")+1) @@ -623,7 +623,7 @@ func (s *SVCBIPv4Hint) parse(b string) error { e, b, _ = strings.Cut(b, ",") ip := net.ParseIP(e).To4() if ip == nil { - return errors.New("dns: svcbipv4hint: bad ip") + return errors.New("bad svcbipv4hint: bad ip") } hint = append(hint, ip) } @@ -671,7 +671,7 @@ func (s *SVCBECHConfig) unpack(b []byte) error { func (s *SVCBECHConfig) parse(b string) error { x, err := fromBase64([]byte(b)) if err != nil { - return errors.New("dns: svcbech: bad base64 ech") + return errors.New("bad svcbech: bad base64 ech") } s.ECH = x return nil @@ -699,7 +699,7 @@ func (s *SVCBIPv6Hint) pack() ([]byte, error) { b := make([]byte, 0, 16*len(s.Hint)) for _, e := range s.Hint { if len(e) != net.IPv6len || e.To4() != nil { - return nil, errors.New("dns: svcbipv6hint: expected ipv6, hint is ipv4") + return nil, errors.New("bad svcbipv6hint: expected ipv6, hint is ipv4") } b = append(b, e...) } @@ -708,14 +708,14 @@ func (s *SVCBIPv6Hint) pack() ([]byte, error) { func (s *SVCBIPv6Hint) unpack(b []byte) error { if len(b) == 0 || len(b)%16 != 0 { - return errors.New("dns: svcbipv6hint: ipv6 address byte array length not a multiple of 16") + return errors.New("bas svcbipv6hint: ipv6 address byte array length not a multiple of 16") } b = cloneSlice(b) x := make([]net.IP, 0, len(b)/16) for i := 0; i < len(b); i += 16 { ip := net.IP(b[i : i+16]) if ip.To4() != nil { - return errors.New("dns: svcbipv6hint: expected ipv6, got ipv4") + return errors.New("bad svcbipv6hint: expected ipv6, got ipv4") } x = append(x, ip) } @@ -736,7 +736,7 @@ func (s *SVCBIPv6Hint) String() string { func (s *SVCBIPv6Hint) parse(b string) error { if b == "" { - return errors.New("dns: svcbipv6hint: empty hint") + return errors.New("bad svcbipv6hint: empty hint") } hint := make([]net.IP, 0, strings.Count(b, ",")+1) @@ -745,10 +745,10 @@ func (s *SVCBIPv6Hint) parse(b string) error { e, b, _ = strings.Cut(b, ",") ip := net.ParseIP(e) if ip == nil { - return errors.New("dns: svcbipv6hint: bad ip") + return errors.New("bad svcbipv6hint: bad ip") } if ip.To4() != nil { - return errors.New("dns: svcbipv6hint: expected ipv6, got ipv4-mapped-ipv6") + return errors.New("bad svcbipv6hint: expected ipv6, got ipv4-mapped-ipv6") } hint = append(hint, ip) } @@ -800,7 +800,7 @@ func (s *SVCBDoHPath) unpack(b []byte) error { func (s *SVCBDoHPath) parse(b string) error { template, err := svcbParseParam(b) if err != nil { - return fmt.Errorf("dns: svcbdohpath: %w", err) + return fmt.Errorf("bad svcbdohpath: %w", err) } s.Template = string(template) return nil @@ -838,14 +838,14 @@ func (*SVCBOhttp) len() int { return 0 } func (*SVCBOhttp) unpack(b []byte) error { if len(b) != 0 { - return errors.New("dns: svcbotthp: svcbotthp must have no value") + return errors.New("bad svcbotthp: svcbotthp must have no value") } return nil } func (*SVCBOhttp) parse(b string) error { if b != "" { - return errors.New("dns: svcbotthp: svcbotthp must have no value") + return errors.New("bad svcbotthp: svcbotthp must have no value") } return nil } @@ -878,7 +878,7 @@ func (s *SVCBLocal) unpack(b []byte) error { func (s *SVCBLocal) parse(b string) error { data, err := svcbParseParam(b) if err != nil { - return fmt.Errorf("dns: svcblocal: svcb private/experimental key %w", err) + return fmt.Errorf("bad svcblocal: svcb private/experimental key %w", err) } s.Data = data return nil diff --git a/vendor/github.com/miekg/dns/version.go b/vendor/github.com/miekg/dns/version.go index 936dc2124..4d402489f 100644 --- a/vendor/github.com/miekg/dns/version.go +++ b/vendor/github.com/miekg/dns/version.go @@ -3,7 +3,7 @@ package dns import "fmt" // Version is current version of this library. -var Version = v{1, 1, 66} +var Version = v{1, 1, 67} // v holds the version of this library. type v struct { diff --git a/vendor/github.com/miekg/dns/zmsg.go b/vendor/github.com/miekg/dns/zmsg.go index cc09810fb..8143ddc1b 100644 --- a/vendor/github.com/miekg/dns/zmsg.go +++ b/vendor/github.com/miekg/dns/zmsg.go @@ -2,6 +2,8 @@ package dns +import "fmt" + // pack*() functions func (rr *A) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) { @@ -1222,7 +1224,7 @@ func (rr *A) unpack(msg []byte, off int) (off1 int, err error) { rr.A, off, err = unpackDataA(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("A: %w", err) } return off, nil } @@ -1233,7 +1235,7 @@ func (rr *AAAA) unpack(msg []byte, off int) (off1 int, err error) { rr.AAAA, off, err = unpackDataAAAA(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("AAAA: %w", err) } return off, nil } @@ -1244,14 +1246,14 @@ func (rr *AFSDB) unpack(msg []byte, off int) (off1 int, err error) { rr.Subtype, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("AFSDB.Subtype: %w", err) } if off == len(msg) { return off, nil } rr.Hostname, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("AFSDB.Hostname: %w", err) } return off, nil } @@ -1262,14 +1264,14 @@ func (rr *AMTRELAY) unpack(msg []byte, off int) (off1 int, err error) { rr.Precedence, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("AMTRELAY.Precedence: %w", err) } if off == len(msg) { return off, nil } rr.GatewayType, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("AMTRELAY.GatewayType: %w", err) } if off == len(msg) { return off, nil @@ -1279,7 +1281,7 @@ func (rr *AMTRELAY) unpack(msg []byte, off int) (off1 int, err error) { } rr.GatewayAddr, rr.GatewayHost, off, err = unpackIPSECGateway(msg, off, rr.GatewayType) if err != nil { - return off, err + return off, fmt.Errorf("AMTRELAY.GatewayHost: %w", err) } return off, nil } @@ -1297,7 +1299,7 @@ func (rr *APL) unpack(msg []byte, off int) (off1 int, err error) { rr.Prefixes, off, err = unpackDataApl(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("APL.Prefixes: %w", err) } return off, nil } @@ -1308,7 +1310,7 @@ func (rr *AVC) unpack(msg []byte, off int) (off1 int, err error) { rr.Txt, off, err = unpackStringTxt(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("AVC.Txt: %w", err) } return off, nil } @@ -1319,21 +1321,21 @@ func (rr *CAA) unpack(msg []byte, off int) (off1 int, err error) { rr.Flag, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CAA.Flag: %w", err) } if off == len(msg) { return off, nil } rr.Tag, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CAA.Tag: %w", err) } if off == len(msg) { return off, nil } rr.Value, off, err = unpackStringOctet(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CAA.Value: %w", err) } return off, nil } @@ -1344,28 +1346,28 @@ func (rr *CDNSKEY) unpack(msg []byte, off int) (off1 int, err error) { rr.Flags, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CDNSKEY.Flags: %w", err) } if off == len(msg) { return off, nil } rr.Protocol, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CDNSKEY.Protocol: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CDNSKEY.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("CDNSKEY.PublicKey: %w", err) } return off, nil } @@ -1376,28 +1378,28 @@ func (rr *CDS) unpack(msg []byte, off int) (off1 int, err error) { rr.KeyTag, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CDS.KeyTag: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CDS.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.DigestType, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CDS.DigestType: %w", err) } if off == len(msg) { return off, nil } rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("CDS.Digest: %w", err) } return off, nil } @@ -1408,28 +1410,28 @@ func (rr *CERT) unpack(msg []byte, off int) (off1 int, err error) { rr.Type, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CERT.Type: %w", err) } if off == len(msg) { return off, nil } rr.KeyTag, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CERT.KeyTag: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CERT.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.Certificate, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("CERT.Certificate: %w", err) } return off, nil } @@ -1440,7 +1442,7 @@ func (rr *CNAME) unpack(msg []byte, off int) (off1 int, err error) { rr.Target, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CNAME.Target: %w", err) } return off, nil } @@ -1451,21 +1453,21 @@ func (rr *CSYNC) unpack(msg []byte, off int) (off1 int, err error) { rr.Serial, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CSYNC.Serial: %w", err) } if off == len(msg) { return off, nil } rr.Flags, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CSYNC.Flags: %w", err) } if off == len(msg) { return off, nil } rr.TypeBitMap, off, err = unpackDataNsec(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("CSYNC.TypeBitMap: %w", err) } return off, nil } @@ -1476,7 +1478,7 @@ func (rr *DHCID) unpack(msg []byte, off int) (off1 int, err error) { rr.Digest, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("DHCID.Digest: %w", err) } return off, nil } @@ -1487,28 +1489,28 @@ func (rr *DLV) unpack(msg []byte, off int) (off1 int, err error) { rr.KeyTag, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DLV.KeyTag: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DLV.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.DigestType, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DLV.DigestType: %w", err) } if off == len(msg) { return off, nil } rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("DLV.Digest: %w", err) } return off, nil } @@ -1519,7 +1521,7 @@ func (rr *DNAME) unpack(msg []byte, off int) (off1 int, err error) { rr.Target, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DNAME.Target: %w", err) } return off, nil } @@ -1530,28 +1532,28 @@ func (rr *DNSKEY) unpack(msg []byte, off int) (off1 int, err error) { rr.Flags, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DNSKEY.Flags: %w", err) } if off == len(msg) { return off, nil } rr.Protocol, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DNSKEY.Protocol: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DNSKEY.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("DNSKEY.PublicKey: %w", err) } return off, nil } @@ -1562,28 +1564,28 @@ func (rr *DS) unpack(msg []byte, off int) (off1 int, err error) { rr.KeyTag, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DS.KeyTag: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DS.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.DigestType, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("DS.DigestType: %w", err) } if off == len(msg) { return off, nil } rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("DS.Digest: %w", err) } return off, nil } @@ -1594,7 +1596,7 @@ func (rr *EID) unpack(msg []byte, off int) (off1 int, err error) { rr.Endpoint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("EID.Endpoint: %w", err) } return off, nil } @@ -1605,7 +1607,7 @@ func (rr *EUI48) unpack(msg []byte, off int) (off1 int, err error) { rr.Address, off, err = unpackUint48(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("EUI48.Address: %w", err) } return off, nil } @@ -1616,7 +1618,7 @@ func (rr *EUI64) unpack(msg []byte, off int) (off1 int, err error) { rr.Address, off, err = unpackUint64(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("EUI64.Address: %w", err) } return off, nil } @@ -1627,7 +1629,7 @@ func (rr *GID) unpack(msg []byte, off int) (off1 int, err error) { rr.Gid, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("GID.Gid: %w", err) } return off, nil } @@ -1638,21 +1640,21 @@ func (rr *GPOS) unpack(msg []byte, off int) (off1 int, err error) { rr.Longitude, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("GPOS.Longitude: %w", err) } if off == len(msg) { return off, nil } rr.Latitude, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("GPOS.Latitude: %w", err) } if off == len(msg) { return off, nil } rr.Altitude, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("GPOS.Altitude: %w", err) } return off, nil } @@ -1663,14 +1665,14 @@ func (rr *HINFO) unpack(msg []byte, off int) (off1 int, err error) { rr.Cpu, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("HINFO.Cpu: %w", err) } if off == len(msg) { return off, nil } rr.Os, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("HINFO.Os: %w", err) } return off, nil } @@ -1681,21 +1683,21 @@ func (rr *HIP) unpack(msg []byte, off int) (off1 int, err error) { rr.HitLength, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("HIP.HitLength: %w", err) } if off == len(msg) { return off, nil } rr.PublicKeyAlgorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("HIP.PublicKeyAlgorithm: %w", err) } if off == len(msg) { return off, nil } rr.PublicKeyLength, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("HIP.PublicKeyLength: %w", err) } if off == len(msg) { return off, nil @@ -1710,7 +1712,7 @@ func (rr *HIP) unpack(msg []byte, off int) (off1 int, err error) { } rr.RendezvousServers, off, err = unpackDataDomainNames(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("HIP.RendezvousServers: %w", err) } return off, nil } @@ -1721,21 +1723,21 @@ func (rr *HTTPS) unpack(msg []byte, off int) (off1 int, err error) { rr.Priority, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("HTTPS.Priority: %w", err) } if off == len(msg) { return off, nil } rr.Target, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("HTTPS.Target: %w", err) } if off == len(msg) { return off, nil } rr.Value, off, err = unpackDataSVCB(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("HTTPS.Value: %w", err) } return off, nil } @@ -1746,21 +1748,21 @@ func (rr *IPSECKEY) unpack(msg []byte, off int) (off1 int, err error) { rr.Precedence, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("IPSECKEY.Precedence: %w", err) } if off == len(msg) { return off, nil } rr.GatewayType, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("IPSECKEY.GatewayType: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("IPSECKEY.Algorithm: %w", err) } if off == len(msg) { return off, nil @@ -1770,14 +1772,14 @@ func (rr *IPSECKEY) unpack(msg []byte, off int) (off1 int, err error) { } rr.GatewayAddr, rr.GatewayHost, off, err = unpackIPSECGateway(msg, off, rr.GatewayType) if err != nil { - return off, err + return off, fmt.Errorf("IPSECKEY.GatewayHost: %w", err) } if off == len(msg) { return off, nil } rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("IPSECKEY.PublicKey: %w", err) } return off, nil } @@ -1788,14 +1790,14 @@ func (rr *ISDN) unpack(msg []byte, off int) (off1 int, err error) { rr.Address, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("ISDN.Address: %w", err) } if off == len(msg) { return off, nil } rr.SubAddress, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("ISDN.SubAddress: %w", err) } return off, nil } @@ -1806,28 +1808,28 @@ func (rr *KEY) unpack(msg []byte, off int) (off1 int, err error) { rr.Flags, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("KEY.Flags: %w", err) } if off == len(msg) { return off, nil } rr.Protocol, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("KEY.Protocol: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("KEY.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("KEY.PublicKey: %w", err) } return off, nil } @@ -1838,14 +1840,14 @@ func (rr *KX) unpack(msg []byte, off int) (off1 int, err error) { rr.Preference, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("KX.Preference: %w", err) } if off == len(msg) { return off, nil } rr.Exchanger, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("KX.Exchanger: %w", err) } return off, nil } @@ -1856,14 +1858,14 @@ func (rr *L32) unpack(msg []byte, off int) (off1 int, err error) { rr.Preference, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("L32.Preference: %w", err) } if off == len(msg) { return off, nil } rr.Locator32, off, err = unpackDataA(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("L32.Locator32: %w", err) } return off, nil } @@ -1874,14 +1876,14 @@ func (rr *L64) unpack(msg []byte, off int) (off1 int, err error) { rr.Preference, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("L64.Preference: %w", err) } if off == len(msg) { return off, nil } rr.Locator64, off, err = unpackUint64(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("L64.Locator64: %w", err) } return off, nil } @@ -1892,49 +1894,49 @@ func (rr *LOC) unpack(msg []byte, off int) (off1 int, err error) { rr.Version, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("LOC.Version: %w", err) } if off == len(msg) { return off, nil } rr.Size, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("LOC.Size: %w", err) } if off == len(msg) { return off, nil } rr.HorizPre, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("LOC.HorizPre: %w", err) } if off == len(msg) { return off, nil } rr.VertPre, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("LOC.VertPre: %w", err) } if off == len(msg) { return off, nil } rr.Latitude, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("LOC.Latitude: %w", err) } if off == len(msg) { return off, nil } rr.Longitude, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("LOC.Longitude: %w", err) } if off == len(msg) { return off, nil } rr.Altitude, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("LOC.Altitude: %w", err) } return off, nil } @@ -1945,14 +1947,14 @@ func (rr *LP) unpack(msg []byte, off int) (off1 int, err error) { rr.Preference, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("LP.Preference: %w", err) } if off == len(msg) { return off, nil } rr.Fqdn, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("LP.Fqdn: %w", err) } return off, nil } @@ -1963,7 +1965,7 @@ func (rr *MB) unpack(msg []byte, off int) (off1 int, err error) { rr.Mb, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("MB.Mb: %w", err) } return off, nil } @@ -1974,7 +1976,7 @@ func (rr *MD) unpack(msg []byte, off int) (off1 int, err error) { rr.Md, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("MD.Md: %w", err) } return off, nil } @@ -1985,7 +1987,7 @@ func (rr *MF) unpack(msg []byte, off int) (off1 int, err error) { rr.Mf, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("MF.Mf: %w", err) } return off, nil } @@ -1996,7 +1998,7 @@ func (rr *MG) unpack(msg []byte, off int) (off1 int, err error) { rr.Mg, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("MG.Mg: %w", err) } return off, nil } @@ -2007,14 +2009,14 @@ func (rr *MINFO) unpack(msg []byte, off int) (off1 int, err error) { rr.Rmail, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("MINFO.Rmail: %w", err) } if off == len(msg) { return off, nil } rr.Email, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("MINFO.Email: %w", err) } return off, nil } @@ -2025,7 +2027,7 @@ func (rr *MR) unpack(msg []byte, off int) (off1 int, err error) { rr.Mr, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("MR.Mr: %w", err) } return off, nil } @@ -2036,14 +2038,14 @@ func (rr *MX) unpack(msg []byte, off int) (off1 int, err error) { rr.Preference, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("MX.Preference: %w", err) } if off == len(msg) { return off, nil } rr.Mx, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("MX.Mx: %w", err) } return off, nil } @@ -2054,42 +2056,42 @@ func (rr *NAPTR) unpack(msg []byte, off int) (off1 int, err error) { rr.Order, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NAPTR.Order: %w", err) } if off == len(msg) { return off, nil } rr.Preference, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NAPTR.Preference: %w", err) } if off == len(msg) { return off, nil } rr.Flags, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NAPTR.Flags: %w", err) } if off == len(msg) { return off, nil } rr.Service, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NAPTR.Service: %w", err) } if off == len(msg) { return off, nil } rr.Regexp, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NAPTR.Regexp: %w", err) } if off == len(msg) { return off, nil } rr.Replacement, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NAPTR.Replacement: %w", err) } return off, nil } @@ -2100,14 +2102,14 @@ func (rr *NID) unpack(msg []byte, off int) (off1 int, err error) { rr.Preference, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NID.Preference: %w", err) } if off == len(msg) { return off, nil } rr.NodeID, off, err = unpackUint64(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NID.NodeID: %w", err) } return off, nil } @@ -2118,7 +2120,7 @@ func (rr *NIMLOC) unpack(msg []byte, off int) (off1 int, err error) { rr.Locator, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("NIMLOC.Locator: %w", err) } return off, nil } @@ -2129,7 +2131,7 @@ func (rr *NINFO) unpack(msg []byte, off int) (off1 int, err error) { rr.ZSData, off, err = unpackStringTxt(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NINFO.ZSData: %w", err) } return off, nil } @@ -2140,7 +2142,7 @@ func (rr *NS) unpack(msg []byte, off int) (off1 int, err error) { rr.Ns, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NS.Ns: %w", err) } return off, nil } @@ -2151,7 +2153,7 @@ func (rr *NSAPPTR) unpack(msg []byte, off int) (off1 int, err error) { rr.Ptr, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSAPPTR.Ptr: %w", err) } return off, nil } @@ -2162,14 +2164,14 @@ func (rr *NSEC) unpack(msg []byte, off int) (off1 int, err error) { rr.NextDomain, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC.NextDomain: %w", err) } if off == len(msg) { return off, nil } rr.TypeBitMap, off, err = unpackDataNsec(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC.TypeBitMap: %w", err) } return off, nil } @@ -2180,28 +2182,28 @@ func (rr *NSEC3) unpack(msg []byte, off int) (off1 int, err error) { rr.Hash, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3.Hash: %w", err) } if off == len(msg) { return off, nil } rr.Flags, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3.Flags: %w", err) } if off == len(msg) { return off, nil } rr.Iterations, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3.Iterations: %w", err) } if off == len(msg) { return off, nil } rr.SaltLength, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3.SaltLength: %w", err) } if off == len(msg) { return off, nil @@ -2212,7 +2214,7 @@ func (rr *NSEC3) unpack(msg []byte, off int) (off1 int, err error) { } rr.HashLength, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3.HashLength: %w", err) } if off == len(msg) { return off, nil @@ -2223,7 +2225,7 @@ func (rr *NSEC3) unpack(msg []byte, off int) (off1 int, err error) { } rr.TypeBitMap, off, err = unpackDataNsec(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3.TypeBitMap: %w", err) } return off, nil } @@ -2234,28 +2236,28 @@ func (rr *NSEC3PARAM) unpack(msg []byte, off int) (off1 int, err error) { rr.Hash, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3PARAM.Hash: %w", err) } if off == len(msg) { return off, nil } rr.Flags, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3PARAM.Flags: %w", err) } if off == len(msg) { return off, nil } rr.Iterations, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3PARAM.Iterations: %w", err) } if off == len(msg) { return off, nil } rr.SaltLength, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NSEC3PARAM.SaltLength: %w", err) } if off == len(msg) { return off, nil @@ -2273,7 +2275,7 @@ func (rr *NULL) unpack(msg []byte, off int) (off1 int, err error) { rr.Data, off, err = unpackStringAny(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("NULL.Data: %w", err) } return off, nil } @@ -2291,14 +2293,14 @@ func (rr *NXT) unpack(msg []byte, off int) (off1 int, err error) { rr.NextDomain, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NXT.NextDomain: %w", err) } if off == len(msg) { return off, nil } rr.TypeBitMap, off, err = unpackDataNsec(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("NXT.TypeBitMap: %w", err) } return off, nil } @@ -2309,7 +2311,7 @@ func (rr *OPENPGPKEY) unpack(msg []byte, off int) (off1 int, err error) { rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("OPENPGPKEY.PublicKey: %w", err) } return off, nil } @@ -2320,7 +2322,7 @@ func (rr *OPT) unpack(msg []byte, off int) (off1 int, err error) { rr.Option, off, err = unpackDataOpt(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("OPT.Option: %w", err) } return off, nil } @@ -2331,7 +2333,7 @@ func (rr *PTR) unpack(msg []byte, off int) (off1 int, err error) { rr.Ptr, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("PTR.Ptr: %w", err) } return off, nil } @@ -2342,21 +2344,21 @@ func (rr *PX) unpack(msg []byte, off int) (off1 int, err error) { rr.Preference, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("PX.Preference: %w", err) } if off == len(msg) { return off, nil } rr.Map822, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("PX.Map822: %w", err) } if off == len(msg) { return off, nil } rr.Mapx400, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("PX.Mapx400: %w", err) } return off, nil } @@ -2378,7 +2380,7 @@ func (rr *RFC3597) unpack(msg []byte, off int) (off1 int, err error) { rr.Rdata, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("RFC3597.Rdata: %w", err) } return off, nil } @@ -2389,28 +2391,28 @@ func (rr *RKEY) unpack(msg []byte, off int) (off1 int, err error) { rr.Flags, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RKEY.Flags: %w", err) } if off == len(msg) { return off, nil } rr.Protocol, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RKEY.Protocol: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RKEY.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("RKEY.PublicKey: %w", err) } return off, nil } @@ -2421,14 +2423,14 @@ func (rr *RP) unpack(msg []byte, off int) (off1 int, err error) { rr.Mbox, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RP.Mbox: %w", err) } if off == len(msg) { return off, nil } rr.Txt, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RP.Txt: %w", err) } return off, nil } @@ -2439,63 +2441,63 @@ func (rr *RRSIG) unpack(msg []byte, off int) (off1 int, err error) { rr.TypeCovered, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RRSIG.TypeCovered: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RRSIG.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.Labels, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RRSIG.Labels: %w", err) } if off == len(msg) { return off, nil } rr.OrigTtl, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RRSIG.OrigTtl: %w", err) } if off == len(msg) { return off, nil } rr.Expiration, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RRSIG.Expiration: %w", err) } if off == len(msg) { return off, nil } rr.Inception, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RRSIG.Inception: %w", err) } if off == len(msg) { return off, nil } rr.KeyTag, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RRSIG.KeyTag: %w", err) } if off == len(msg) { return off, nil } rr.SignerName, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RRSIG.SignerName: %w", err) } if off == len(msg) { return off, nil } rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("RRSIG.Signature: %w", err) } return off, nil } @@ -2506,14 +2508,14 @@ func (rr *RT) unpack(msg []byte, off int) (off1 int, err error) { rr.Preference, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RT.Preference: %w", err) } if off == len(msg) { return off, nil } rr.Host, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("RT.Host: %w", err) } return off, nil } @@ -2524,63 +2526,63 @@ func (rr *SIG) unpack(msg []byte, off int) (off1 int, err error) { rr.TypeCovered, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SIG.TypeCovered: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SIG.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.Labels, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SIG.Labels: %w", err) } if off == len(msg) { return off, nil } rr.OrigTtl, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SIG.OrigTtl: %w", err) } if off == len(msg) { return off, nil } rr.Expiration, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SIG.Expiration: %w", err) } if off == len(msg) { return off, nil } rr.Inception, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SIG.Inception: %w", err) } if off == len(msg) { return off, nil } rr.KeyTag, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SIG.KeyTag: %w", err) } if off == len(msg) { return off, nil } rr.SignerName, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SIG.SignerName: %w", err) } if off == len(msg) { return off, nil } rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("SIG.Signature: %w", err) } return off, nil } @@ -2591,28 +2593,28 @@ func (rr *SMIMEA) unpack(msg []byte, off int) (off1 int, err error) { rr.Usage, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SMIMEA.Usage: %w", err) } if off == len(msg) { return off, nil } rr.Selector, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SMIMEA.Selector: %w", err) } if off == len(msg) { return off, nil } rr.MatchingType, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SMIMEA.MatchingType: %w", err) } if off == len(msg) { return off, nil } rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("SMIMEA.Certificate: %w", err) } return off, nil } @@ -2623,49 +2625,49 @@ func (rr *SOA) unpack(msg []byte, off int) (off1 int, err error) { rr.Ns, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SOA.Ns: %w", err) } if off == len(msg) { return off, nil } rr.Mbox, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SOA.Mbox: %w", err) } if off == len(msg) { return off, nil } rr.Serial, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SOA.Serial: %w", err) } if off == len(msg) { return off, nil } rr.Refresh, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SOA.Refresh: %w", err) } if off == len(msg) { return off, nil } rr.Retry, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SOA.Retry: %w", err) } if off == len(msg) { return off, nil } rr.Expire, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SOA.Expire: %w", err) } if off == len(msg) { return off, nil } rr.Minttl, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SOA.Minttl: %w", err) } return off, nil } @@ -2676,7 +2678,7 @@ func (rr *SPF) unpack(msg []byte, off int) (off1 int, err error) { rr.Txt, off, err = unpackStringTxt(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SPF.Txt: %w", err) } return off, nil } @@ -2687,28 +2689,28 @@ func (rr *SRV) unpack(msg []byte, off int) (off1 int, err error) { rr.Priority, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SRV.Priority: %w", err) } if off == len(msg) { return off, nil } rr.Weight, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SRV.Weight: %w", err) } if off == len(msg) { return off, nil } rr.Port, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SRV.Port: %w", err) } if off == len(msg) { return off, nil } rr.Target, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SRV.Target: %w", err) } return off, nil } @@ -2719,21 +2721,21 @@ func (rr *SSHFP) unpack(msg []byte, off int) (off1 int, err error) { rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SSHFP.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.Type, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SSHFP.Type: %w", err) } if off == len(msg) { return off, nil } rr.FingerPrint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("SSHFP.FingerPrint: %w", err) } return off, nil } @@ -2744,21 +2746,21 @@ func (rr *SVCB) unpack(msg []byte, off int) (off1 int, err error) { rr.Priority, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SVCB.Priority: %w", err) } if off == len(msg) { return off, nil } rr.Target, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SVCB.Target: %w", err) } if off == len(msg) { return off, nil } rr.Value, off, err = unpackDataSVCB(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("SVCB.Value: %w", err) } return off, nil } @@ -2769,28 +2771,28 @@ func (rr *TA) unpack(msg []byte, off int) (off1 int, err error) { rr.KeyTag, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TA.KeyTag: %w", err) } if off == len(msg) { return off, nil } rr.Algorithm, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TA.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.DigestType, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TA.DigestType: %w", err) } if off == len(msg) { return off, nil } rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("TA.Digest: %w", err) } return off, nil } @@ -2801,14 +2803,14 @@ func (rr *TALINK) unpack(msg []byte, off int) (off1 int, err error) { rr.PreviousName, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TALINK.PreviousName: %w", err) } if off == len(msg) { return off, nil } rr.NextName, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TALINK.NextName: %w", err) } return off, nil } @@ -2819,42 +2821,42 @@ func (rr *TKEY) unpack(msg []byte, off int) (off1 int, err error) { rr.Algorithm, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TKEY.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.Inception, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TKEY.Inception: %w", err) } if off == len(msg) { return off, nil } rr.Expiration, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TKEY.Expiration: %w", err) } if off == len(msg) { return off, nil } rr.Mode, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TKEY.Mode: %w", err) } if off == len(msg) { return off, nil } rr.Error, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TKEY.Error: %w", err) } if off == len(msg) { return off, nil } rr.KeySize, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TKEY.KeySize: %w", err) } if off == len(msg) { return off, nil @@ -2865,7 +2867,7 @@ func (rr *TKEY) unpack(msg []byte, off int) (off1 int, err error) { } rr.OtherLen, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TKEY.OtherLen: %w", err) } if off == len(msg) { return off, nil @@ -2883,28 +2885,28 @@ func (rr *TLSA) unpack(msg []byte, off int) (off1 int, err error) { rr.Usage, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TLSA.Usage: %w", err) } if off == len(msg) { return off, nil } rr.Selector, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TLSA.Selector: %w", err) } if off == len(msg) { return off, nil } rr.MatchingType, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TLSA.MatchingType: %w", err) } if off == len(msg) { return off, nil } rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("TLSA.Certificate: %w", err) } return off, nil } @@ -2915,28 +2917,28 @@ func (rr *TSIG) unpack(msg []byte, off int) (off1 int, err error) { rr.Algorithm, off, err = UnpackDomainName(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TSIG.Algorithm: %w", err) } if off == len(msg) { return off, nil } rr.TimeSigned, off, err = unpackUint48(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TSIG.TimeSigned: %w", err) } if off == len(msg) { return off, nil } rr.Fudge, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TSIG.Fudge: %w", err) } if off == len(msg) { return off, nil } rr.MACSize, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TSIG.MACSize: %w", err) } if off == len(msg) { return off, nil @@ -2947,21 +2949,21 @@ func (rr *TSIG) unpack(msg []byte, off int) (off1 int, err error) { } rr.OrigId, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TSIG.OrigId: %w", err) } if off == len(msg) { return off, nil } rr.Error, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TSIG.Error: %w", err) } if off == len(msg) { return off, nil } rr.OtherLen, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TSIG.OtherLen: %w", err) } if off == len(msg) { return off, nil @@ -2979,7 +2981,7 @@ func (rr *TXT) unpack(msg []byte, off int) (off1 int, err error) { rr.Txt, off, err = unpackStringTxt(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("TXT.Txt: %w", err) } return off, nil } @@ -2990,7 +2992,7 @@ func (rr *UID) unpack(msg []byte, off int) (off1 int, err error) { rr.Uid, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("UID.Uid: %w", err) } return off, nil } @@ -3001,7 +3003,7 @@ func (rr *UINFO) unpack(msg []byte, off int) (off1 int, err error) { rr.Uinfo, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("UINFO.Uinfo: %w", err) } return off, nil } @@ -3012,21 +3014,21 @@ func (rr *URI) unpack(msg []byte, off int) (off1 int, err error) { rr.Priority, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("URI.Priority: %w", err) } if off == len(msg) { return off, nil } rr.Weight, off, err = unpackUint16(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("URI.Weight: %w", err) } if off == len(msg) { return off, nil } rr.Target, off, err = unpackStringOctet(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("URI.Target: %w", err) } return off, nil } @@ -3037,7 +3039,7 @@ func (rr *X25) unpack(msg []byte, off int) (off1 int, err error) { rr.PSDNAddress, off, err = unpackString(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("X25.PSDNAddress: %w", err) } return off, nil } @@ -3048,28 +3050,28 @@ func (rr *ZONEMD) unpack(msg []byte, off int) (off1 int, err error) { rr.Serial, off, err = unpackUint32(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("ZONEMD.Serial: %w", err) } if off == len(msg) { return off, nil } rr.Scheme, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("ZONEMD.Scheme: %w", err) } if off == len(msg) { return off, nil } rr.Hash, off, err = unpackUint8(msg, off) if err != nil { - return off, err + return off, fmt.Errorf("ZONEMD.Hash: %w", err) } if off == len(msg) { return off, nil } rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength)) if err != nil { - return off, err + return off, fmt.Errorf("ZONEMD.Digest: %w", err) } return off, nil } |
