1// Code generated by "go run duplicate_generate.go"; DO NOT EDIT. 2 3package dns 4 5// isDuplicate() functions 6 7func (r1 *A) isDuplicate(_r2 RR) bool { 8 r2, ok := _r2.(*A) 9 if !ok { 10 return false 11 } 12 _ = r2 13 if !r1.A.Equal(r2.A) { 14 return false 15 } 16 return true 17} 18 19func (r1 *AAAA) isDuplicate(_r2 RR) bool { 20 r2, ok := _r2.(*AAAA) 21 if !ok { 22 return false 23 } 24 _ = r2 25 if !r1.AAAA.Equal(r2.AAAA) { 26 return false 27 } 28 return true 29} 30 31func (r1 *AFSDB) isDuplicate(_r2 RR) bool { 32 r2, ok := _r2.(*AFSDB) 33 if !ok { 34 return false 35 } 36 _ = r2 37 if r1.Subtype != r2.Subtype { 38 return false 39 } 40 if !isDuplicateName(r1.Hostname, r2.Hostname) { 41 return false 42 } 43 return true 44} 45 46func (r1 *ANY) isDuplicate(_r2 RR) bool { 47 r2, ok := _r2.(*ANY) 48 if !ok { 49 return false 50 } 51 _ = r2 52 return true 53} 54 55func (r1 *APL) isDuplicate(_r2 RR) bool { 56 r2, ok := _r2.(*APL) 57 if !ok { 58 return false 59 } 60 _ = r2 61 if len(r1.Prefixes) != len(r2.Prefixes) { 62 return false 63 } 64 for i := 0; i < len(r1.Prefixes); i++ { 65 if !r1.Prefixes[i].equals(&r2.Prefixes[i]) { 66 return false 67 } 68 } 69 return true 70} 71 72func (r1 *AVC) isDuplicate(_r2 RR) bool { 73 r2, ok := _r2.(*AVC) 74 if !ok { 75 return false 76 } 77 _ = r2 78 if len(r1.Txt) != len(r2.Txt) { 79 return false 80 } 81 for i := 0; i < len(r1.Txt); i++ { 82 if r1.Txt[i] != r2.Txt[i] { 83 return false 84 } 85 } 86 return true 87} 88 89func (r1 *CAA) isDuplicate(_r2 RR) bool { 90 r2, ok := _r2.(*CAA) 91 if !ok { 92 return false 93 } 94 _ = r2 95 if r1.Flag != r2.Flag { 96 return false 97 } 98 if r1.Tag != r2.Tag { 99 return false 100 } 101 if r1.Value != r2.Value { 102 return false 103 } 104 return true 105} 106 107func (r1 *CDNSKEY) isDuplicate(_r2 RR) bool { 108 r2, ok := _r2.(*CDNSKEY) 109 if !ok { 110 return false 111 } 112 _ = r2 113 if r1.Flags != r2.Flags { 114 return false 115 } 116 if r1.Protocol != r2.Protocol { 117 return false 118 } 119 if r1.Algorithm != r2.Algorithm { 120 return false 121 } 122 if r1.PublicKey != r2.PublicKey { 123 return false 124 } 125 return true 126} 127 128func (r1 *CDS) isDuplicate(_r2 RR) bool { 129 r2, ok := _r2.(*CDS) 130 if !ok { 131 return false 132 } 133 _ = r2 134 if r1.KeyTag != r2.KeyTag { 135 return false 136 } 137 if r1.Algorithm != r2.Algorithm { 138 return false 139 } 140 if r1.DigestType != r2.DigestType { 141 return false 142 } 143 if r1.Digest != r2.Digest { 144 return false 145 } 146 return true 147} 148 149func (r1 *CERT) isDuplicate(_r2 RR) bool { 150 r2, ok := _r2.(*CERT) 151 if !ok { 152 return false 153 } 154 _ = r2 155 if r1.Type != r2.Type { 156 return false 157 } 158 if r1.KeyTag != r2.KeyTag { 159 return false 160 } 161 if r1.Algorithm != r2.Algorithm { 162 return false 163 } 164 if r1.Certificate != r2.Certificate { 165 return false 166 } 167 return true 168} 169 170func (r1 *CNAME) isDuplicate(_r2 RR) bool { 171 r2, ok := _r2.(*CNAME) 172 if !ok { 173 return false 174 } 175 _ = r2 176 if !isDuplicateName(r1.Target, r2.Target) { 177 return false 178 } 179 return true 180} 181 182func (r1 *CSYNC) isDuplicate(_r2 RR) bool { 183 r2, ok := _r2.(*CSYNC) 184 if !ok { 185 return false 186 } 187 _ = r2 188 if r1.Serial != r2.Serial { 189 return false 190 } 191 if r1.Flags != r2.Flags { 192 return false 193 } 194 if len(r1.TypeBitMap) != len(r2.TypeBitMap) { 195 return false 196 } 197 for i := 0; i < len(r1.TypeBitMap); i++ { 198 if r1.TypeBitMap[i] != r2.TypeBitMap[i] { 199 return false 200 } 201 } 202 return true 203} 204 205func (r1 *DHCID) isDuplicate(_r2 RR) bool { 206 r2, ok := _r2.(*DHCID) 207 if !ok { 208 return false 209 } 210 _ = r2 211 if r1.Digest != r2.Digest { 212 return false 213 } 214 return true 215} 216 217func (r1 *DLV) isDuplicate(_r2 RR) bool { 218 r2, ok := _r2.(*DLV) 219 if !ok { 220 return false 221 } 222 _ = r2 223 if r1.KeyTag != r2.KeyTag { 224 return false 225 } 226 if r1.Algorithm != r2.Algorithm { 227 return false 228 } 229 if r1.DigestType != r2.DigestType { 230 return false 231 } 232 if r1.Digest != r2.Digest { 233 return false 234 } 235 return true 236} 237 238func (r1 *DNAME) isDuplicate(_r2 RR) bool { 239 r2, ok := _r2.(*DNAME) 240 if !ok { 241 return false 242 } 243 _ = r2 244 if !isDuplicateName(r1.Target, r2.Target) { 245 return false 246 } 247 return true 248} 249 250func (r1 *DNSKEY) isDuplicate(_r2 RR) bool { 251 r2, ok := _r2.(*DNSKEY) 252 if !ok { 253 return false 254 } 255 _ = r2 256 if r1.Flags != r2.Flags { 257 return false 258 } 259 if r1.Protocol != r2.Protocol { 260 return false 261 } 262 if r1.Algorithm != r2.Algorithm { 263 return false 264 } 265 if r1.PublicKey != r2.PublicKey { 266 return false 267 } 268 return true 269} 270 271func (r1 *DS) isDuplicate(_r2 RR) bool { 272 r2, ok := _r2.(*DS) 273 if !ok { 274 return false 275 } 276 _ = r2 277 if r1.KeyTag != r2.KeyTag { 278 return false 279 } 280 if r1.Algorithm != r2.Algorithm { 281 return false 282 } 283 if r1.DigestType != r2.DigestType { 284 return false 285 } 286 if r1.Digest != r2.Digest { 287 return false 288 } 289 return true 290} 291 292func (r1 *EID) isDuplicate(_r2 RR) bool { 293 r2, ok := _r2.(*EID) 294 if !ok { 295 return false 296 } 297 _ = r2 298 if r1.Endpoint != r2.Endpoint { 299 return false 300 } 301 return true 302} 303 304func (r1 *EUI48) isDuplicate(_r2 RR) bool { 305 r2, ok := _r2.(*EUI48) 306 if !ok { 307 return false 308 } 309 _ = r2 310 if r1.Address != r2.Address { 311 return false 312 } 313 return true 314} 315 316func (r1 *EUI64) isDuplicate(_r2 RR) bool { 317 r2, ok := _r2.(*EUI64) 318 if !ok { 319 return false 320 } 321 _ = r2 322 if r1.Address != r2.Address { 323 return false 324 } 325 return true 326} 327 328func (r1 *GID) isDuplicate(_r2 RR) bool { 329 r2, ok := _r2.(*GID) 330 if !ok { 331 return false 332 } 333 _ = r2 334 if r1.Gid != r2.Gid { 335 return false 336 } 337 return true 338} 339 340func (r1 *GPOS) isDuplicate(_r2 RR) bool { 341 r2, ok := _r2.(*GPOS) 342 if !ok { 343 return false 344 } 345 _ = r2 346 if r1.Longitude != r2.Longitude { 347 return false 348 } 349 if r1.Latitude != r2.Latitude { 350 return false 351 } 352 if r1.Altitude != r2.Altitude { 353 return false 354 } 355 return true 356} 357 358func (r1 *HINFO) isDuplicate(_r2 RR) bool { 359 r2, ok := _r2.(*HINFO) 360 if !ok { 361 return false 362 } 363 _ = r2 364 if r1.Cpu != r2.Cpu { 365 return false 366 } 367 if r1.Os != r2.Os { 368 return false 369 } 370 return true 371} 372 373func (r1 *HIP) isDuplicate(_r2 RR) bool { 374 r2, ok := _r2.(*HIP) 375 if !ok { 376 return false 377 } 378 _ = r2 379 if r1.HitLength != r2.HitLength { 380 return false 381 } 382 if r1.PublicKeyAlgorithm != r2.PublicKeyAlgorithm { 383 return false 384 } 385 if r1.PublicKeyLength != r2.PublicKeyLength { 386 return false 387 } 388 if r1.Hit != r2.Hit { 389 return false 390 } 391 if r1.PublicKey != r2.PublicKey { 392 return false 393 } 394 if len(r1.RendezvousServers) != len(r2.RendezvousServers) { 395 return false 396 } 397 for i := 0; i < len(r1.RendezvousServers); i++ { 398 if !isDuplicateName(r1.RendezvousServers[i], r2.RendezvousServers[i]) { 399 return false 400 } 401 } 402 return true 403} 404 405func (r1 *HTTPS) isDuplicate(_r2 RR) bool { 406 r2, ok := _r2.(*HTTPS) 407 if !ok { 408 return false 409 } 410 _ = r2 411 if r1.Priority != r2.Priority { 412 return false 413 } 414 if !isDuplicateName(r1.Target, r2.Target) { 415 return false 416 } 417 if len(r1.Value) != len(r2.Value) { 418 return false 419 } 420 if !areSVCBPairArraysEqual(r1.Value, r2.Value) { 421 return false 422 } 423 return true 424} 425 426func (r1 *KEY) isDuplicate(_r2 RR) bool { 427 r2, ok := _r2.(*KEY) 428 if !ok { 429 return false 430 } 431 _ = r2 432 if r1.Flags != r2.Flags { 433 return false 434 } 435 if r1.Protocol != r2.Protocol { 436 return false 437 } 438 if r1.Algorithm != r2.Algorithm { 439 return false 440 } 441 if r1.PublicKey != r2.PublicKey { 442 return false 443 } 444 return true 445} 446 447func (r1 *KX) isDuplicate(_r2 RR) bool { 448 r2, ok := _r2.(*KX) 449 if !ok { 450 return false 451 } 452 _ = r2 453 if r1.Preference != r2.Preference { 454 return false 455 } 456 if !isDuplicateName(r1.Exchanger, r2.Exchanger) { 457 return false 458 } 459 return true 460} 461 462func (r1 *L32) isDuplicate(_r2 RR) bool { 463 r2, ok := _r2.(*L32) 464 if !ok { 465 return false 466 } 467 _ = r2 468 if r1.Preference != r2.Preference { 469 return false 470 } 471 if !r1.Locator32.Equal(r2.Locator32) { 472 return false 473 } 474 return true 475} 476 477func (r1 *L64) isDuplicate(_r2 RR) bool { 478 r2, ok := _r2.(*L64) 479 if !ok { 480 return false 481 } 482 _ = r2 483 if r1.Preference != r2.Preference { 484 return false 485 } 486 if r1.Locator64 != r2.Locator64 { 487 return false 488 } 489 return true 490} 491 492func (r1 *LOC) isDuplicate(_r2 RR) bool { 493 r2, ok := _r2.(*LOC) 494 if !ok { 495 return false 496 } 497 _ = r2 498 if r1.Version != r2.Version { 499 return false 500 } 501 if r1.Size != r2.Size { 502 return false 503 } 504 if r1.HorizPre != r2.HorizPre { 505 return false 506 } 507 if r1.VertPre != r2.VertPre { 508 return false 509 } 510 if r1.Latitude != r2.Latitude { 511 return false 512 } 513 if r1.Longitude != r2.Longitude { 514 return false 515 } 516 if r1.Altitude != r2.Altitude { 517 return false 518 } 519 return true 520} 521 522func (r1 *LP) isDuplicate(_r2 RR) bool { 523 r2, ok := _r2.(*LP) 524 if !ok { 525 return false 526 } 527 _ = r2 528 if r1.Preference != r2.Preference { 529 return false 530 } 531 if !isDuplicateName(r1.Fqdn, r2.Fqdn) { 532 return false 533 } 534 return true 535} 536 537func (r1 *MB) isDuplicate(_r2 RR) bool { 538 r2, ok := _r2.(*MB) 539 if !ok { 540 return false 541 } 542 _ = r2 543 if !isDuplicateName(r1.Mb, r2.Mb) { 544 return false 545 } 546 return true 547} 548 549func (r1 *MD) isDuplicate(_r2 RR) bool { 550 r2, ok := _r2.(*MD) 551 if !ok { 552 return false 553 } 554 _ = r2 555 if !isDuplicateName(r1.Md, r2.Md) { 556 return false 557 } 558 return true 559} 560 561func (r1 *MF) isDuplicate(_r2 RR) bool { 562 r2, ok := _r2.(*MF) 563 if !ok { 564 return false 565 } 566 _ = r2 567 if !isDuplicateName(r1.Mf, r2.Mf) { 568 return false 569 } 570 return true 571} 572 573func (r1 *MG) isDuplicate(_r2 RR) bool { 574 r2, ok := _r2.(*MG) 575 if !ok { 576 return false 577 } 578 _ = r2 579 if !isDuplicateName(r1.Mg, r2.Mg) { 580 return false 581 } 582 return true 583} 584 585func (r1 *MINFO) isDuplicate(_r2 RR) bool { 586 r2, ok := _r2.(*MINFO) 587 if !ok { 588 return false 589 } 590 _ = r2 591 if !isDuplicateName(r1.Rmail, r2.Rmail) { 592 return false 593 } 594 if !isDuplicateName(r1.Email, r2.Email) { 595 return false 596 } 597 return true 598} 599 600func (r1 *MR) isDuplicate(_r2 RR) bool { 601 r2, ok := _r2.(*MR) 602 if !ok { 603 return false 604 } 605 _ = r2 606 if !isDuplicateName(r1.Mr, r2.Mr) { 607 return false 608 } 609 return true 610} 611 612func (r1 *MX) isDuplicate(_r2 RR) bool { 613 r2, ok := _r2.(*MX) 614 if !ok { 615 return false 616 } 617 _ = r2 618 if r1.Preference != r2.Preference { 619 return false 620 } 621 if !isDuplicateName(r1.Mx, r2.Mx) { 622 return false 623 } 624 return true 625} 626 627func (r1 *NAPTR) isDuplicate(_r2 RR) bool { 628 r2, ok := _r2.(*NAPTR) 629 if !ok { 630 return false 631 } 632 _ = r2 633 if r1.Order != r2.Order { 634 return false 635 } 636 if r1.Preference != r2.Preference { 637 return false 638 } 639 if r1.Flags != r2.Flags { 640 return false 641 } 642 if r1.Service != r2.Service { 643 return false 644 } 645 if r1.Regexp != r2.Regexp { 646 return false 647 } 648 if !isDuplicateName(r1.Replacement, r2.Replacement) { 649 return false 650 } 651 return true 652} 653 654func (r1 *NID) isDuplicate(_r2 RR) bool { 655 r2, ok := _r2.(*NID) 656 if !ok { 657 return false 658 } 659 _ = r2 660 if r1.Preference != r2.Preference { 661 return false 662 } 663 if r1.NodeID != r2.NodeID { 664 return false 665 } 666 return true 667} 668 669func (r1 *NIMLOC) isDuplicate(_r2 RR) bool { 670 r2, ok := _r2.(*NIMLOC) 671 if !ok { 672 return false 673 } 674 _ = r2 675 if r1.Locator != r2.Locator { 676 return false 677 } 678 return true 679} 680 681func (r1 *NINFO) isDuplicate(_r2 RR) bool { 682 r2, ok := _r2.(*NINFO) 683 if !ok { 684 return false 685 } 686 _ = r2 687 if len(r1.ZSData) != len(r2.ZSData) { 688 return false 689 } 690 for i := 0; i < len(r1.ZSData); i++ { 691 if r1.ZSData[i] != r2.ZSData[i] { 692 return false 693 } 694 } 695 return true 696} 697 698func (r1 *NS) isDuplicate(_r2 RR) bool { 699 r2, ok := _r2.(*NS) 700 if !ok { 701 return false 702 } 703 _ = r2 704 if !isDuplicateName(r1.Ns, r2.Ns) { 705 return false 706 } 707 return true 708} 709 710func (r1 *NSAPPTR) isDuplicate(_r2 RR) bool { 711 r2, ok := _r2.(*NSAPPTR) 712 if !ok { 713 return false 714 } 715 _ = r2 716 if !isDuplicateName(r1.Ptr, r2.Ptr) { 717 return false 718 } 719 return true 720} 721 722func (r1 *NSEC) isDuplicate(_r2 RR) bool { 723 r2, ok := _r2.(*NSEC) 724 if !ok { 725 return false 726 } 727 _ = r2 728 if !isDuplicateName(r1.NextDomain, r2.NextDomain) { 729 return false 730 } 731 if len(r1.TypeBitMap) != len(r2.TypeBitMap) { 732 return false 733 } 734 for i := 0; i < len(r1.TypeBitMap); i++ { 735 if r1.TypeBitMap[i] != r2.TypeBitMap[i] { 736 return false 737 } 738 } 739 return true 740} 741 742func (r1 *NSEC3) isDuplicate(_r2 RR) bool { 743 r2, ok := _r2.(*NSEC3) 744 if !ok { 745 return false 746 } 747 _ = r2 748 if r1.Hash != r2.Hash { 749 return false 750 } 751 if r1.Flags != r2.Flags { 752 return false 753 } 754 if r1.Iterations != r2.Iterations { 755 return false 756 } 757 if r1.SaltLength != r2.SaltLength { 758 return false 759 } 760 if r1.Salt != r2.Salt { 761 return false 762 } 763 if r1.HashLength != r2.HashLength { 764 return false 765 } 766 if r1.NextDomain != r2.NextDomain { 767 return false 768 } 769 if len(r1.TypeBitMap) != len(r2.TypeBitMap) { 770 return false 771 } 772 for i := 0; i < len(r1.TypeBitMap); i++ { 773 if r1.TypeBitMap[i] != r2.TypeBitMap[i] { 774 return false 775 } 776 } 777 return true 778} 779 780func (r1 *NSEC3PARAM) isDuplicate(_r2 RR) bool { 781 r2, ok := _r2.(*NSEC3PARAM) 782 if !ok { 783 return false 784 } 785 _ = r2 786 if r1.Hash != r2.Hash { 787 return false 788 } 789 if r1.Flags != r2.Flags { 790 return false 791 } 792 if r1.Iterations != r2.Iterations { 793 return false 794 } 795 if r1.SaltLength != r2.SaltLength { 796 return false 797 } 798 if r1.Salt != r2.Salt { 799 return false 800 } 801 return true 802} 803 804func (r1 *NULL) isDuplicate(_r2 RR) bool { 805 r2, ok := _r2.(*NULL) 806 if !ok { 807 return false 808 } 809 _ = r2 810 if r1.Data != r2.Data { 811 return false 812 } 813 return true 814} 815 816func (r1 *OPENPGPKEY) isDuplicate(_r2 RR) bool { 817 r2, ok := _r2.(*OPENPGPKEY) 818 if !ok { 819 return false 820 } 821 _ = r2 822 if r1.PublicKey != r2.PublicKey { 823 return false 824 } 825 return true 826} 827 828func (r1 *PTR) isDuplicate(_r2 RR) bool { 829 r2, ok := _r2.(*PTR) 830 if !ok { 831 return false 832 } 833 _ = r2 834 if !isDuplicateName(r1.Ptr, r2.Ptr) { 835 return false 836 } 837 return true 838} 839 840func (r1 *PX) isDuplicate(_r2 RR) bool { 841 r2, ok := _r2.(*PX) 842 if !ok { 843 return false 844 } 845 _ = r2 846 if r1.Preference != r2.Preference { 847 return false 848 } 849 if !isDuplicateName(r1.Map822, r2.Map822) { 850 return false 851 } 852 if !isDuplicateName(r1.Mapx400, r2.Mapx400) { 853 return false 854 } 855 return true 856} 857 858func (r1 *RFC3597) isDuplicate(_r2 RR) bool { 859 r2, ok := _r2.(*RFC3597) 860 if !ok { 861 return false 862 } 863 _ = r2 864 if r1.Rdata != r2.Rdata { 865 return false 866 } 867 return true 868} 869 870func (r1 *RKEY) isDuplicate(_r2 RR) bool { 871 r2, ok := _r2.(*RKEY) 872 if !ok { 873 return false 874 } 875 _ = r2 876 if r1.Flags != r2.Flags { 877 return false 878 } 879 if r1.Protocol != r2.Protocol { 880 return false 881 } 882 if r1.Algorithm != r2.Algorithm { 883 return false 884 } 885 if r1.PublicKey != r2.PublicKey { 886 return false 887 } 888 return true 889} 890 891func (r1 *RP) isDuplicate(_r2 RR) bool { 892 r2, ok := _r2.(*RP) 893 if !ok { 894 return false 895 } 896 _ = r2 897 if !isDuplicateName(r1.Mbox, r2.Mbox) { 898 return false 899 } 900 if !isDuplicateName(r1.Txt, r2.Txt) { 901 return false 902 } 903 return true 904} 905 906func (r1 *RRSIG) isDuplicate(_r2 RR) bool { 907 r2, ok := _r2.(*RRSIG) 908 if !ok { 909 return false 910 } 911 _ = r2 912 if r1.TypeCovered != r2.TypeCovered { 913 return false 914 } 915 if r1.Algorithm != r2.Algorithm { 916 return false 917 } 918 if r1.Labels != r2.Labels { 919 return false 920 } 921 if r1.OrigTtl != r2.OrigTtl { 922 return false 923 } 924 if r1.Expiration != r2.Expiration { 925 return false 926 } 927 if r1.Inception != r2.Inception { 928 return false 929 } 930 if r1.KeyTag != r2.KeyTag { 931 return false 932 } 933 if !isDuplicateName(r1.SignerName, r2.SignerName) { 934 return false 935 } 936 if r1.Signature != r2.Signature { 937 return false 938 } 939 return true 940} 941 942func (r1 *RT) isDuplicate(_r2 RR) bool { 943 r2, ok := _r2.(*RT) 944 if !ok { 945 return false 946 } 947 _ = r2 948 if r1.Preference != r2.Preference { 949 return false 950 } 951 if !isDuplicateName(r1.Host, r2.Host) { 952 return false 953 } 954 return true 955} 956 957func (r1 *SIG) isDuplicate(_r2 RR) bool { 958 r2, ok := _r2.(*SIG) 959 if !ok { 960 return false 961 } 962 _ = r2 963 if r1.TypeCovered != r2.TypeCovered { 964 return false 965 } 966 if r1.Algorithm != r2.Algorithm { 967 return false 968 } 969 if r1.Labels != r2.Labels { 970 return false 971 } 972 if r1.OrigTtl != r2.OrigTtl { 973 return false 974 } 975 if r1.Expiration != r2.Expiration { 976 return false 977 } 978 if r1.Inception != r2.Inception { 979 return false 980 } 981 if r1.KeyTag != r2.KeyTag { 982 return false 983 } 984 if !isDuplicateName(r1.SignerName, r2.SignerName) { 985 return false 986 } 987 if r1.Signature != r2.Signature { 988 return false 989 } 990 return true 991} 992 993func (r1 *SMIMEA) isDuplicate(_r2 RR) bool { 994 r2, ok := _r2.(*SMIMEA) 995 if !ok { 996 return false 997 } 998 _ = r2 999 if r1.Usage != r2.Usage { 1000 return false 1001 } 1002 if r1.Selector != r2.Selector { 1003 return false 1004 } 1005 if r1.MatchingType != r2.MatchingType { 1006 return false 1007 } 1008 if r1.Certificate != r2.Certificate { 1009 return false 1010 } 1011 return true 1012} 1013 1014func (r1 *SOA) isDuplicate(_r2 RR) bool { 1015 r2, ok := _r2.(*SOA) 1016 if !ok { 1017 return false 1018 } 1019 _ = r2 1020 if !isDuplicateName(r1.Ns, r2.Ns) { 1021 return false 1022 } 1023 if !isDuplicateName(r1.Mbox, r2.Mbox) { 1024 return false 1025 } 1026 if r1.Serial != r2.Serial { 1027 return false 1028 } 1029 if r1.Refresh != r2.Refresh { 1030 return false 1031 } 1032 if r1.Retry != r2.Retry { 1033 return false 1034 } 1035 if r1.Expire != r2.Expire { 1036 return false 1037 } 1038 if r1.Minttl != r2.Minttl { 1039 return false 1040 } 1041 return true 1042} 1043 1044func (r1 *SPF) isDuplicate(_r2 RR) bool { 1045 r2, ok := _r2.(*SPF) 1046 if !ok { 1047 return false 1048 } 1049 _ = r2 1050 if len(r1.Txt) != len(r2.Txt) { 1051 return false 1052 } 1053 for i := 0; i < len(r1.Txt); i++ { 1054 if r1.Txt[i] != r2.Txt[i] { 1055 return false 1056 } 1057 } 1058 return true 1059} 1060 1061func (r1 *SRV) isDuplicate(_r2 RR) bool { 1062 r2, ok := _r2.(*SRV) 1063 if !ok { 1064 return false 1065 } 1066 _ = r2 1067 if r1.Priority != r2.Priority { 1068 return false 1069 } 1070 if r1.Weight != r2.Weight { 1071 return false 1072 } 1073 if r1.Port != r2.Port { 1074 return false 1075 } 1076 if !isDuplicateName(r1.Target, r2.Target) { 1077 return false 1078 } 1079 return true 1080} 1081 1082func (r1 *SSHFP) isDuplicate(_r2 RR) bool { 1083 r2, ok := _r2.(*SSHFP) 1084 if !ok { 1085 return false 1086 } 1087 _ = r2 1088 if r1.Algorithm != r2.Algorithm { 1089 return false 1090 } 1091 if r1.Type != r2.Type { 1092 return false 1093 } 1094 if r1.FingerPrint != r2.FingerPrint { 1095 return false 1096 } 1097 return true 1098} 1099 1100func (r1 *SVCB) isDuplicate(_r2 RR) bool { 1101 r2, ok := _r2.(*SVCB) 1102 if !ok { 1103 return false 1104 } 1105 _ = r2 1106 if r1.Priority != r2.Priority { 1107 return false 1108 } 1109 if !isDuplicateName(r1.Target, r2.Target) { 1110 return false 1111 } 1112 if len(r1.Value) != len(r2.Value) { 1113 return false 1114 } 1115 if !areSVCBPairArraysEqual(r1.Value, r2.Value) { 1116 return false 1117 } 1118 return true 1119} 1120 1121func (r1 *TA) isDuplicate(_r2 RR) bool { 1122 r2, ok := _r2.(*TA) 1123 if !ok { 1124 return false 1125 } 1126 _ = r2 1127 if r1.KeyTag != r2.KeyTag { 1128 return false 1129 } 1130 if r1.Algorithm != r2.Algorithm { 1131 return false 1132 } 1133 if r1.DigestType != r2.DigestType { 1134 return false 1135 } 1136 if r1.Digest != r2.Digest { 1137 return false 1138 } 1139 return true 1140} 1141 1142func (r1 *TALINK) isDuplicate(_r2 RR) bool { 1143 r2, ok := _r2.(*TALINK) 1144 if !ok { 1145 return false 1146 } 1147 _ = r2 1148 if !isDuplicateName(r1.PreviousName, r2.PreviousName) { 1149 return false 1150 } 1151 if !isDuplicateName(r1.NextName, r2.NextName) { 1152 return false 1153 } 1154 return true 1155} 1156 1157func (r1 *TKEY) isDuplicate(_r2 RR) bool { 1158 r2, ok := _r2.(*TKEY) 1159 if !ok { 1160 return false 1161 } 1162 _ = r2 1163 if !isDuplicateName(r1.Algorithm, r2.Algorithm) { 1164 return false 1165 } 1166 if r1.Inception != r2.Inception { 1167 return false 1168 } 1169 if r1.Expiration != r2.Expiration { 1170 return false 1171 } 1172 if r1.Mode != r2.Mode { 1173 return false 1174 } 1175 if r1.Error != r2.Error { 1176 return false 1177 } 1178 if r1.KeySize != r2.KeySize { 1179 return false 1180 } 1181 if r1.Key != r2.Key { 1182 return false 1183 } 1184 if r1.OtherLen != r2.OtherLen { 1185 return false 1186 } 1187 if r1.OtherData != r2.OtherData { 1188 return false 1189 } 1190 return true 1191} 1192 1193func (r1 *TLSA) isDuplicate(_r2 RR) bool { 1194 r2, ok := _r2.(*TLSA) 1195 if !ok { 1196 return false 1197 } 1198 _ = r2 1199 if r1.Usage != r2.Usage { 1200 return false 1201 } 1202 if r1.Selector != r2.Selector { 1203 return false 1204 } 1205 if r1.MatchingType != r2.MatchingType { 1206 return false 1207 } 1208 if r1.Certificate != r2.Certificate { 1209 return false 1210 } 1211 return true 1212} 1213 1214func (r1 *TSIG) isDuplicate(_r2 RR) bool { 1215 r2, ok := _r2.(*TSIG) 1216 if !ok { 1217 return false 1218 } 1219 _ = r2 1220 if !isDuplicateName(r1.Algorithm, r2.Algorithm) { 1221 return false 1222 } 1223 if r1.TimeSigned != r2.TimeSigned { 1224 return false 1225 } 1226 if r1.Fudge != r2.Fudge { 1227 return false 1228 } 1229 if r1.MACSize != r2.MACSize { 1230 return false 1231 } 1232 if r1.MAC != r2.MAC { 1233 return false 1234 } 1235 if r1.OrigId != r2.OrigId { 1236 return false 1237 } 1238 if r1.Error != r2.Error { 1239 return false 1240 } 1241 if r1.OtherLen != r2.OtherLen { 1242 return false 1243 } 1244 if r1.OtherData != r2.OtherData { 1245 return false 1246 } 1247 return true 1248} 1249 1250func (r1 *TXT) isDuplicate(_r2 RR) bool { 1251 r2, ok := _r2.(*TXT) 1252 if !ok { 1253 return false 1254 } 1255 _ = r2 1256 if len(r1.Txt) != len(r2.Txt) { 1257 return false 1258 } 1259 for i := 0; i < len(r1.Txt); i++ { 1260 if r1.Txt[i] != r2.Txt[i] { 1261 return false 1262 } 1263 } 1264 return true 1265} 1266 1267func (r1 *UID) isDuplicate(_r2 RR) bool { 1268 r2, ok := _r2.(*UID) 1269 if !ok { 1270 return false 1271 } 1272 _ = r2 1273 if r1.Uid != r2.Uid { 1274 return false 1275 } 1276 return true 1277} 1278 1279func (r1 *UINFO) isDuplicate(_r2 RR) bool { 1280 r2, ok := _r2.(*UINFO) 1281 if !ok { 1282 return false 1283 } 1284 _ = r2 1285 if r1.Uinfo != r2.Uinfo { 1286 return false 1287 } 1288 return true 1289} 1290 1291func (r1 *URI) isDuplicate(_r2 RR) bool { 1292 r2, ok := _r2.(*URI) 1293 if !ok { 1294 return false 1295 } 1296 _ = r2 1297 if r1.Priority != r2.Priority { 1298 return false 1299 } 1300 if r1.Weight != r2.Weight { 1301 return false 1302 } 1303 if r1.Target != r2.Target { 1304 return false 1305 } 1306 return true 1307} 1308 1309func (r1 *X25) isDuplicate(_r2 RR) bool { 1310 r2, ok := _r2.(*X25) 1311 if !ok { 1312 return false 1313 } 1314 _ = r2 1315 if r1.PSDNAddress != r2.PSDNAddress { 1316 return false 1317 } 1318 return true 1319} 1320