You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

zduplicate.go 20KB

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