...

Source file src/github.com/miekg/dns/zduplicate.go

Documentation: github.com/miekg/dns

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

View as plain text