zmsg.go raw
1 // Code generated by "go run msg_generate.go"; DO NOT EDIT.
2
3 package dns
4
5 import "fmt"
6
7 // pack*() functions
8
9 func (rr *A) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
10 off, err = packDataA(rr.A, msg, off)
11 if err != nil {
12 return off, err
13 }
14 return off, nil
15 }
16
17 func (rr *AAAA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
18 off, err = packDataAAAA(rr.AAAA, msg, off)
19 if err != nil {
20 return off, err
21 }
22 return off, nil
23 }
24
25 func (rr *AFSDB) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
26 off, err = packUint16(rr.Subtype, msg, off)
27 if err != nil {
28 return off, err
29 }
30 off, err = packDomainName(rr.Hostname, msg, off, compression, false)
31 if err != nil {
32 return off, err
33 }
34 return off, nil
35 }
36
37 func (rr *AMTRELAY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
38 off, err = packUint8(rr.Precedence, msg, off)
39 if err != nil {
40 return off, err
41 }
42 off, err = packUint8(rr.GatewayType, msg, off)
43 if err != nil {
44 return off, err
45 }
46 off, err = packIPSECGateway(rr.GatewayAddr, rr.GatewayHost, msg, off, rr.GatewayType, compression, false)
47 if err != nil {
48 return off, err
49 }
50 return off, nil
51 }
52
53 func (rr *ANY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
54 return off, nil
55 }
56
57 func (rr *APL) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
58 off, err = packDataApl(rr.Prefixes, msg, off)
59 if err != nil {
60 return off, err
61 }
62 return off, nil
63 }
64
65 func (rr *AVC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
66 off, err = packStringTxt(rr.Txt, msg, off)
67 if err != nil {
68 return off, err
69 }
70 return off, nil
71 }
72
73 func (rr *CAA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
74 off, err = packUint8(rr.Flag, msg, off)
75 if err != nil {
76 return off, err
77 }
78 off, err = packString(rr.Tag, msg, off)
79 if err != nil {
80 return off, err
81 }
82 off, err = packStringOctet(rr.Value, msg, off)
83 if err != nil {
84 return off, err
85 }
86 return off, nil
87 }
88
89 func (rr *CDNSKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
90 off, err = packUint16(rr.Flags, msg, off)
91 if err != nil {
92 return off, err
93 }
94 off, err = packUint8(rr.Protocol, msg, off)
95 if err != nil {
96 return off, err
97 }
98 off, err = packUint8(rr.Algorithm, msg, off)
99 if err != nil {
100 return off, err
101 }
102 off, err = packStringBase64(rr.PublicKey, msg, off)
103 if err != nil {
104 return off, err
105 }
106 return off, nil
107 }
108
109 func (rr *CDS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
110 off, err = packUint16(rr.KeyTag, msg, off)
111 if err != nil {
112 return off, err
113 }
114 off, err = packUint8(rr.Algorithm, msg, off)
115 if err != nil {
116 return off, err
117 }
118 off, err = packUint8(rr.DigestType, msg, off)
119 if err != nil {
120 return off, err
121 }
122 off, err = packStringHex(rr.Digest, msg, off)
123 if err != nil {
124 return off, err
125 }
126 return off, nil
127 }
128
129 func (rr *CERT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
130 off, err = packUint16(rr.Type, msg, off)
131 if err != nil {
132 return off, err
133 }
134 off, err = packUint16(rr.KeyTag, msg, off)
135 if err != nil {
136 return off, err
137 }
138 off, err = packUint8(rr.Algorithm, msg, off)
139 if err != nil {
140 return off, err
141 }
142 off, err = packStringBase64(rr.Certificate, msg, off)
143 if err != nil {
144 return off, err
145 }
146 return off, nil
147 }
148
149 func (rr *CNAME) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
150 off, err = packDomainName(rr.Target, msg, off, compression, compress)
151 if err != nil {
152 return off, err
153 }
154 return off, nil
155 }
156
157 func (rr *CSYNC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
158 off, err = packUint32(rr.Serial, msg, off)
159 if err != nil {
160 return off, err
161 }
162 off, err = packUint16(rr.Flags, msg, off)
163 if err != nil {
164 return off, err
165 }
166 off, err = packDataNsec(rr.TypeBitMap, msg, off)
167 if err != nil {
168 return off, err
169 }
170 return off, nil
171 }
172
173 func (rr *DHCID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
174 off, err = packStringBase64(rr.Digest, msg, off)
175 if err != nil {
176 return off, err
177 }
178 return off, nil
179 }
180
181 func (rr *DLV) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
182 off, err = packUint16(rr.KeyTag, msg, off)
183 if err != nil {
184 return off, err
185 }
186 off, err = packUint8(rr.Algorithm, msg, off)
187 if err != nil {
188 return off, err
189 }
190 off, err = packUint8(rr.DigestType, msg, off)
191 if err != nil {
192 return off, err
193 }
194 off, err = packStringHex(rr.Digest, msg, off)
195 if err != nil {
196 return off, err
197 }
198 return off, nil
199 }
200
201 func (rr *DNAME) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
202 off, err = packDomainName(rr.Target, msg, off, compression, false)
203 if err != nil {
204 return off, err
205 }
206 return off, nil
207 }
208
209 func (rr *DNSKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
210 off, err = packUint16(rr.Flags, msg, off)
211 if err != nil {
212 return off, err
213 }
214 off, err = packUint8(rr.Protocol, msg, off)
215 if err != nil {
216 return off, err
217 }
218 off, err = packUint8(rr.Algorithm, msg, off)
219 if err != nil {
220 return off, err
221 }
222 off, err = packStringBase64(rr.PublicKey, msg, off)
223 if err != nil {
224 return off, err
225 }
226 return off, nil
227 }
228
229 func (rr *DS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
230 off, err = packUint16(rr.KeyTag, msg, off)
231 if err != nil {
232 return off, err
233 }
234 off, err = packUint8(rr.Algorithm, msg, off)
235 if err != nil {
236 return off, err
237 }
238 off, err = packUint8(rr.DigestType, msg, off)
239 if err != nil {
240 return off, err
241 }
242 off, err = packStringHex(rr.Digest, msg, off)
243 if err != nil {
244 return off, err
245 }
246 return off, nil
247 }
248
249 func (rr *EID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
250 off, err = packStringHex(rr.Endpoint, msg, off)
251 if err != nil {
252 return off, err
253 }
254 return off, nil
255 }
256
257 func (rr *EUI48) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
258 off, err = packUint48(rr.Address, msg, off)
259 if err != nil {
260 return off, err
261 }
262 return off, nil
263 }
264
265 func (rr *EUI64) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
266 off, err = packUint64(rr.Address, msg, off)
267 if err != nil {
268 return off, err
269 }
270 return off, nil
271 }
272
273 func (rr *GID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
274 off, err = packUint32(rr.Gid, msg, off)
275 if err != nil {
276 return off, err
277 }
278 return off, nil
279 }
280
281 func (rr *GPOS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
282 off, err = packString(rr.Longitude, msg, off)
283 if err != nil {
284 return off, err
285 }
286 off, err = packString(rr.Latitude, msg, off)
287 if err != nil {
288 return off, err
289 }
290 off, err = packString(rr.Altitude, msg, off)
291 if err != nil {
292 return off, err
293 }
294 return off, nil
295 }
296
297 func (rr *HINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
298 off, err = packString(rr.Cpu, msg, off)
299 if err != nil {
300 return off, err
301 }
302 off, err = packString(rr.Os, msg, off)
303 if err != nil {
304 return off, err
305 }
306 return off, nil
307 }
308
309 func (rr *HIP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
310 off, err = packUint8(rr.HitLength, msg, off)
311 if err != nil {
312 return off, err
313 }
314 off, err = packUint8(rr.PublicKeyAlgorithm, msg, off)
315 if err != nil {
316 return off, err
317 }
318 off, err = packUint16(rr.PublicKeyLength, msg, off)
319 if err != nil {
320 return off, err
321 }
322 off, err = packStringHex(rr.Hit, msg, off)
323 if err != nil {
324 return off, err
325 }
326 off, err = packStringBase64(rr.PublicKey, msg, off)
327 if err != nil {
328 return off, err
329 }
330 off, err = packDataDomainNames(rr.RendezvousServers, msg, off, compression, false)
331 if err != nil {
332 return off, err
333 }
334 return off, nil
335 }
336
337 func (rr *HTTPS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
338 off, err = packUint16(rr.Priority, msg, off)
339 if err != nil {
340 return off, err
341 }
342 off, err = packDomainName(rr.Target, msg, off, compression, false)
343 if err != nil {
344 return off, err
345 }
346 off, err = packDataSVCB(rr.Value, msg, off)
347 if err != nil {
348 return off, err
349 }
350 return off, nil
351 }
352
353 func (rr *IPSECKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
354 off, err = packUint8(rr.Precedence, msg, off)
355 if err != nil {
356 return off, err
357 }
358 off, err = packUint8(rr.GatewayType, msg, off)
359 if err != nil {
360 return off, err
361 }
362 off, err = packUint8(rr.Algorithm, msg, off)
363 if err != nil {
364 return off, err
365 }
366 off, err = packIPSECGateway(rr.GatewayAddr, rr.GatewayHost, msg, off, rr.GatewayType, compression, false)
367 if err != nil {
368 return off, err
369 }
370 off, err = packStringBase64(rr.PublicKey, msg, off)
371 if err != nil {
372 return off, err
373 }
374 return off, nil
375 }
376
377 func (rr *ISDN) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
378 off, err = packString(rr.Address, msg, off)
379 if err != nil {
380 return off, err
381 }
382 off, err = packString(rr.SubAddress, msg, off)
383 if err != nil {
384 return off, err
385 }
386 return off, nil
387 }
388
389 func (rr *KEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
390 off, err = packUint16(rr.Flags, msg, off)
391 if err != nil {
392 return off, err
393 }
394 off, err = packUint8(rr.Protocol, msg, off)
395 if err != nil {
396 return off, err
397 }
398 off, err = packUint8(rr.Algorithm, msg, off)
399 if err != nil {
400 return off, err
401 }
402 off, err = packStringBase64(rr.PublicKey, msg, off)
403 if err != nil {
404 return off, err
405 }
406 return off, nil
407 }
408
409 func (rr *KX) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
410 off, err = packUint16(rr.Preference, msg, off)
411 if err != nil {
412 return off, err
413 }
414 off, err = packDomainName(rr.Exchanger, msg, off, compression, false)
415 if err != nil {
416 return off, err
417 }
418 return off, nil
419 }
420
421 func (rr *L32) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
422 off, err = packUint16(rr.Preference, msg, off)
423 if err != nil {
424 return off, err
425 }
426 off, err = packDataA(rr.Locator32, msg, off)
427 if err != nil {
428 return off, err
429 }
430 return off, nil
431 }
432
433 func (rr *L64) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
434 off, err = packUint16(rr.Preference, msg, off)
435 if err != nil {
436 return off, err
437 }
438 off, err = packUint64(rr.Locator64, msg, off)
439 if err != nil {
440 return off, err
441 }
442 return off, nil
443 }
444
445 func (rr *LOC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
446 off, err = packUint8(rr.Version, msg, off)
447 if err != nil {
448 return off, err
449 }
450 off, err = packUint8(rr.Size, msg, off)
451 if err != nil {
452 return off, err
453 }
454 off, err = packUint8(rr.HorizPre, msg, off)
455 if err != nil {
456 return off, err
457 }
458 off, err = packUint8(rr.VertPre, msg, off)
459 if err != nil {
460 return off, err
461 }
462 off, err = packUint32(rr.Latitude, msg, off)
463 if err != nil {
464 return off, err
465 }
466 off, err = packUint32(rr.Longitude, msg, off)
467 if err != nil {
468 return off, err
469 }
470 off, err = packUint32(rr.Altitude, msg, off)
471 if err != nil {
472 return off, err
473 }
474 return off, nil
475 }
476
477 func (rr *LP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
478 off, err = packUint16(rr.Preference, msg, off)
479 if err != nil {
480 return off, err
481 }
482 off, err = packDomainName(rr.Fqdn, msg, off, compression, false)
483 if err != nil {
484 return off, err
485 }
486 return off, nil
487 }
488
489 func (rr *MB) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
490 off, err = packDomainName(rr.Mb, msg, off, compression, compress)
491 if err != nil {
492 return off, err
493 }
494 return off, nil
495 }
496
497 func (rr *MD) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
498 off, err = packDomainName(rr.Md, msg, off, compression, compress)
499 if err != nil {
500 return off, err
501 }
502 return off, nil
503 }
504
505 func (rr *MF) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
506 off, err = packDomainName(rr.Mf, msg, off, compression, compress)
507 if err != nil {
508 return off, err
509 }
510 return off, nil
511 }
512
513 func (rr *MG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
514 off, err = packDomainName(rr.Mg, msg, off, compression, compress)
515 if err != nil {
516 return off, err
517 }
518 return off, nil
519 }
520
521 func (rr *MINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
522 off, err = packDomainName(rr.Rmail, msg, off, compression, compress)
523 if err != nil {
524 return off, err
525 }
526 off, err = packDomainName(rr.Email, msg, off, compression, compress)
527 if err != nil {
528 return off, err
529 }
530 return off, nil
531 }
532
533 func (rr *MR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
534 off, err = packDomainName(rr.Mr, msg, off, compression, compress)
535 if err != nil {
536 return off, err
537 }
538 return off, nil
539 }
540
541 func (rr *MX) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
542 off, err = packUint16(rr.Preference, msg, off)
543 if err != nil {
544 return off, err
545 }
546 off, err = packDomainName(rr.Mx, msg, off, compression, compress)
547 if err != nil {
548 return off, err
549 }
550 return off, nil
551 }
552
553 func (rr *NAPTR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
554 off, err = packUint16(rr.Order, msg, off)
555 if err != nil {
556 return off, err
557 }
558 off, err = packUint16(rr.Preference, msg, off)
559 if err != nil {
560 return off, err
561 }
562 off, err = packString(rr.Flags, msg, off)
563 if err != nil {
564 return off, err
565 }
566 off, err = packString(rr.Service, msg, off)
567 if err != nil {
568 return off, err
569 }
570 off, err = packString(rr.Regexp, msg, off)
571 if err != nil {
572 return off, err
573 }
574 off, err = packDomainName(rr.Replacement, msg, off, compression, false)
575 if err != nil {
576 return off, err
577 }
578 return off, nil
579 }
580
581 func (rr *NID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
582 off, err = packUint16(rr.Preference, msg, off)
583 if err != nil {
584 return off, err
585 }
586 off, err = packUint64(rr.NodeID, msg, off)
587 if err != nil {
588 return off, err
589 }
590 return off, nil
591 }
592
593 func (rr *NIMLOC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
594 off, err = packStringHex(rr.Locator, msg, off)
595 if err != nil {
596 return off, err
597 }
598 return off, nil
599 }
600
601 func (rr *NINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
602 off, err = packStringTxt(rr.ZSData, msg, off)
603 if err != nil {
604 return off, err
605 }
606 return off, nil
607 }
608
609 func (rr *NS) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
610 off, err = packDomainName(rr.Ns, msg, off, compression, compress)
611 if err != nil {
612 return off, err
613 }
614 return off, nil
615 }
616
617 func (rr *NSAPPTR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
618 off, err = packDomainName(rr.Ptr, msg, off, compression, false)
619 if err != nil {
620 return off, err
621 }
622 return off, nil
623 }
624
625 func (rr *NSEC) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
626 off, err = packDomainName(rr.NextDomain, msg, off, compression, false)
627 if err != nil {
628 return off, err
629 }
630 off, err = packDataNsec(rr.TypeBitMap, msg, off)
631 if err != nil {
632 return off, err
633 }
634 return off, nil
635 }
636
637 func (rr *NSEC3) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
638 off, err = packUint8(rr.Hash, msg, off)
639 if err != nil {
640 return off, err
641 }
642 off, err = packUint8(rr.Flags, msg, off)
643 if err != nil {
644 return off, err
645 }
646 off, err = packUint16(rr.Iterations, msg, off)
647 if err != nil {
648 return off, err
649 }
650 off, err = packUint8(rr.SaltLength, msg, off)
651 if err != nil {
652 return off, err
653 }
654 // Only pack salt if value is not "-", i.e. empty
655 if rr.Salt != "-" {
656 off, err = packStringHex(rr.Salt, msg, off)
657 if err != nil {
658 return off, err
659 }
660 }
661 off, err = packUint8(rr.HashLength, msg, off)
662 if err != nil {
663 return off, err
664 }
665 off, err = packStringBase32(rr.NextDomain, msg, off)
666 if err != nil {
667 return off, err
668 }
669 off, err = packDataNsec(rr.TypeBitMap, msg, off)
670 if err != nil {
671 return off, err
672 }
673 return off, nil
674 }
675
676 func (rr *NSEC3PARAM) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
677 off, err = packUint8(rr.Hash, msg, off)
678 if err != nil {
679 return off, err
680 }
681 off, err = packUint8(rr.Flags, msg, off)
682 if err != nil {
683 return off, err
684 }
685 off, err = packUint16(rr.Iterations, msg, off)
686 if err != nil {
687 return off, err
688 }
689 off, err = packUint8(rr.SaltLength, msg, off)
690 if err != nil {
691 return off, err
692 }
693 // Only pack salt if value is not "-", i.e. empty
694 if rr.Salt != "-" {
695 off, err = packStringHex(rr.Salt, msg, off)
696 if err != nil {
697 return off, err
698 }
699 }
700 return off, nil
701 }
702
703 func (rr *NULL) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
704 off, err = packStringAny(rr.Data, msg, off)
705 if err != nil {
706 return off, err
707 }
708 return off, nil
709 }
710
711 func (rr *NXNAME) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
712 return off, nil
713 }
714
715 func (rr *NXT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
716 off, err = packDomainName(rr.NextDomain, msg, off, compression, false)
717 if err != nil {
718 return off, err
719 }
720 off, err = packDataNsec(rr.TypeBitMap, msg, off)
721 if err != nil {
722 return off, err
723 }
724 return off, nil
725 }
726
727 func (rr *OPENPGPKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
728 off, err = packStringBase64(rr.PublicKey, msg, off)
729 if err != nil {
730 return off, err
731 }
732 return off, nil
733 }
734
735 func (rr *OPT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
736 off, err = packDataOpt(rr.Option, msg, off)
737 if err != nil {
738 return off, err
739 }
740 return off, nil
741 }
742
743 func (rr *PTR) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
744 off, err = packDomainName(rr.Ptr, msg, off, compression, compress)
745 if err != nil {
746 return off, err
747 }
748 return off, nil
749 }
750
751 func (rr *PX) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
752 off, err = packUint16(rr.Preference, msg, off)
753 if err != nil {
754 return off, err
755 }
756 off, err = packDomainName(rr.Map822, msg, off, compression, false)
757 if err != nil {
758 return off, err
759 }
760 off, err = packDomainName(rr.Mapx400, msg, off, compression, false)
761 if err != nil {
762 return off, err
763 }
764 return off, nil
765 }
766
767 func (rr *RESINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
768 off, err = packStringTxt(rr.Txt, msg, off)
769 if err != nil {
770 return off, err
771 }
772 return off, nil
773 }
774
775 func (rr *RFC3597) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
776 off, err = packStringHex(rr.Rdata, msg, off)
777 if err != nil {
778 return off, err
779 }
780 return off, nil
781 }
782
783 func (rr *RKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
784 off, err = packUint16(rr.Flags, msg, off)
785 if err != nil {
786 return off, err
787 }
788 off, err = packUint8(rr.Protocol, msg, off)
789 if err != nil {
790 return off, err
791 }
792 off, err = packUint8(rr.Algorithm, msg, off)
793 if err != nil {
794 return off, err
795 }
796 off, err = packStringBase64(rr.PublicKey, msg, off)
797 if err != nil {
798 return off, err
799 }
800 return off, nil
801 }
802
803 func (rr *RP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
804 off, err = packDomainName(rr.Mbox, msg, off, compression, false)
805 if err != nil {
806 return off, err
807 }
808 off, err = packDomainName(rr.Txt, msg, off, compression, false)
809 if err != nil {
810 return off, err
811 }
812 return off, nil
813 }
814
815 func (rr *RRSIG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
816 off, err = packUint16(rr.TypeCovered, msg, off)
817 if err != nil {
818 return off, err
819 }
820 off, err = packUint8(rr.Algorithm, msg, off)
821 if err != nil {
822 return off, err
823 }
824 off, err = packUint8(rr.Labels, msg, off)
825 if err != nil {
826 return off, err
827 }
828 off, err = packUint32(rr.OrigTtl, msg, off)
829 if err != nil {
830 return off, err
831 }
832 off, err = packUint32(rr.Expiration, msg, off)
833 if err != nil {
834 return off, err
835 }
836 off, err = packUint32(rr.Inception, msg, off)
837 if err != nil {
838 return off, err
839 }
840 off, err = packUint16(rr.KeyTag, msg, off)
841 if err != nil {
842 return off, err
843 }
844 off, err = packDomainName(rr.SignerName, msg, off, compression, false)
845 if err != nil {
846 return off, err
847 }
848 off, err = packStringBase64(rr.Signature, msg, off)
849 if err != nil {
850 return off, err
851 }
852 return off, nil
853 }
854
855 func (rr *RT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
856 off, err = packUint16(rr.Preference, msg, off)
857 if err != nil {
858 return off, err
859 }
860 off, err = packDomainName(rr.Host, msg, off, compression, false)
861 if err != nil {
862 return off, err
863 }
864 return off, nil
865 }
866
867 func (rr *SIG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
868 off, err = packUint16(rr.TypeCovered, msg, off)
869 if err != nil {
870 return off, err
871 }
872 off, err = packUint8(rr.Algorithm, msg, off)
873 if err != nil {
874 return off, err
875 }
876 off, err = packUint8(rr.Labels, msg, off)
877 if err != nil {
878 return off, err
879 }
880 off, err = packUint32(rr.OrigTtl, msg, off)
881 if err != nil {
882 return off, err
883 }
884 off, err = packUint32(rr.Expiration, msg, off)
885 if err != nil {
886 return off, err
887 }
888 off, err = packUint32(rr.Inception, msg, off)
889 if err != nil {
890 return off, err
891 }
892 off, err = packUint16(rr.KeyTag, msg, off)
893 if err != nil {
894 return off, err
895 }
896 off, err = packDomainName(rr.SignerName, msg, off, compression, false)
897 if err != nil {
898 return off, err
899 }
900 off, err = packStringBase64(rr.Signature, msg, off)
901 if err != nil {
902 return off, err
903 }
904 return off, nil
905 }
906
907 func (rr *SMIMEA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
908 off, err = packUint8(rr.Usage, msg, off)
909 if err != nil {
910 return off, err
911 }
912 off, err = packUint8(rr.Selector, msg, off)
913 if err != nil {
914 return off, err
915 }
916 off, err = packUint8(rr.MatchingType, msg, off)
917 if err != nil {
918 return off, err
919 }
920 off, err = packStringHex(rr.Certificate, msg, off)
921 if err != nil {
922 return off, err
923 }
924 return off, nil
925 }
926
927 func (rr *SOA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
928 off, err = packDomainName(rr.Ns, msg, off, compression, compress)
929 if err != nil {
930 return off, err
931 }
932 off, err = packDomainName(rr.Mbox, msg, off, compression, compress)
933 if err != nil {
934 return off, err
935 }
936 off, err = packUint32(rr.Serial, msg, off)
937 if err != nil {
938 return off, err
939 }
940 off, err = packUint32(rr.Refresh, msg, off)
941 if err != nil {
942 return off, err
943 }
944 off, err = packUint32(rr.Retry, msg, off)
945 if err != nil {
946 return off, err
947 }
948 off, err = packUint32(rr.Expire, msg, off)
949 if err != nil {
950 return off, err
951 }
952 off, err = packUint32(rr.Minttl, msg, off)
953 if err != nil {
954 return off, err
955 }
956 return off, nil
957 }
958
959 func (rr *SPF) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
960 off, err = packStringTxt(rr.Txt, msg, off)
961 if err != nil {
962 return off, err
963 }
964 return off, nil
965 }
966
967 func (rr *SRV) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
968 off, err = packUint16(rr.Priority, msg, off)
969 if err != nil {
970 return off, err
971 }
972 off, err = packUint16(rr.Weight, msg, off)
973 if err != nil {
974 return off, err
975 }
976 off, err = packUint16(rr.Port, msg, off)
977 if err != nil {
978 return off, err
979 }
980 off, err = packDomainName(rr.Target, msg, off, compression, false)
981 if err != nil {
982 return off, err
983 }
984 return off, nil
985 }
986
987 func (rr *SSHFP) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
988 off, err = packUint8(rr.Algorithm, msg, off)
989 if err != nil {
990 return off, err
991 }
992 off, err = packUint8(rr.Type, msg, off)
993 if err != nil {
994 return off, err
995 }
996 off, err = packStringHex(rr.FingerPrint, msg, off)
997 if err != nil {
998 return off, err
999 }
1000 return off, nil
1001 }
1002
1003 func (rr *SVCB) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1004 off, err = packUint16(rr.Priority, msg, off)
1005 if err != nil {
1006 return off, err
1007 }
1008 off, err = packDomainName(rr.Target, msg, off, compression, false)
1009 if err != nil {
1010 return off, err
1011 }
1012 off, err = packDataSVCB(rr.Value, msg, off)
1013 if err != nil {
1014 return off, err
1015 }
1016 return off, nil
1017 }
1018
1019 func (rr *TA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1020 off, err = packUint16(rr.KeyTag, msg, off)
1021 if err != nil {
1022 return off, err
1023 }
1024 off, err = packUint8(rr.Algorithm, msg, off)
1025 if err != nil {
1026 return off, err
1027 }
1028 off, err = packUint8(rr.DigestType, msg, off)
1029 if err != nil {
1030 return off, err
1031 }
1032 off, err = packStringHex(rr.Digest, msg, off)
1033 if err != nil {
1034 return off, err
1035 }
1036 return off, nil
1037 }
1038
1039 func (rr *TALINK) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1040 off, err = packDomainName(rr.PreviousName, msg, off, compression, false)
1041 if err != nil {
1042 return off, err
1043 }
1044 off, err = packDomainName(rr.NextName, msg, off, compression, false)
1045 if err != nil {
1046 return off, err
1047 }
1048 return off, nil
1049 }
1050
1051 func (rr *TKEY) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1052 off, err = packDomainName(rr.Algorithm, msg, off, compression, false)
1053 if err != nil {
1054 return off, err
1055 }
1056 off, err = packUint32(rr.Inception, msg, off)
1057 if err != nil {
1058 return off, err
1059 }
1060 off, err = packUint32(rr.Expiration, msg, off)
1061 if err != nil {
1062 return off, err
1063 }
1064 off, err = packUint16(rr.Mode, msg, off)
1065 if err != nil {
1066 return off, err
1067 }
1068 off, err = packUint16(rr.Error, msg, off)
1069 if err != nil {
1070 return off, err
1071 }
1072 off, err = packUint16(rr.KeySize, msg, off)
1073 if err != nil {
1074 return off, err
1075 }
1076 off, err = packStringHex(rr.Key, msg, off)
1077 if err != nil {
1078 return off, err
1079 }
1080 off, err = packUint16(rr.OtherLen, msg, off)
1081 if err != nil {
1082 return off, err
1083 }
1084 off, err = packStringHex(rr.OtherData, msg, off)
1085 if err != nil {
1086 return off, err
1087 }
1088 return off, nil
1089 }
1090
1091 func (rr *TLSA) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1092 off, err = packUint8(rr.Usage, msg, off)
1093 if err != nil {
1094 return off, err
1095 }
1096 off, err = packUint8(rr.Selector, msg, off)
1097 if err != nil {
1098 return off, err
1099 }
1100 off, err = packUint8(rr.MatchingType, msg, off)
1101 if err != nil {
1102 return off, err
1103 }
1104 off, err = packStringHex(rr.Certificate, msg, off)
1105 if err != nil {
1106 return off, err
1107 }
1108 return off, nil
1109 }
1110
1111 func (rr *TSIG) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1112 off, err = packDomainName(rr.Algorithm, msg, off, compression, false)
1113 if err != nil {
1114 return off, err
1115 }
1116 off, err = packUint48(rr.TimeSigned, msg, off)
1117 if err != nil {
1118 return off, err
1119 }
1120 off, err = packUint16(rr.Fudge, msg, off)
1121 if err != nil {
1122 return off, err
1123 }
1124 off, err = packUint16(rr.MACSize, msg, off)
1125 if err != nil {
1126 return off, err
1127 }
1128 off, err = packStringHex(rr.MAC, msg, off)
1129 if err != nil {
1130 return off, err
1131 }
1132 off, err = packUint16(rr.OrigId, msg, off)
1133 if err != nil {
1134 return off, err
1135 }
1136 off, err = packUint16(rr.Error, msg, off)
1137 if err != nil {
1138 return off, err
1139 }
1140 off, err = packUint16(rr.OtherLen, msg, off)
1141 if err != nil {
1142 return off, err
1143 }
1144 off, err = packStringHex(rr.OtherData, msg, off)
1145 if err != nil {
1146 return off, err
1147 }
1148 return off, nil
1149 }
1150
1151 func (rr *TXT) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1152 off, err = packStringTxt(rr.Txt, msg, off)
1153 if err != nil {
1154 return off, err
1155 }
1156 return off, nil
1157 }
1158
1159 func (rr *UID) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1160 off, err = packUint32(rr.Uid, msg, off)
1161 if err != nil {
1162 return off, err
1163 }
1164 return off, nil
1165 }
1166
1167 func (rr *UINFO) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1168 off, err = packString(rr.Uinfo, msg, off)
1169 if err != nil {
1170 return off, err
1171 }
1172 return off, nil
1173 }
1174
1175 func (rr *URI) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1176 off, err = packUint16(rr.Priority, msg, off)
1177 if err != nil {
1178 return off, err
1179 }
1180 off, err = packUint16(rr.Weight, msg, off)
1181 if err != nil {
1182 return off, err
1183 }
1184 off, err = packStringOctet(rr.Target, msg, off)
1185 if err != nil {
1186 return off, err
1187 }
1188 return off, nil
1189 }
1190
1191 func (rr *X25) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1192 off, err = packString(rr.PSDNAddress, msg, off)
1193 if err != nil {
1194 return off, err
1195 }
1196 return off, nil
1197 }
1198
1199 func (rr *ZONEMD) pack(msg []byte, off int, compression compressionMap, compress bool) (off1 int, err error) {
1200 off, err = packUint32(rr.Serial, msg, off)
1201 if err != nil {
1202 return off, err
1203 }
1204 off, err = packUint8(rr.Scheme, msg, off)
1205 if err != nil {
1206 return off, err
1207 }
1208 off, err = packUint8(rr.Hash, msg, off)
1209 if err != nil {
1210 return off, err
1211 }
1212 off, err = packStringHex(rr.Digest, msg, off)
1213 if err != nil {
1214 return off, err
1215 }
1216 return off, nil
1217 }
1218
1219 // unpack*() functions
1220
1221 func (rr *A) unpack(msg []byte, off int) (off1 int, err error) {
1222 rdStart := off
1223 _ = rdStart
1224
1225 rr.A, off, err = unpackDataA(msg, off)
1226 if err != nil {
1227 return off, fmt.Errorf("A: %w", err)
1228 }
1229 return off, nil
1230 }
1231
1232 func (rr *AAAA) unpack(msg []byte, off int) (off1 int, err error) {
1233 rdStart := off
1234 _ = rdStart
1235
1236 rr.AAAA, off, err = unpackDataAAAA(msg, off)
1237 if err != nil {
1238 return off, fmt.Errorf("AAAA: %w", err)
1239 }
1240 return off, nil
1241 }
1242
1243 func (rr *AFSDB) unpack(msg []byte, off int) (off1 int, err error) {
1244 rdStart := off
1245 _ = rdStart
1246
1247 rr.Subtype, off, err = unpackUint16(msg, off)
1248 if err != nil {
1249 return off, fmt.Errorf("AFSDB.Subtype: %w", err)
1250 }
1251 if off == len(msg) {
1252 return off, nil
1253 }
1254 rr.Hostname, off, err = UnpackDomainName(msg, off)
1255 if err != nil {
1256 return off, fmt.Errorf("AFSDB.Hostname: %w", err)
1257 }
1258 return off, nil
1259 }
1260
1261 func (rr *AMTRELAY) unpack(msg []byte, off int) (off1 int, err error) {
1262 rdStart := off
1263 _ = rdStart
1264
1265 rr.Precedence, off, err = unpackUint8(msg, off)
1266 if err != nil {
1267 return off, fmt.Errorf("AMTRELAY.Precedence: %w", err)
1268 }
1269 if off == len(msg) {
1270 return off, nil
1271 }
1272 rr.GatewayType, off, err = unpackUint8(msg, off)
1273 if err != nil {
1274 return off, fmt.Errorf("AMTRELAY.GatewayType: %w", err)
1275 }
1276 if off == len(msg) {
1277 return off, nil
1278 }
1279 if off == len(msg) {
1280 return off, nil
1281 }
1282 rr.GatewayAddr, rr.GatewayHost, off, err = unpackIPSECGateway(msg, off, rr.GatewayType)
1283 if err != nil {
1284 return off, fmt.Errorf("AMTRELAY.GatewayHost: %w", err)
1285 }
1286 return off, nil
1287 }
1288
1289 func (rr *ANY) unpack(msg []byte, off int) (off1 int, err error) {
1290 rdStart := off
1291 _ = rdStart
1292
1293 return off, nil
1294 }
1295
1296 func (rr *APL) unpack(msg []byte, off int) (off1 int, err error) {
1297 rdStart := off
1298 _ = rdStart
1299
1300 rr.Prefixes, off, err = unpackDataApl(msg, off)
1301 if err != nil {
1302 return off, fmt.Errorf("APL.Prefixes: %w", err)
1303 }
1304 return off, nil
1305 }
1306
1307 func (rr *AVC) unpack(msg []byte, off int) (off1 int, err error) {
1308 rdStart := off
1309 _ = rdStart
1310
1311 rr.Txt, off, err = unpackStringTxt(msg, off)
1312 if err != nil {
1313 return off, fmt.Errorf("AVC.Txt: %w", err)
1314 }
1315 return off, nil
1316 }
1317
1318 func (rr *CAA) unpack(msg []byte, off int) (off1 int, err error) {
1319 rdStart := off
1320 _ = rdStart
1321
1322 rr.Flag, off, err = unpackUint8(msg, off)
1323 if err != nil {
1324 return off, fmt.Errorf("CAA.Flag: %w", err)
1325 }
1326 if off == len(msg) {
1327 return off, nil
1328 }
1329 rr.Tag, off, err = unpackString(msg, off)
1330 if err != nil {
1331 return off, fmt.Errorf("CAA.Tag: %w", err)
1332 }
1333 if off == len(msg) {
1334 return off, nil
1335 }
1336 rr.Value, off, err = unpackStringOctet(msg, off)
1337 if err != nil {
1338 return off, fmt.Errorf("CAA.Value: %w", err)
1339 }
1340 return off, nil
1341 }
1342
1343 func (rr *CDNSKEY) unpack(msg []byte, off int) (off1 int, err error) {
1344 rdStart := off
1345 _ = rdStart
1346
1347 rr.Flags, off, err = unpackUint16(msg, off)
1348 if err != nil {
1349 return off, fmt.Errorf("CDNSKEY.Flags: %w", err)
1350 }
1351 if off == len(msg) {
1352 return off, nil
1353 }
1354 rr.Protocol, off, err = unpackUint8(msg, off)
1355 if err != nil {
1356 return off, fmt.Errorf("CDNSKEY.Protocol: %w", err)
1357 }
1358 if off == len(msg) {
1359 return off, nil
1360 }
1361 rr.Algorithm, off, err = unpackUint8(msg, off)
1362 if err != nil {
1363 return off, fmt.Errorf("CDNSKEY.Algorithm: %w", err)
1364 }
1365 if off == len(msg) {
1366 return off, nil
1367 }
1368 rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1369 if err != nil {
1370 return off, fmt.Errorf("CDNSKEY.PublicKey: %w", err)
1371 }
1372 return off, nil
1373 }
1374
1375 func (rr *CDS) unpack(msg []byte, off int) (off1 int, err error) {
1376 rdStart := off
1377 _ = rdStart
1378
1379 rr.KeyTag, off, err = unpackUint16(msg, off)
1380 if err != nil {
1381 return off, fmt.Errorf("CDS.KeyTag: %w", err)
1382 }
1383 if off == len(msg) {
1384 return off, nil
1385 }
1386 rr.Algorithm, off, err = unpackUint8(msg, off)
1387 if err != nil {
1388 return off, fmt.Errorf("CDS.Algorithm: %w", err)
1389 }
1390 if off == len(msg) {
1391 return off, nil
1392 }
1393 rr.DigestType, off, err = unpackUint8(msg, off)
1394 if err != nil {
1395 return off, fmt.Errorf("CDS.DigestType: %w", err)
1396 }
1397 if off == len(msg) {
1398 return off, nil
1399 }
1400 rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
1401 if err != nil {
1402 return off, fmt.Errorf("CDS.Digest: %w", err)
1403 }
1404 return off, nil
1405 }
1406
1407 func (rr *CERT) unpack(msg []byte, off int) (off1 int, err error) {
1408 rdStart := off
1409 _ = rdStart
1410
1411 rr.Type, off, err = unpackUint16(msg, off)
1412 if err != nil {
1413 return off, fmt.Errorf("CERT.Type: %w", err)
1414 }
1415 if off == len(msg) {
1416 return off, nil
1417 }
1418 rr.KeyTag, off, err = unpackUint16(msg, off)
1419 if err != nil {
1420 return off, fmt.Errorf("CERT.KeyTag: %w", err)
1421 }
1422 if off == len(msg) {
1423 return off, nil
1424 }
1425 rr.Algorithm, off, err = unpackUint8(msg, off)
1426 if err != nil {
1427 return off, fmt.Errorf("CERT.Algorithm: %w", err)
1428 }
1429 if off == len(msg) {
1430 return off, nil
1431 }
1432 rr.Certificate, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1433 if err != nil {
1434 return off, fmt.Errorf("CERT.Certificate: %w", err)
1435 }
1436 return off, nil
1437 }
1438
1439 func (rr *CNAME) unpack(msg []byte, off int) (off1 int, err error) {
1440 rdStart := off
1441 _ = rdStart
1442
1443 rr.Target, off, err = UnpackDomainName(msg, off)
1444 if err != nil {
1445 return off, fmt.Errorf("CNAME.Target: %w", err)
1446 }
1447 return off, nil
1448 }
1449
1450 func (rr *CSYNC) unpack(msg []byte, off int) (off1 int, err error) {
1451 rdStart := off
1452 _ = rdStart
1453
1454 rr.Serial, off, err = unpackUint32(msg, off)
1455 if err != nil {
1456 return off, fmt.Errorf("CSYNC.Serial: %w", err)
1457 }
1458 if off == len(msg) {
1459 return off, nil
1460 }
1461 rr.Flags, off, err = unpackUint16(msg, off)
1462 if err != nil {
1463 return off, fmt.Errorf("CSYNC.Flags: %w", err)
1464 }
1465 if off == len(msg) {
1466 return off, nil
1467 }
1468 rr.TypeBitMap, off, err = unpackDataNsec(msg, off)
1469 if err != nil {
1470 return off, fmt.Errorf("CSYNC.TypeBitMap: %w", err)
1471 }
1472 return off, nil
1473 }
1474
1475 func (rr *DHCID) unpack(msg []byte, off int) (off1 int, err error) {
1476 rdStart := off
1477 _ = rdStart
1478
1479 rr.Digest, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1480 if err != nil {
1481 return off, fmt.Errorf("DHCID.Digest: %w", err)
1482 }
1483 return off, nil
1484 }
1485
1486 func (rr *DLV) unpack(msg []byte, off int) (off1 int, err error) {
1487 rdStart := off
1488 _ = rdStart
1489
1490 rr.KeyTag, off, err = unpackUint16(msg, off)
1491 if err != nil {
1492 return off, fmt.Errorf("DLV.KeyTag: %w", err)
1493 }
1494 if off == len(msg) {
1495 return off, nil
1496 }
1497 rr.Algorithm, off, err = unpackUint8(msg, off)
1498 if err != nil {
1499 return off, fmt.Errorf("DLV.Algorithm: %w", err)
1500 }
1501 if off == len(msg) {
1502 return off, nil
1503 }
1504 rr.DigestType, off, err = unpackUint8(msg, off)
1505 if err != nil {
1506 return off, fmt.Errorf("DLV.DigestType: %w", err)
1507 }
1508 if off == len(msg) {
1509 return off, nil
1510 }
1511 rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
1512 if err != nil {
1513 return off, fmt.Errorf("DLV.Digest: %w", err)
1514 }
1515 return off, nil
1516 }
1517
1518 func (rr *DNAME) unpack(msg []byte, off int) (off1 int, err error) {
1519 rdStart := off
1520 _ = rdStart
1521
1522 rr.Target, off, err = UnpackDomainName(msg, off)
1523 if err != nil {
1524 return off, fmt.Errorf("DNAME.Target: %w", err)
1525 }
1526 return off, nil
1527 }
1528
1529 func (rr *DNSKEY) unpack(msg []byte, off int) (off1 int, err error) {
1530 rdStart := off
1531 _ = rdStart
1532
1533 rr.Flags, off, err = unpackUint16(msg, off)
1534 if err != nil {
1535 return off, fmt.Errorf("DNSKEY.Flags: %w", err)
1536 }
1537 if off == len(msg) {
1538 return off, nil
1539 }
1540 rr.Protocol, off, err = unpackUint8(msg, off)
1541 if err != nil {
1542 return off, fmt.Errorf("DNSKEY.Protocol: %w", err)
1543 }
1544 if off == len(msg) {
1545 return off, nil
1546 }
1547 rr.Algorithm, off, err = unpackUint8(msg, off)
1548 if err != nil {
1549 return off, fmt.Errorf("DNSKEY.Algorithm: %w", err)
1550 }
1551 if off == len(msg) {
1552 return off, nil
1553 }
1554 rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1555 if err != nil {
1556 return off, fmt.Errorf("DNSKEY.PublicKey: %w", err)
1557 }
1558 return off, nil
1559 }
1560
1561 func (rr *DS) unpack(msg []byte, off int) (off1 int, err error) {
1562 rdStart := off
1563 _ = rdStart
1564
1565 rr.KeyTag, off, err = unpackUint16(msg, off)
1566 if err != nil {
1567 return off, fmt.Errorf("DS.KeyTag: %w", err)
1568 }
1569 if off == len(msg) {
1570 return off, nil
1571 }
1572 rr.Algorithm, off, err = unpackUint8(msg, off)
1573 if err != nil {
1574 return off, fmt.Errorf("DS.Algorithm: %w", err)
1575 }
1576 if off == len(msg) {
1577 return off, nil
1578 }
1579 rr.DigestType, off, err = unpackUint8(msg, off)
1580 if err != nil {
1581 return off, fmt.Errorf("DS.DigestType: %w", err)
1582 }
1583 if off == len(msg) {
1584 return off, nil
1585 }
1586 rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
1587 if err != nil {
1588 return off, fmt.Errorf("DS.Digest: %w", err)
1589 }
1590 return off, nil
1591 }
1592
1593 func (rr *EID) unpack(msg []byte, off int) (off1 int, err error) {
1594 rdStart := off
1595 _ = rdStart
1596
1597 rr.Endpoint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
1598 if err != nil {
1599 return off, fmt.Errorf("EID.Endpoint: %w", err)
1600 }
1601 return off, nil
1602 }
1603
1604 func (rr *EUI48) unpack(msg []byte, off int) (off1 int, err error) {
1605 rdStart := off
1606 _ = rdStart
1607
1608 rr.Address, off, err = unpackUint48(msg, off)
1609 if err != nil {
1610 return off, fmt.Errorf("EUI48.Address: %w", err)
1611 }
1612 return off, nil
1613 }
1614
1615 func (rr *EUI64) unpack(msg []byte, off int) (off1 int, err error) {
1616 rdStart := off
1617 _ = rdStart
1618
1619 rr.Address, off, err = unpackUint64(msg, off)
1620 if err != nil {
1621 return off, fmt.Errorf("EUI64.Address: %w", err)
1622 }
1623 return off, nil
1624 }
1625
1626 func (rr *GID) unpack(msg []byte, off int) (off1 int, err error) {
1627 rdStart := off
1628 _ = rdStart
1629
1630 rr.Gid, off, err = unpackUint32(msg, off)
1631 if err != nil {
1632 return off, fmt.Errorf("GID.Gid: %w", err)
1633 }
1634 return off, nil
1635 }
1636
1637 func (rr *GPOS) unpack(msg []byte, off int) (off1 int, err error) {
1638 rdStart := off
1639 _ = rdStart
1640
1641 rr.Longitude, off, err = unpackString(msg, off)
1642 if err != nil {
1643 return off, fmt.Errorf("GPOS.Longitude: %w", err)
1644 }
1645 if off == len(msg) {
1646 return off, nil
1647 }
1648 rr.Latitude, off, err = unpackString(msg, off)
1649 if err != nil {
1650 return off, fmt.Errorf("GPOS.Latitude: %w", err)
1651 }
1652 if off == len(msg) {
1653 return off, nil
1654 }
1655 rr.Altitude, off, err = unpackString(msg, off)
1656 if err != nil {
1657 return off, fmt.Errorf("GPOS.Altitude: %w", err)
1658 }
1659 return off, nil
1660 }
1661
1662 func (rr *HINFO) unpack(msg []byte, off int) (off1 int, err error) {
1663 rdStart := off
1664 _ = rdStart
1665
1666 rr.Cpu, off, err = unpackString(msg, off)
1667 if err != nil {
1668 return off, fmt.Errorf("HINFO.Cpu: %w", err)
1669 }
1670 if off == len(msg) {
1671 return off, nil
1672 }
1673 rr.Os, off, err = unpackString(msg, off)
1674 if err != nil {
1675 return off, fmt.Errorf("HINFO.Os: %w", err)
1676 }
1677 return off, nil
1678 }
1679
1680 func (rr *HIP) unpack(msg []byte, off int) (off1 int, err error) {
1681 rdStart := off
1682 _ = rdStart
1683
1684 rr.HitLength, off, err = unpackUint8(msg, off)
1685 if err != nil {
1686 return off, fmt.Errorf("HIP.HitLength: %w", err)
1687 }
1688 if off == len(msg) {
1689 return off, nil
1690 }
1691 rr.PublicKeyAlgorithm, off, err = unpackUint8(msg, off)
1692 if err != nil {
1693 return off, fmt.Errorf("HIP.PublicKeyAlgorithm: %w", err)
1694 }
1695 if off == len(msg) {
1696 return off, nil
1697 }
1698 rr.PublicKeyLength, off, err = unpackUint16(msg, off)
1699 if err != nil {
1700 return off, fmt.Errorf("HIP.PublicKeyLength: %w", err)
1701 }
1702 if off == len(msg) {
1703 return off, nil
1704 }
1705 rr.Hit, off, err = unpackStringHex(msg, off, off+int(rr.HitLength))
1706 if err != nil {
1707 return off, err
1708 }
1709 rr.PublicKey, off, err = unpackStringBase64(msg, off, off+int(rr.PublicKeyLength))
1710 if err != nil {
1711 return off, err
1712 }
1713 rr.RendezvousServers, off, err = unpackDataDomainNames(msg, off, rdStart+int(rr.Hdr.Rdlength))
1714 if err != nil {
1715 return off, fmt.Errorf("HIP.RendezvousServers: %w", err)
1716 }
1717 return off, nil
1718 }
1719
1720 func (rr *HTTPS) unpack(msg []byte, off int) (off1 int, err error) {
1721 rdStart := off
1722 _ = rdStart
1723
1724 rr.Priority, off, err = unpackUint16(msg, off)
1725 if err != nil {
1726 return off, fmt.Errorf("HTTPS.Priority: %w", err)
1727 }
1728 if off == len(msg) {
1729 return off, nil
1730 }
1731 rr.Target, off, err = UnpackDomainName(msg, off)
1732 if err != nil {
1733 return off, fmt.Errorf("HTTPS.Target: %w", err)
1734 }
1735 if off == len(msg) {
1736 return off, nil
1737 }
1738 rr.Value, off, err = unpackDataSVCB(msg, off)
1739 if err != nil {
1740 return off, fmt.Errorf("HTTPS.Value: %w", err)
1741 }
1742 return off, nil
1743 }
1744
1745 func (rr *IPSECKEY) unpack(msg []byte, off int) (off1 int, err error) {
1746 rdStart := off
1747 _ = rdStart
1748
1749 rr.Precedence, off, err = unpackUint8(msg, off)
1750 if err != nil {
1751 return off, fmt.Errorf("IPSECKEY.Precedence: %w", err)
1752 }
1753 if off == len(msg) {
1754 return off, nil
1755 }
1756 rr.GatewayType, off, err = unpackUint8(msg, off)
1757 if err != nil {
1758 return off, fmt.Errorf("IPSECKEY.GatewayType: %w", err)
1759 }
1760 if off == len(msg) {
1761 return off, nil
1762 }
1763 rr.Algorithm, off, err = unpackUint8(msg, off)
1764 if err != nil {
1765 return off, fmt.Errorf("IPSECKEY.Algorithm: %w", err)
1766 }
1767 if off == len(msg) {
1768 return off, nil
1769 }
1770 if off == len(msg) {
1771 return off, nil
1772 }
1773 rr.GatewayAddr, rr.GatewayHost, off, err = unpackIPSECGateway(msg, off, rr.GatewayType)
1774 if err != nil {
1775 return off, fmt.Errorf("IPSECKEY.GatewayHost: %w", err)
1776 }
1777 if off == len(msg) {
1778 return off, nil
1779 }
1780 rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1781 if err != nil {
1782 return off, fmt.Errorf("IPSECKEY.PublicKey: %w", err)
1783 }
1784 return off, nil
1785 }
1786
1787 func (rr *ISDN) unpack(msg []byte, off int) (off1 int, err error) {
1788 rdStart := off
1789 _ = rdStart
1790
1791 rr.Address, off, err = unpackString(msg, off)
1792 if err != nil {
1793 return off, fmt.Errorf("ISDN.Address: %w", err)
1794 }
1795 if off == len(msg) {
1796 return off, nil
1797 }
1798 rr.SubAddress, off, err = unpackString(msg, off)
1799 if err != nil {
1800 return off, fmt.Errorf("ISDN.SubAddress: %w", err)
1801 }
1802 return off, nil
1803 }
1804
1805 func (rr *KEY) unpack(msg []byte, off int) (off1 int, err error) {
1806 rdStart := off
1807 _ = rdStart
1808
1809 rr.Flags, off, err = unpackUint16(msg, off)
1810 if err != nil {
1811 return off, fmt.Errorf("KEY.Flags: %w", err)
1812 }
1813 if off == len(msg) {
1814 return off, nil
1815 }
1816 rr.Protocol, off, err = unpackUint8(msg, off)
1817 if err != nil {
1818 return off, fmt.Errorf("KEY.Protocol: %w", err)
1819 }
1820 if off == len(msg) {
1821 return off, nil
1822 }
1823 rr.Algorithm, off, err = unpackUint8(msg, off)
1824 if err != nil {
1825 return off, fmt.Errorf("KEY.Algorithm: %w", err)
1826 }
1827 if off == len(msg) {
1828 return off, nil
1829 }
1830 rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
1831 if err != nil {
1832 return off, fmt.Errorf("KEY.PublicKey: %w", err)
1833 }
1834 return off, nil
1835 }
1836
1837 func (rr *KX) unpack(msg []byte, off int) (off1 int, err error) {
1838 rdStart := off
1839 _ = rdStart
1840
1841 rr.Preference, off, err = unpackUint16(msg, off)
1842 if err != nil {
1843 return off, fmt.Errorf("KX.Preference: %w", err)
1844 }
1845 if off == len(msg) {
1846 return off, nil
1847 }
1848 rr.Exchanger, off, err = UnpackDomainName(msg, off)
1849 if err != nil {
1850 return off, fmt.Errorf("KX.Exchanger: %w", err)
1851 }
1852 return off, nil
1853 }
1854
1855 func (rr *L32) unpack(msg []byte, off int) (off1 int, err error) {
1856 rdStart := off
1857 _ = rdStart
1858
1859 rr.Preference, off, err = unpackUint16(msg, off)
1860 if err != nil {
1861 return off, fmt.Errorf("L32.Preference: %w", err)
1862 }
1863 if off == len(msg) {
1864 return off, nil
1865 }
1866 rr.Locator32, off, err = unpackDataA(msg, off)
1867 if err != nil {
1868 return off, fmt.Errorf("L32.Locator32: %w", err)
1869 }
1870 return off, nil
1871 }
1872
1873 func (rr *L64) unpack(msg []byte, off int) (off1 int, err error) {
1874 rdStart := off
1875 _ = rdStart
1876
1877 rr.Preference, off, err = unpackUint16(msg, off)
1878 if err != nil {
1879 return off, fmt.Errorf("L64.Preference: %w", err)
1880 }
1881 if off == len(msg) {
1882 return off, nil
1883 }
1884 rr.Locator64, off, err = unpackUint64(msg, off)
1885 if err != nil {
1886 return off, fmt.Errorf("L64.Locator64: %w", err)
1887 }
1888 return off, nil
1889 }
1890
1891 func (rr *LOC) unpack(msg []byte, off int) (off1 int, err error) {
1892 rdStart := off
1893 _ = rdStart
1894
1895 rr.Version, off, err = unpackUint8(msg, off)
1896 if err != nil {
1897 return off, fmt.Errorf("LOC.Version: %w", err)
1898 }
1899 if off == len(msg) {
1900 return off, nil
1901 }
1902 rr.Size, off, err = unpackUint8(msg, off)
1903 if err != nil {
1904 return off, fmt.Errorf("LOC.Size: %w", err)
1905 }
1906 if off == len(msg) {
1907 return off, nil
1908 }
1909 rr.HorizPre, off, err = unpackUint8(msg, off)
1910 if err != nil {
1911 return off, fmt.Errorf("LOC.HorizPre: %w", err)
1912 }
1913 if off == len(msg) {
1914 return off, nil
1915 }
1916 rr.VertPre, off, err = unpackUint8(msg, off)
1917 if err != nil {
1918 return off, fmt.Errorf("LOC.VertPre: %w", err)
1919 }
1920 if off == len(msg) {
1921 return off, nil
1922 }
1923 rr.Latitude, off, err = unpackUint32(msg, off)
1924 if err != nil {
1925 return off, fmt.Errorf("LOC.Latitude: %w", err)
1926 }
1927 if off == len(msg) {
1928 return off, nil
1929 }
1930 rr.Longitude, off, err = unpackUint32(msg, off)
1931 if err != nil {
1932 return off, fmt.Errorf("LOC.Longitude: %w", err)
1933 }
1934 if off == len(msg) {
1935 return off, nil
1936 }
1937 rr.Altitude, off, err = unpackUint32(msg, off)
1938 if err != nil {
1939 return off, fmt.Errorf("LOC.Altitude: %w", err)
1940 }
1941 return off, nil
1942 }
1943
1944 func (rr *LP) unpack(msg []byte, off int) (off1 int, err error) {
1945 rdStart := off
1946 _ = rdStart
1947
1948 rr.Preference, off, err = unpackUint16(msg, off)
1949 if err != nil {
1950 return off, fmt.Errorf("LP.Preference: %w", err)
1951 }
1952 if off == len(msg) {
1953 return off, nil
1954 }
1955 rr.Fqdn, off, err = UnpackDomainName(msg, off)
1956 if err != nil {
1957 return off, fmt.Errorf("LP.Fqdn: %w", err)
1958 }
1959 return off, nil
1960 }
1961
1962 func (rr *MB) unpack(msg []byte, off int) (off1 int, err error) {
1963 rdStart := off
1964 _ = rdStart
1965
1966 rr.Mb, off, err = UnpackDomainName(msg, off)
1967 if err != nil {
1968 return off, fmt.Errorf("MB.Mb: %w", err)
1969 }
1970 return off, nil
1971 }
1972
1973 func (rr *MD) unpack(msg []byte, off int) (off1 int, err error) {
1974 rdStart := off
1975 _ = rdStart
1976
1977 rr.Md, off, err = UnpackDomainName(msg, off)
1978 if err != nil {
1979 return off, fmt.Errorf("MD.Md: %w", err)
1980 }
1981 return off, nil
1982 }
1983
1984 func (rr *MF) unpack(msg []byte, off int) (off1 int, err error) {
1985 rdStart := off
1986 _ = rdStart
1987
1988 rr.Mf, off, err = UnpackDomainName(msg, off)
1989 if err != nil {
1990 return off, fmt.Errorf("MF.Mf: %w", err)
1991 }
1992 return off, nil
1993 }
1994
1995 func (rr *MG) unpack(msg []byte, off int) (off1 int, err error) {
1996 rdStart := off
1997 _ = rdStart
1998
1999 rr.Mg, off, err = UnpackDomainName(msg, off)
2000 if err != nil {
2001 return off, fmt.Errorf("MG.Mg: %w", err)
2002 }
2003 return off, nil
2004 }
2005
2006 func (rr *MINFO) unpack(msg []byte, off int) (off1 int, err error) {
2007 rdStart := off
2008 _ = rdStart
2009
2010 rr.Rmail, off, err = UnpackDomainName(msg, off)
2011 if err != nil {
2012 return off, fmt.Errorf("MINFO.Rmail: %w", err)
2013 }
2014 if off == len(msg) {
2015 return off, nil
2016 }
2017 rr.Email, off, err = UnpackDomainName(msg, off)
2018 if err != nil {
2019 return off, fmt.Errorf("MINFO.Email: %w", err)
2020 }
2021 return off, nil
2022 }
2023
2024 func (rr *MR) unpack(msg []byte, off int) (off1 int, err error) {
2025 rdStart := off
2026 _ = rdStart
2027
2028 rr.Mr, off, err = UnpackDomainName(msg, off)
2029 if err != nil {
2030 return off, fmt.Errorf("MR.Mr: %w", err)
2031 }
2032 return off, nil
2033 }
2034
2035 func (rr *MX) unpack(msg []byte, off int) (off1 int, err error) {
2036 rdStart := off
2037 _ = rdStart
2038
2039 rr.Preference, off, err = unpackUint16(msg, off)
2040 if err != nil {
2041 return off, fmt.Errorf("MX.Preference: %w", err)
2042 }
2043 if off == len(msg) {
2044 return off, nil
2045 }
2046 rr.Mx, off, err = UnpackDomainName(msg, off)
2047 if err != nil {
2048 return off, fmt.Errorf("MX.Mx: %w", err)
2049 }
2050 return off, nil
2051 }
2052
2053 func (rr *NAPTR) unpack(msg []byte, off int) (off1 int, err error) {
2054 rdStart := off
2055 _ = rdStart
2056
2057 rr.Order, off, err = unpackUint16(msg, off)
2058 if err != nil {
2059 return off, fmt.Errorf("NAPTR.Order: %w", err)
2060 }
2061 if off == len(msg) {
2062 return off, nil
2063 }
2064 rr.Preference, off, err = unpackUint16(msg, off)
2065 if err != nil {
2066 return off, fmt.Errorf("NAPTR.Preference: %w", err)
2067 }
2068 if off == len(msg) {
2069 return off, nil
2070 }
2071 rr.Flags, off, err = unpackString(msg, off)
2072 if err != nil {
2073 return off, fmt.Errorf("NAPTR.Flags: %w", err)
2074 }
2075 if off == len(msg) {
2076 return off, nil
2077 }
2078 rr.Service, off, err = unpackString(msg, off)
2079 if err != nil {
2080 return off, fmt.Errorf("NAPTR.Service: %w", err)
2081 }
2082 if off == len(msg) {
2083 return off, nil
2084 }
2085 rr.Regexp, off, err = unpackString(msg, off)
2086 if err != nil {
2087 return off, fmt.Errorf("NAPTR.Regexp: %w", err)
2088 }
2089 if off == len(msg) {
2090 return off, nil
2091 }
2092 rr.Replacement, off, err = UnpackDomainName(msg, off)
2093 if err != nil {
2094 return off, fmt.Errorf("NAPTR.Replacement: %w", err)
2095 }
2096 return off, nil
2097 }
2098
2099 func (rr *NID) unpack(msg []byte, off int) (off1 int, err error) {
2100 rdStart := off
2101 _ = rdStart
2102
2103 rr.Preference, off, err = unpackUint16(msg, off)
2104 if err != nil {
2105 return off, fmt.Errorf("NID.Preference: %w", err)
2106 }
2107 if off == len(msg) {
2108 return off, nil
2109 }
2110 rr.NodeID, off, err = unpackUint64(msg, off)
2111 if err != nil {
2112 return off, fmt.Errorf("NID.NodeID: %w", err)
2113 }
2114 return off, nil
2115 }
2116
2117 func (rr *NIMLOC) unpack(msg []byte, off int) (off1 int, err error) {
2118 rdStart := off
2119 _ = rdStart
2120
2121 rr.Locator, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2122 if err != nil {
2123 return off, fmt.Errorf("NIMLOC.Locator: %w", err)
2124 }
2125 return off, nil
2126 }
2127
2128 func (rr *NINFO) unpack(msg []byte, off int) (off1 int, err error) {
2129 rdStart := off
2130 _ = rdStart
2131
2132 rr.ZSData, off, err = unpackStringTxt(msg, off)
2133 if err != nil {
2134 return off, fmt.Errorf("NINFO.ZSData: %w", err)
2135 }
2136 return off, nil
2137 }
2138
2139 func (rr *NS) unpack(msg []byte, off int) (off1 int, err error) {
2140 rdStart := off
2141 _ = rdStart
2142
2143 rr.Ns, off, err = UnpackDomainName(msg, off)
2144 if err != nil {
2145 return off, fmt.Errorf("NS.Ns: %w", err)
2146 }
2147 return off, nil
2148 }
2149
2150 func (rr *NSAPPTR) unpack(msg []byte, off int) (off1 int, err error) {
2151 rdStart := off
2152 _ = rdStart
2153
2154 rr.Ptr, off, err = UnpackDomainName(msg, off)
2155 if err != nil {
2156 return off, fmt.Errorf("NSAPPTR.Ptr: %w", err)
2157 }
2158 return off, nil
2159 }
2160
2161 func (rr *NSEC) unpack(msg []byte, off int) (off1 int, err error) {
2162 rdStart := off
2163 _ = rdStart
2164
2165 rr.NextDomain, off, err = UnpackDomainName(msg, off)
2166 if err != nil {
2167 return off, fmt.Errorf("NSEC.NextDomain: %w", err)
2168 }
2169 if off == len(msg) {
2170 return off, nil
2171 }
2172 rr.TypeBitMap, off, err = unpackDataNsec(msg, off)
2173 if err != nil {
2174 return off, fmt.Errorf("NSEC.TypeBitMap: %w", err)
2175 }
2176 return off, nil
2177 }
2178
2179 func (rr *NSEC3) unpack(msg []byte, off int) (off1 int, err error) {
2180 rdStart := off
2181 _ = rdStart
2182
2183 rr.Hash, off, err = unpackUint8(msg, off)
2184 if err != nil {
2185 return off, fmt.Errorf("NSEC3.Hash: %w", err)
2186 }
2187 if off == len(msg) {
2188 return off, nil
2189 }
2190 rr.Flags, off, err = unpackUint8(msg, off)
2191 if err != nil {
2192 return off, fmt.Errorf("NSEC3.Flags: %w", err)
2193 }
2194 if off == len(msg) {
2195 return off, nil
2196 }
2197 rr.Iterations, off, err = unpackUint16(msg, off)
2198 if err != nil {
2199 return off, fmt.Errorf("NSEC3.Iterations: %w", err)
2200 }
2201 if off == len(msg) {
2202 return off, nil
2203 }
2204 rr.SaltLength, off, err = unpackUint8(msg, off)
2205 if err != nil {
2206 return off, fmt.Errorf("NSEC3.SaltLength: %w", err)
2207 }
2208 if off == len(msg) {
2209 return off, nil
2210 }
2211 rr.Salt, off, err = unpackStringHex(msg, off, off+int(rr.SaltLength))
2212 if err != nil {
2213 return off, err
2214 }
2215 rr.HashLength, off, err = unpackUint8(msg, off)
2216 if err != nil {
2217 return off, fmt.Errorf("NSEC3.HashLength: %w", err)
2218 }
2219 if off == len(msg) {
2220 return off, nil
2221 }
2222 rr.NextDomain, off, err = unpackStringBase32(msg, off, off+int(rr.HashLength))
2223 if err != nil {
2224 return off, err
2225 }
2226 rr.TypeBitMap, off, err = unpackDataNsec(msg, off)
2227 if err != nil {
2228 return off, fmt.Errorf("NSEC3.TypeBitMap: %w", err)
2229 }
2230 return off, nil
2231 }
2232
2233 func (rr *NSEC3PARAM) unpack(msg []byte, off int) (off1 int, err error) {
2234 rdStart := off
2235 _ = rdStart
2236
2237 rr.Hash, off, err = unpackUint8(msg, off)
2238 if err != nil {
2239 return off, fmt.Errorf("NSEC3PARAM.Hash: %w", err)
2240 }
2241 if off == len(msg) {
2242 return off, nil
2243 }
2244 rr.Flags, off, err = unpackUint8(msg, off)
2245 if err != nil {
2246 return off, fmt.Errorf("NSEC3PARAM.Flags: %w", err)
2247 }
2248 if off == len(msg) {
2249 return off, nil
2250 }
2251 rr.Iterations, off, err = unpackUint16(msg, off)
2252 if err != nil {
2253 return off, fmt.Errorf("NSEC3PARAM.Iterations: %w", err)
2254 }
2255 if off == len(msg) {
2256 return off, nil
2257 }
2258 rr.SaltLength, off, err = unpackUint8(msg, off)
2259 if err != nil {
2260 return off, fmt.Errorf("NSEC3PARAM.SaltLength: %w", err)
2261 }
2262 if off == len(msg) {
2263 return off, nil
2264 }
2265 rr.Salt, off, err = unpackStringHex(msg, off, off+int(rr.SaltLength))
2266 if err != nil {
2267 return off, err
2268 }
2269 return off, nil
2270 }
2271
2272 func (rr *NULL) unpack(msg []byte, off int) (off1 int, err error) {
2273 rdStart := off
2274 _ = rdStart
2275
2276 rr.Data, off, err = unpackStringAny(msg, off, rdStart+int(rr.Hdr.Rdlength))
2277 if err != nil {
2278 return off, fmt.Errorf("NULL.Data: %w", err)
2279 }
2280 return off, nil
2281 }
2282
2283 func (rr *NXNAME) unpack(msg []byte, off int) (off1 int, err error) {
2284 rdStart := off
2285 _ = rdStart
2286
2287 return off, nil
2288 }
2289
2290 func (rr *NXT) unpack(msg []byte, off int) (off1 int, err error) {
2291 rdStart := off
2292 _ = rdStart
2293
2294 rr.NextDomain, off, err = UnpackDomainName(msg, off)
2295 if err != nil {
2296 return off, fmt.Errorf("NXT.NextDomain: %w", err)
2297 }
2298 if off == len(msg) {
2299 return off, nil
2300 }
2301 rr.TypeBitMap, off, err = unpackDataNsec(msg, off)
2302 if err != nil {
2303 return off, fmt.Errorf("NXT.TypeBitMap: %w", err)
2304 }
2305 return off, nil
2306 }
2307
2308 func (rr *OPENPGPKEY) unpack(msg []byte, off int) (off1 int, err error) {
2309 rdStart := off
2310 _ = rdStart
2311
2312 rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
2313 if err != nil {
2314 return off, fmt.Errorf("OPENPGPKEY.PublicKey: %w", err)
2315 }
2316 return off, nil
2317 }
2318
2319 func (rr *OPT) unpack(msg []byte, off int) (off1 int, err error) {
2320 rdStart := off
2321 _ = rdStart
2322
2323 rr.Option, off, err = unpackDataOpt(msg, off)
2324 if err != nil {
2325 return off, fmt.Errorf("OPT.Option: %w", err)
2326 }
2327 return off, nil
2328 }
2329
2330 func (rr *PTR) unpack(msg []byte, off int) (off1 int, err error) {
2331 rdStart := off
2332 _ = rdStart
2333
2334 rr.Ptr, off, err = UnpackDomainName(msg, off)
2335 if err != nil {
2336 return off, fmt.Errorf("PTR.Ptr: %w", err)
2337 }
2338 return off, nil
2339 }
2340
2341 func (rr *PX) unpack(msg []byte, off int) (off1 int, err error) {
2342 rdStart := off
2343 _ = rdStart
2344
2345 rr.Preference, off, err = unpackUint16(msg, off)
2346 if err != nil {
2347 return off, fmt.Errorf("PX.Preference: %w", err)
2348 }
2349 if off == len(msg) {
2350 return off, nil
2351 }
2352 rr.Map822, off, err = UnpackDomainName(msg, off)
2353 if err != nil {
2354 return off, fmt.Errorf("PX.Map822: %w", err)
2355 }
2356 if off == len(msg) {
2357 return off, nil
2358 }
2359 rr.Mapx400, off, err = UnpackDomainName(msg, off)
2360 if err != nil {
2361 return off, fmt.Errorf("PX.Mapx400: %w", err)
2362 }
2363 return off, nil
2364 }
2365
2366 func (rr *RESINFO) unpack(msg []byte, off int) (off1 int, err error) {
2367 rdStart := off
2368 _ = rdStart
2369
2370 rr.Txt, off, err = unpackStringTxt(msg, off)
2371 if err != nil {
2372 return off, err
2373 }
2374 return off, nil
2375 }
2376
2377 func (rr *RFC3597) unpack(msg []byte, off int) (off1 int, err error) {
2378 rdStart := off
2379 _ = rdStart
2380
2381 rr.Rdata, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2382 if err != nil {
2383 return off, fmt.Errorf("RFC3597.Rdata: %w", err)
2384 }
2385 return off, nil
2386 }
2387
2388 func (rr *RKEY) unpack(msg []byte, off int) (off1 int, err error) {
2389 rdStart := off
2390 _ = rdStart
2391
2392 rr.Flags, off, err = unpackUint16(msg, off)
2393 if err != nil {
2394 return off, fmt.Errorf("RKEY.Flags: %w", err)
2395 }
2396 if off == len(msg) {
2397 return off, nil
2398 }
2399 rr.Protocol, off, err = unpackUint8(msg, off)
2400 if err != nil {
2401 return off, fmt.Errorf("RKEY.Protocol: %w", err)
2402 }
2403 if off == len(msg) {
2404 return off, nil
2405 }
2406 rr.Algorithm, off, err = unpackUint8(msg, off)
2407 if err != nil {
2408 return off, fmt.Errorf("RKEY.Algorithm: %w", err)
2409 }
2410 if off == len(msg) {
2411 return off, nil
2412 }
2413 rr.PublicKey, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
2414 if err != nil {
2415 return off, fmt.Errorf("RKEY.PublicKey: %w", err)
2416 }
2417 return off, nil
2418 }
2419
2420 func (rr *RP) unpack(msg []byte, off int) (off1 int, err error) {
2421 rdStart := off
2422 _ = rdStart
2423
2424 rr.Mbox, off, err = UnpackDomainName(msg, off)
2425 if err != nil {
2426 return off, fmt.Errorf("RP.Mbox: %w", err)
2427 }
2428 if off == len(msg) {
2429 return off, nil
2430 }
2431 rr.Txt, off, err = UnpackDomainName(msg, off)
2432 if err != nil {
2433 return off, fmt.Errorf("RP.Txt: %w", err)
2434 }
2435 return off, nil
2436 }
2437
2438 func (rr *RRSIG) unpack(msg []byte, off int) (off1 int, err error) {
2439 rdStart := off
2440 _ = rdStart
2441
2442 rr.TypeCovered, off, err = unpackUint16(msg, off)
2443 if err != nil {
2444 return off, fmt.Errorf("RRSIG.TypeCovered: %w", err)
2445 }
2446 if off == len(msg) {
2447 return off, nil
2448 }
2449 rr.Algorithm, off, err = unpackUint8(msg, off)
2450 if err != nil {
2451 return off, fmt.Errorf("RRSIG.Algorithm: %w", err)
2452 }
2453 if off == len(msg) {
2454 return off, nil
2455 }
2456 rr.Labels, off, err = unpackUint8(msg, off)
2457 if err != nil {
2458 return off, fmt.Errorf("RRSIG.Labels: %w", err)
2459 }
2460 if off == len(msg) {
2461 return off, nil
2462 }
2463 rr.OrigTtl, off, err = unpackUint32(msg, off)
2464 if err != nil {
2465 return off, fmt.Errorf("RRSIG.OrigTtl: %w", err)
2466 }
2467 if off == len(msg) {
2468 return off, nil
2469 }
2470 rr.Expiration, off, err = unpackUint32(msg, off)
2471 if err != nil {
2472 return off, fmt.Errorf("RRSIG.Expiration: %w", err)
2473 }
2474 if off == len(msg) {
2475 return off, nil
2476 }
2477 rr.Inception, off, err = unpackUint32(msg, off)
2478 if err != nil {
2479 return off, fmt.Errorf("RRSIG.Inception: %w", err)
2480 }
2481 if off == len(msg) {
2482 return off, nil
2483 }
2484 rr.KeyTag, off, err = unpackUint16(msg, off)
2485 if err != nil {
2486 return off, fmt.Errorf("RRSIG.KeyTag: %w", err)
2487 }
2488 if off == len(msg) {
2489 return off, nil
2490 }
2491 rr.SignerName, off, err = UnpackDomainName(msg, off)
2492 if err != nil {
2493 return off, fmt.Errorf("RRSIG.SignerName: %w", err)
2494 }
2495 if off == len(msg) {
2496 return off, nil
2497 }
2498 rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
2499 if err != nil {
2500 return off, fmt.Errorf("RRSIG.Signature: %w", err)
2501 }
2502 return off, nil
2503 }
2504
2505 func (rr *RT) unpack(msg []byte, off int) (off1 int, err error) {
2506 rdStart := off
2507 _ = rdStart
2508
2509 rr.Preference, off, err = unpackUint16(msg, off)
2510 if err != nil {
2511 return off, fmt.Errorf("RT.Preference: %w", err)
2512 }
2513 if off == len(msg) {
2514 return off, nil
2515 }
2516 rr.Host, off, err = UnpackDomainName(msg, off)
2517 if err != nil {
2518 return off, fmt.Errorf("RT.Host: %w", err)
2519 }
2520 return off, nil
2521 }
2522
2523 func (rr *SIG) unpack(msg []byte, off int) (off1 int, err error) {
2524 rdStart := off
2525 _ = rdStart
2526
2527 rr.TypeCovered, off, err = unpackUint16(msg, off)
2528 if err != nil {
2529 return off, fmt.Errorf("SIG.TypeCovered: %w", err)
2530 }
2531 if off == len(msg) {
2532 return off, nil
2533 }
2534 rr.Algorithm, off, err = unpackUint8(msg, off)
2535 if err != nil {
2536 return off, fmt.Errorf("SIG.Algorithm: %w", err)
2537 }
2538 if off == len(msg) {
2539 return off, nil
2540 }
2541 rr.Labels, off, err = unpackUint8(msg, off)
2542 if err != nil {
2543 return off, fmt.Errorf("SIG.Labels: %w", err)
2544 }
2545 if off == len(msg) {
2546 return off, nil
2547 }
2548 rr.OrigTtl, off, err = unpackUint32(msg, off)
2549 if err != nil {
2550 return off, fmt.Errorf("SIG.OrigTtl: %w", err)
2551 }
2552 if off == len(msg) {
2553 return off, nil
2554 }
2555 rr.Expiration, off, err = unpackUint32(msg, off)
2556 if err != nil {
2557 return off, fmt.Errorf("SIG.Expiration: %w", err)
2558 }
2559 if off == len(msg) {
2560 return off, nil
2561 }
2562 rr.Inception, off, err = unpackUint32(msg, off)
2563 if err != nil {
2564 return off, fmt.Errorf("SIG.Inception: %w", err)
2565 }
2566 if off == len(msg) {
2567 return off, nil
2568 }
2569 rr.KeyTag, off, err = unpackUint16(msg, off)
2570 if err != nil {
2571 return off, fmt.Errorf("SIG.KeyTag: %w", err)
2572 }
2573 if off == len(msg) {
2574 return off, nil
2575 }
2576 rr.SignerName, off, err = UnpackDomainName(msg, off)
2577 if err != nil {
2578 return off, fmt.Errorf("SIG.SignerName: %w", err)
2579 }
2580 if off == len(msg) {
2581 return off, nil
2582 }
2583 rr.Signature, off, err = unpackStringBase64(msg, off, rdStart+int(rr.Hdr.Rdlength))
2584 if err != nil {
2585 return off, fmt.Errorf("SIG.Signature: %w", err)
2586 }
2587 return off, nil
2588 }
2589
2590 func (rr *SMIMEA) unpack(msg []byte, off int) (off1 int, err error) {
2591 rdStart := off
2592 _ = rdStart
2593
2594 rr.Usage, off, err = unpackUint8(msg, off)
2595 if err != nil {
2596 return off, fmt.Errorf("SMIMEA.Usage: %w", err)
2597 }
2598 if off == len(msg) {
2599 return off, nil
2600 }
2601 rr.Selector, off, err = unpackUint8(msg, off)
2602 if err != nil {
2603 return off, fmt.Errorf("SMIMEA.Selector: %w", err)
2604 }
2605 if off == len(msg) {
2606 return off, nil
2607 }
2608 rr.MatchingType, off, err = unpackUint8(msg, off)
2609 if err != nil {
2610 return off, fmt.Errorf("SMIMEA.MatchingType: %w", err)
2611 }
2612 if off == len(msg) {
2613 return off, nil
2614 }
2615 rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2616 if err != nil {
2617 return off, fmt.Errorf("SMIMEA.Certificate: %w", err)
2618 }
2619 return off, nil
2620 }
2621
2622 func (rr *SOA) unpack(msg []byte, off int) (off1 int, err error) {
2623 rdStart := off
2624 _ = rdStart
2625
2626 rr.Ns, off, err = UnpackDomainName(msg, off)
2627 if err != nil {
2628 return off, fmt.Errorf("SOA.Ns: %w", err)
2629 }
2630 if off == len(msg) {
2631 return off, nil
2632 }
2633 rr.Mbox, off, err = UnpackDomainName(msg, off)
2634 if err != nil {
2635 return off, fmt.Errorf("SOA.Mbox: %w", err)
2636 }
2637 if off == len(msg) {
2638 return off, nil
2639 }
2640 rr.Serial, off, err = unpackUint32(msg, off)
2641 if err != nil {
2642 return off, fmt.Errorf("SOA.Serial: %w", err)
2643 }
2644 if off == len(msg) {
2645 return off, nil
2646 }
2647 rr.Refresh, off, err = unpackUint32(msg, off)
2648 if err != nil {
2649 return off, fmt.Errorf("SOA.Refresh: %w", err)
2650 }
2651 if off == len(msg) {
2652 return off, nil
2653 }
2654 rr.Retry, off, err = unpackUint32(msg, off)
2655 if err != nil {
2656 return off, fmt.Errorf("SOA.Retry: %w", err)
2657 }
2658 if off == len(msg) {
2659 return off, nil
2660 }
2661 rr.Expire, off, err = unpackUint32(msg, off)
2662 if err != nil {
2663 return off, fmt.Errorf("SOA.Expire: %w", err)
2664 }
2665 if off == len(msg) {
2666 return off, nil
2667 }
2668 rr.Minttl, off, err = unpackUint32(msg, off)
2669 if err != nil {
2670 return off, fmt.Errorf("SOA.Minttl: %w", err)
2671 }
2672 return off, nil
2673 }
2674
2675 func (rr *SPF) unpack(msg []byte, off int) (off1 int, err error) {
2676 rdStart := off
2677 _ = rdStart
2678
2679 rr.Txt, off, err = unpackStringTxt(msg, off)
2680 if err != nil {
2681 return off, fmt.Errorf("SPF.Txt: %w", err)
2682 }
2683 return off, nil
2684 }
2685
2686 func (rr *SRV) unpack(msg []byte, off int) (off1 int, err error) {
2687 rdStart := off
2688 _ = rdStart
2689
2690 rr.Priority, off, err = unpackUint16(msg, off)
2691 if err != nil {
2692 return off, fmt.Errorf("SRV.Priority: %w", err)
2693 }
2694 if off == len(msg) {
2695 return off, nil
2696 }
2697 rr.Weight, off, err = unpackUint16(msg, off)
2698 if err != nil {
2699 return off, fmt.Errorf("SRV.Weight: %w", err)
2700 }
2701 if off == len(msg) {
2702 return off, nil
2703 }
2704 rr.Port, off, err = unpackUint16(msg, off)
2705 if err != nil {
2706 return off, fmt.Errorf("SRV.Port: %w", err)
2707 }
2708 if off == len(msg) {
2709 return off, nil
2710 }
2711 rr.Target, off, err = UnpackDomainName(msg, off)
2712 if err != nil {
2713 return off, fmt.Errorf("SRV.Target: %w", err)
2714 }
2715 return off, nil
2716 }
2717
2718 func (rr *SSHFP) unpack(msg []byte, off int) (off1 int, err error) {
2719 rdStart := off
2720 _ = rdStart
2721
2722 rr.Algorithm, off, err = unpackUint8(msg, off)
2723 if err != nil {
2724 return off, fmt.Errorf("SSHFP.Algorithm: %w", err)
2725 }
2726 if off == len(msg) {
2727 return off, nil
2728 }
2729 rr.Type, off, err = unpackUint8(msg, off)
2730 if err != nil {
2731 return off, fmt.Errorf("SSHFP.Type: %w", err)
2732 }
2733 if off == len(msg) {
2734 return off, nil
2735 }
2736 rr.FingerPrint, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2737 if err != nil {
2738 return off, fmt.Errorf("SSHFP.FingerPrint: %w", err)
2739 }
2740 return off, nil
2741 }
2742
2743 func (rr *SVCB) unpack(msg []byte, off int) (off1 int, err error) {
2744 rdStart := off
2745 _ = rdStart
2746
2747 rr.Priority, off, err = unpackUint16(msg, off)
2748 if err != nil {
2749 return off, fmt.Errorf("SVCB.Priority: %w", err)
2750 }
2751 if off == len(msg) {
2752 return off, nil
2753 }
2754 rr.Target, off, err = UnpackDomainName(msg, off)
2755 if err != nil {
2756 return off, fmt.Errorf("SVCB.Target: %w", err)
2757 }
2758 if off == len(msg) {
2759 return off, nil
2760 }
2761 rr.Value, off, err = unpackDataSVCB(msg, off)
2762 if err != nil {
2763 return off, fmt.Errorf("SVCB.Value: %w", err)
2764 }
2765 return off, nil
2766 }
2767
2768 func (rr *TA) unpack(msg []byte, off int) (off1 int, err error) {
2769 rdStart := off
2770 _ = rdStart
2771
2772 rr.KeyTag, off, err = unpackUint16(msg, off)
2773 if err != nil {
2774 return off, fmt.Errorf("TA.KeyTag: %w", err)
2775 }
2776 if off == len(msg) {
2777 return off, nil
2778 }
2779 rr.Algorithm, off, err = unpackUint8(msg, off)
2780 if err != nil {
2781 return off, fmt.Errorf("TA.Algorithm: %w", err)
2782 }
2783 if off == len(msg) {
2784 return off, nil
2785 }
2786 rr.DigestType, off, err = unpackUint8(msg, off)
2787 if err != nil {
2788 return off, fmt.Errorf("TA.DigestType: %w", err)
2789 }
2790 if off == len(msg) {
2791 return off, nil
2792 }
2793 rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2794 if err != nil {
2795 return off, fmt.Errorf("TA.Digest: %w", err)
2796 }
2797 return off, nil
2798 }
2799
2800 func (rr *TALINK) unpack(msg []byte, off int) (off1 int, err error) {
2801 rdStart := off
2802 _ = rdStart
2803
2804 rr.PreviousName, off, err = UnpackDomainName(msg, off)
2805 if err != nil {
2806 return off, fmt.Errorf("TALINK.PreviousName: %w", err)
2807 }
2808 if off == len(msg) {
2809 return off, nil
2810 }
2811 rr.NextName, off, err = UnpackDomainName(msg, off)
2812 if err != nil {
2813 return off, fmt.Errorf("TALINK.NextName: %w", err)
2814 }
2815 return off, nil
2816 }
2817
2818 func (rr *TKEY) unpack(msg []byte, off int) (off1 int, err error) {
2819 rdStart := off
2820 _ = rdStart
2821
2822 rr.Algorithm, off, err = UnpackDomainName(msg, off)
2823 if err != nil {
2824 return off, fmt.Errorf("TKEY.Algorithm: %w", err)
2825 }
2826 if off == len(msg) {
2827 return off, nil
2828 }
2829 rr.Inception, off, err = unpackUint32(msg, off)
2830 if err != nil {
2831 return off, fmt.Errorf("TKEY.Inception: %w", err)
2832 }
2833 if off == len(msg) {
2834 return off, nil
2835 }
2836 rr.Expiration, off, err = unpackUint32(msg, off)
2837 if err != nil {
2838 return off, fmt.Errorf("TKEY.Expiration: %w", err)
2839 }
2840 if off == len(msg) {
2841 return off, nil
2842 }
2843 rr.Mode, off, err = unpackUint16(msg, off)
2844 if err != nil {
2845 return off, fmt.Errorf("TKEY.Mode: %w", err)
2846 }
2847 if off == len(msg) {
2848 return off, nil
2849 }
2850 rr.Error, off, err = unpackUint16(msg, off)
2851 if err != nil {
2852 return off, fmt.Errorf("TKEY.Error: %w", err)
2853 }
2854 if off == len(msg) {
2855 return off, nil
2856 }
2857 rr.KeySize, off, err = unpackUint16(msg, off)
2858 if err != nil {
2859 return off, fmt.Errorf("TKEY.KeySize: %w", err)
2860 }
2861 if off == len(msg) {
2862 return off, nil
2863 }
2864 rr.Key, off, err = unpackStringHex(msg, off, off+int(rr.KeySize))
2865 if err != nil {
2866 return off, err
2867 }
2868 rr.OtherLen, off, err = unpackUint16(msg, off)
2869 if err != nil {
2870 return off, fmt.Errorf("TKEY.OtherLen: %w", err)
2871 }
2872 if off == len(msg) {
2873 return off, nil
2874 }
2875 rr.OtherData, off, err = unpackStringHex(msg, off, off+int(rr.OtherLen))
2876 if err != nil {
2877 return off, err
2878 }
2879 return off, nil
2880 }
2881
2882 func (rr *TLSA) unpack(msg []byte, off int) (off1 int, err error) {
2883 rdStart := off
2884 _ = rdStart
2885
2886 rr.Usage, off, err = unpackUint8(msg, off)
2887 if err != nil {
2888 return off, fmt.Errorf("TLSA.Usage: %w", err)
2889 }
2890 if off == len(msg) {
2891 return off, nil
2892 }
2893 rr.Selector, off, err = unpackUint8(msg, off)
2894 if err != nil {
2895 return off, fmt.Errorf("TLSA.Selector: %w", err)
2896 }
2897 if off == len(msg) {
2898 return off, nil
2899 }
2900 rr.MatchingType, off, err = unpackUint8(msg, off)
2901 if err != nil {
2902 return off, fmt.Errorf("TLSA.MatchingType: %w", err)
2903 }
2904 if off == len(msg) {
2905 return off, nil
2906 }
2907 rr.Certificate, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
2908 if err != nil {
2909 return off, fmt.Errorf("TLSA.Certificate: %w", err)
2910 }
2911 return off, nil
2912 }
2913
2914 func (rr *TSIG) unpack(msg []byte, off int) (off1 int, err error) {
2915 rdStart := off
2916 _ = rdStart
2917
2918 rr.Algorithm, off, err = UnpackDomainName(msg, off)
2919 if err != nil {
2920 return off, fmt.Errorf("TSIG.Algorithm: %w", err)
2921 }
2922 if off == len(msg) {
2923 return off, nil
2924 }
2925 rr.TimeSigned, off, err = unpackUint48(msg, off)
2926 if err != nil {
2927 return off, fmt.Errorf("TSIG.TimeSigned: %w", err)
2928 }
2929 if off == len(msg) {
2930 return off, nil
2931 }
2932 rr.Fudge, off, err = unpackUint16(msg, off)
2933 if err != nil {
2934 return off, fmt.Errorf("TSIG.Fudge: %w", err)
2935 }
2936 if off == len(msg) {
2937 return off, nil
2938 }
2939 rr.MACSize, off, err = unpackUint16(msg, off)
2940 if err != nil {
2941 return off, fmt.Errorf("TSIG.MACSize: %w", err)
2942 }
2943 if off == len(msg) {
2944 return off, nil
2945 }
2946 rr.MAC, off, err = unpackStringHex(msg, off, off+int(rr.MACSize))
2947 if err != nil {
2948 return off, err
2949 }
2950 rr.OrigId, off, err = unpackUint16(msg, off)
2951 if err != nil {
2952 return off, fmt.Errorf("TSIG.OrigId: %w", err)
2953 }
2954 if off == len(msg) {
2955 return off, nil
2956 }
2957 rr.Error, off, err = unpackUint16(msg, off)
2958 if err != nil {
2959 return off, fmt.Errorf("TSIG.Error: %w", err)
2960 }
2961 if off == len(msg) {
2962 return off, nil
2963 }
2964 rr.OtherLen, off, err = unpackUint16(msg, off)
2965 if err != nil {
2966 return off, fmt.Errorf("TSIG.OtherLen: %w", err)
2967 }
2968 if off == len(msg) {
2969 return off, nil
2970 }
2971 rr.OtherData, off, err = unpackStringHex(msg, off, off+int(rr.OtherLen))
2972 if err != nil {
2973 return off, err
2974 }
2975 return off, nil
2976 }
2977
2978 func (rr *TXT) unpack(msg []byte, off int) (off1 int, err error) {
2979 rdStart := off
2980 _ = rdStart
2981
2982 rr.Txt, off, err = unpackStringTxt(msg, off)
2983 if err != nil {
2984 return off, fmt.Errorf("TXT.Txt: %w", err)
2985 }
2986 return off, nil
2987 }
2988
2989 func (rr *UID) unpack(msg []byte, off int) (off1 int, err error) {
2990 rdStart := off
2991 _ = rdStart
2992
2993 rr.Uid, off, err = unpackUint32(msg, off)
2994 if err != nil {
2995 return off, fmt.Errorf("UID.Uid: %w", err)
2996 }
2997 return off, nil
2998 }
2999
3000 func (rr *UINFO) unpack(msg []byte, off int) (off1 int, err error) {
3001 rdStart := off
3002 _ = rdStart
3003
3004 rr.Uinfo, off, err = unpackString(msg, off)
3005 if err != nil {
3006 return off, fmt.Errorf("UINFO.Uinfo: %w", err)
3007 }
3008 return off, nil
3009 }
3010
3011 func (rr *URI) unpack(msg []byte, off int) (off1 int, err error) {
3012 rdStart := off
3013 _ = rdStart
3014
3015 rr.Priority, off, err = unpackUint16(msg, off)
3016 if err != nil {
3017 return off, fmt.Errorf("URI.Priority: %w", err)
3018 }
3019 if off == len(msg) {
3020 return off, nil
3021 }
3022 rr.Weight, off, err = unpackUint16(msg, off)
3023 if err != nil {
3024 return off, fmt.Errorf("URI.Weight: %w", err)
3025 }
3026 if off == len(msg) {
3027 return off, nil
3028 }
3029 rr.Target, off, err = unpackStringOctet(msg, off)
3030 if err != nil {
3031 return off, fmt.Errorf("URI.Target: %w", err)
3032 }
3033 return off, nil
3034 }
3035
3036 func (rr *X25) unpack(msg []byte, off int) (off1 int, err error) {
3037 rdStart := off
3038 _ = rdStart
3039
3040 rr.PSDNAddress, off, err = unpackString(msg, off)
3041 if err != nil {
3042 return off, fmt.Errorf("X25.PSDNAddress: %w", err)
3043 }
3044 return off, nil
3045 }
3046
3047 func (rr *ZONEMD) unpack(msg []byte, off int) (off1 int, err error) {
3048 rdStart := off
3049 _ = rdStart
3050
3051 rr.Serial, off, err = unpackUint32(msg, off)
3052 if err != nil {
3053 return off, fmt.Errorf("ZONEMD.Serial: %w", err)
3054 }
3055 if off == len(msg) {
3056 return off, nil
3057 }
3058 rr.Scheme, off, err = unpackUint8(msg, off)
3059 if err != nil {
3060 return off, fmt.Errorf("ZONEMD.Scheme: %w", err)
3061 }
3062 if off == len(msg) {
3063 return off, nil
3064 }
3065 rr.Hash, off, err = unpackUint8(msg, off)
3066 if err != nil {
3067 return off, fmt.Errorf("ZONEMD.Hash: %w", err)
3068 }
3069 if off == len(msg) {
3070 return off, nil
3071 }
3072 rr.Digest, off, err = unpackStringHex(msg, off, rdStart+int(rr.Hdr.Rdlength))
3073 if err != nil {
3074 return off, fmt.Errorf("ZONEMD.Digest: %w", err)
3075 }
3076 return off, nil
3077 }
3078