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