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