zduplicate.go 17 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157
  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 *CERT) isDuplicate(_r2 RR) bool {
  98. r2, ok := _r2.(*CERT)
  99. if !ok {
  100. return false
  101. }
  102. _ = r2
  103. if r1.Type != r2.Type {
  104. return false
  105. }
  106. if r1.KeyTag != r2.KeyTag {
  107. return false
  108. }
  109. if r1.Algorithm != r2.Algorithm {
  110. return false
  111. }
  112. if r1.Certificate != r2.Certificate {
  113. return false
  114. }
  115. return true
  116. }
  117. func (r1 *CNAME) isDuplicate(_r2 RR) bool {
  118. r2, ok := _r2.(*CNAME)
  119. if !ok {
  120. return false
  121. }
  122. _ = r2
  123. if !isDuplicateName(r1.Target, r2.Target) {
  124. return false
  125. }
  126. return true
  127. }
  128. func (r1 *CSYNC) isDuplicate(_r2 RR) bool {
  129. r2, ok := _r2.(*CSYNC)
  130. if !ok {
  131. return false
  132. }
  133. _ = r2
  134. if r1.Serial != r2.Serial {
  135. return false
  136. }
  137. if r1.Flags != r2.Flags {
  138. return false
  139. }
  140. if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
  141. return false
  142. }
  143. for i := 0; i < len(r1.TypeBitMap); i++ {
  144. if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
  145. return false
  146. }
  147. }
  148. return true
  149. }
  150. func (r1 *DHCID) isDuplicate(_r2 RR) bool {
  151. r2, ok := _r2.(*DHCID)
  152. if !ok {
  153. return false
  154. }
  155. _ = r2
  156. if r1.Digest != r2.Digest {
  157. return false
  158. }
  159. return true
  160. }
  161. func (r1 *DNAME) isDuplicate(_r2 RR) bool {
  162. r2, ok := _r2.(*DNAME)
  163. if !ok {
  164. return false
  165. }
  166. _ = r2
  167. if !isDuplicateName(r1.Target, r2.Target) {
  168. return false
  169. }
  170. return true
  171. }
  172. func (r1 *DNSKEY) isDuplicate(_r2 RR) bool {
  173. r2, ok := _r2.(*DNSKEY)
  174. if !ok {
  175. return false
  176. }
  177. _ = r2
  178. if r1.Flags != r2.Flags {
  179. return false
  180. }
  181. if r1.Protocol != r2.Protocol {
  182. return false
  183. }
  184. if r1.Algorithm != r2.Algorithm {
  185. return false
  186. }
  187. if r1.PublicKey != r2.PublicKey {
  188. return false
  189. }
  190. return true
  191. }
  192. func (r1 *DS) isDuplicate(_r2 RR) bool {
  193. r2, ok := _r2.(*DS)
  194. if !ok {
  195. return false
  196. }
  197. _ = r2
  198. if r1.KeyTag != r2.KeyTag {
  199. return false
  200. }
  201. if r1.Algorithm != r2.Algorithm {
  202. return false
  203. }
  204. if r1.DigestType != r2.DigestType {
  205. return false
  206. }
  207. if r1.Digest != r2.Digest {
  208. return false
  209. }
  210. return true
  211. }
  212. func (r1 *EID) isDuplicate(_r2 RR) bool {
  213. r2, ok := _r2.(*EID)
  214. if !ok {
  215. return false
  216. }
  217. _ = r2
  218. if r1.Endpoint != r2.Endpoint {
  219. return false
  220. }
  221. return true
  222. }
  223. func (r1 *EUI48) isDuplicate(_r2 RR) bool {
  224. r2, ok := _r2.(*EUI48)
  225. if !ok {
  226. return false
  227. }
  228. _ = r2
  229. if r1.Address != r2.Address {
  230. return false
  231. }
  232. return true
  233. }
  234. func (r1 *EUI64) isDuplicate(_r2 RR) bool {
  235. r2, ok := _r2.(*EUI64)
  236. if !ok {
  237. return false
  238. }
  239. _ = r2
  240. if r1.Address != r2.Address {
  241. return false
  242. }
  243. return true
  244. }
  245. func (r1 *GID) isDuplicate(_r2 RR) bool {
  246. r2, ok := _r2.(*GID)
  247. if !ok {
  248. return false
  249. }
  250. _ = r2
  251. if r1.Gid != r2.Gid {
  252. return false
  253. }
  254. return true
  255. }
  256. func (r1 *GPOS) isDuplicate(_r2 RR) bool {
  257. r2, ok := _r2.(*GPOS)
  258. if !ok {
  259. return false
  260. }
  261. _ = r2
  262. if r1.Longitude != r2.Longitude {
  263. return false
  264. }
  265. if r1.Latitude != r2.Latitude {
  266. return false
  267. }
  268. if r1.Altitude != r2.Altitude {
  269. return false
  270. }
  271. return true
  272. }
  273. func (r1 *HINFO) isDuplicate(_r2 RR) bool {
  274. r2, ok := _r2.(*HINFO)
  275. if !ok {
  276. return false
  277. }
  278. _ = r2
  279. if r1.Cpu != r2.Cpu {
  280. return false
  281. }
  282. if r1.Os != r2.Os {
  283. return false
  284. }
  285. return true
  286. }
  287. func (r1 *HIP) isDuplicate(_r2 RR) bool {
  288. r2, ok := _r2.(*HIP)
  289. if !ok {
  290. return false
  291. }
  292. _ = r2
  293. if r1.HitLength != r2.HitLength {
  294. return false
  295. }
  296. if r1.PublicKeyAlgorithm != r2.PublicKeyAlgorithm {
  297. return false
  298. }
  299. if r1.PublicKeyLength != r2.PublicKeyLength {
  300. return false
  301. }
  302. if r1.Hit != r2.Hit {
  303. return false
  304. }
  305. if r1.PublicKey != r2.PublicKey {
  306. return false
  307. }
  308. if len(r1.RendezvousServers) != len(r2.RendezvousServers) {
  309. return false
  310. }
  311. for i := 0; i < len(r1.RendezvousServers); i++ {
  312. if !isDuplicateName(r1.RendezvousServers[i], r2.RendezvousServers[i]) {
  313. return false
  314. }
  315. }
  316. return true
  317. }
  318. func (r1 *KX) isDuplicate(_r2 RR) bool {
  319. r2, ok := _r2.(*KX)
  320. if !ok {
  321. return false
  322. }
  323. _ = r2
  324. if r1.Preference != r2.Preference {
  325. return false
  326. }
  327. if !isDuplicateName(r1.Exchanger, r2.Exchanger) {
  328. return false
  329. }
  330. return true
  331. }
  332. func (r1 *L32) isDuplicate(_r2 RR) bool {
  333. r2, ok := _r2.(*L32)
  334. if !ok {
  335. return false
  336. }
  337. _ = r2
  338. if r1.Preference != r2.Preference {
  339. return false
  340. }
  341. if !r1.Locator32.Equal(r2.Locator32) {
  342. return false
  343. }
  344. return true
  345. }
  346. func (r1 *L64) isDuplicate(_r2 RR) bool {
  347. r2, ok := _r2.(*L64)
  348. if !ok {
  349. return false
  350. }
  351. _ = r2
  352. if r1.Preference != r2.Preference {
  353. return false
  354. }
  355. if r1.Locator64 != r2.Locator64 {
  356. return false
  357. }
  358. return true
  359. }
  360. func (r1 *LOC) isDuplicate(_r2 RR) bool {
  361. r2, ok := _r2.(*LOC)
  362. if !ok {
  363. return false
  364. }
  365. _ = r2
  366. if r1.Version != r2.Version {
  367. return false
  368. }
  369. if r1.Size != r2.Size {
  370. return false
  371. }
  372. if r1.HorizPre != r2.HorizPre {
  373. return false
  374. }
  375. if r1.VertPre != r2.VertPre {
  376. return false
  377. }
  378. if r1.Latitude != r2.Latitude {
  379. return false
  380. }
  381. if r1.Longitude != r2.Longitude {
  382. return false
  383. }
  384. if r1.Altitude != r2.Altitude {
  385. return false
  386. }
  387. return true
  388. }
  389. func (r1 *LP) isDuplicate(_r2 RR) bool {
  390. r2, ok := _r2.(*LP)
  391. if !ok {
  392. return false
  393. }
  394. _ = r2
  395. if r1.Preference != r2.Preference {
  396. return false
  397. }
  398. if !isDuplicateName(r1.Fqdn, r2.Fqdn) {
  399. return false
  400. }
  401. return true
  402. }
  403. func (r1 *MB) isDuplicate(_r2 RR) bool {
  404. r2, ok := _r2.(*MB)
  405. if !ok {
  406. return false
  407. }
  408. _ = r2
  409. if !isDuplicateName(r1.Mb, r2.Mb) {
  410. return false
  411. }
  412. return true
  413. }
  414. func (r1 *MD) isDuplicate(_r2 RR) bool {
  415. r2, ok := _r2.(*MD)
  416. if !ok {
  417. return false
  418. }
  419. _ = r2
  420. if !isDuplicateName(r1.Md, r2.Md) {
  421. return false
  422. }
  423. return true
  424. }
  425. func (r1 *MF) isDuplicate(_r2 RR) bool {
  426. r2, ok := _r2.(*MF)
  427. if !ok {
  428. return false
  429. }
  430. _ = r2
  431. if !isDuplicateName(r1.Mf, r2.Mf) {
  432. return false
  433. }
  434. return true
  435. }
  436. func (r1 *MG) isDuplicate(_r2 RR) bool {
  437. r2, ok := _r2.(*MG)
  438. if !ok {
  439. return false
  440. }
  441. _ = r2
  442. if !isDuplicateName(r1.Mg, r2.Mg) {
  443. return false
  444. }
  445. return true
  446. }
  447. func (r1 *MINFO) isDuplicate(_r2 RR) bool {
  448. r2, ok := _r2.(*MINFO)
  449. if !ok {
  450. return false
  451. }
  452. _ = r2
  453. if !isDuplicateName(r1.Rmail, r2.Rmail) {
  454. return false
  455. }
  456. if !isDuplicateName(r1.Email, r2.Email) {
  457. return false
  458. }
  459. return true
  460. }
  461. func (r1 *MR) isDuplicate(_r2 RR) bool {
  462. r2, ok := _r2.(*MR)
  463. if !ok {
  464. return false
  465. }
  466. _ = r2
  467. if !isDuplicateName(r1.Mr, r2.Mr) {
  468. return false
  469. }
  470. return true
  471. }
  472. func (r1 *MX) isDuplicate(_r2 RR) bool {
  473. r2, ok := _r2.(*MX)
  474. if !ok {
  475. return false
  476. }
  477. _ = r2
  478. if r1.Preference != r2.Preference {
  479. return false
  480. }
  481. if !isDuplicateName(r1.Mx, r2.Mx) {
  482. return false
  483. }
  484. return true
  485. }
  486. func (r1 *NAPTR) isDuplicate(_r2 RR) bool {
  487. r2, ok := _r2.(*NAPTR)
  488. if !ok {
  489. return false
  490. }
  491. _ = r2
  492. if r1.Order != r2.Order {
  493. return false
  494. }
  495. if r1.Preference != r2.Preference {
  496. return false
  497. }
  498. if r1.Flags != r2.Flags {
  499. return false
  500. }
  501. if r1.Service != r2.Service {
  502. return false
  503. }
  504. if r1.Regexp != r2.Regexp {
  505. return false
  506. }
  507. if !isDuplicateName(r1.Replacement, r2.Replacement) {
  508. return false
  509. }
  510. return true
  511. }
  512. func (r1 *NID) isDuplicate(_r2 RR) bool {
  513. r2, ok := _r2.(*NID)
  514. if !ok {
  515. return false
  516. }
  517. _ = r2
  518. if r1.Preference != r2.Preference {
  519. return false
  520. }
  521. if r1.NodeID != r2.NodeID {
  522. return false
  523. }
  524. return true
  525. }
  526. func (r1 *NIMLOC) isDuplicate(_r2 RR) bool {
  527. r2, ok := _r2.(*NIMLOC)
  528. if !ok {
  529. return false
  530. }
  531. _ = r2
  532. if r1.Locator != r2.Locator {
  533. return false
  534. }
  535. return true
  536. }
  537. func (r1 *NINFO) isDuplicate(_r2 RR) bool {
  538. r2, ok := _r2.(*NINFO)
  539. if !ok {
  540. return false
  541. }
  542. _ = r2
  543. if len(r1.ZSData) != len(r2.ZSData) {
  544. return false
  545. }
  546. for i := 0; i < len(r1.ZSData); i++ {
  547. if r1.ZSData[i] != r2.ZSData[i] {
  548. return false
  549. }
  550. }
  551. return true
  552. }
  553. func (r1 *NS) isDuplicate(_r2 RR) bool {
  554. r2, ok := _r2.(*NS)
  555. if !ok {
  556. return false
  557. }
  558. _ = r2
  559. if !isDuplicateName(r1.Ns, r2.Ns) {
  560. return false
  561. }
  562. return true
  563. }
  564. func (r1 *NSAPPTR) isDuplicate(_r2 RR) bool {
  565. r2, ok := _r2.(*NSAPPTR)
  566. if !ok {
  567. return false
  568. }
  569. _ = r2
  570. if !isDuplicateName(r1.Ptr, r2.Ptr) {
  571. return false
  572. }
  573. return true
  574. }
  575. func (r1 *NSEC) isDuplicate(_r2 RR) bool {
  576. r2, ok := _r2.(*NSEC)
  577. if !ok {
  578. return false
  579. }
  580. _ = r2
  581. if !isDuplicateName(r1.NextDomain, r2.NextDomain) {
  582. return false
  583. }
  584. if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
  585. return false
  586. }
  587. for i := 0; i < len(r1.TypeBitMap); i++ {
  588. if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
  589. return false
  590. }
  591. }
  592. return true
  593. }
  594. func (r1 *NSEC3) isDuplicate(_r2 RR) bool {
  595. r2, ok := _r2.(*NSEC3)
  596. if !ok {
  597. return false
  598. }
  599. _ = r2
  600. if r1.Hash != r2.Hash {
  601. return false
  602. }
  603. if r1.Flags != r2.Flags {
  604. return false
  605. }
  606. if r1.Iterations != r2.Iterations {
  607. return false
  608. }
  609. if r1.SaltLength != r2.SaltLength {
  610. return false
  611. }
  612. if r1.Salt != r2.Salt {
  613. return false
  614. }
  615. if r1.HashLength != r2.HashLength {
  616. return false
  617. }
  618. if r1.NextDomain != r2.NextDomain {
  619. return false
  620. }
  621. if len(r1.TypeBitMap) != len(r2.TypeBitMap) {
  622. return false
  623. }
  624. for i := 0; i < len(r1.TypeBitMap); i++ {
  625. if r1.TypeBitMap[i] != r2.TypeBitMap[i] {
  626. return false
  627. }
  628. }
  629. return true
  630. }
  631. func (r1 *NSEC3PARAM) isDuplicate(_r2 RR) bool {
  632. r2, ok := _r2.(*NSEC3PARAM)
  633. if !ok {
  634. return false
  635. }
  636. _ = r2
  637. if r1.Hash != r2.Hash {
  638. return false
  639. }
  640. if r1.Flags != r2.Flags {
  641. return false
  642. }
  643. if r1.Iterations != r2.Iterations {
  644. return false
  645. }
  646. if r1.SaltLength != r2.SaltLength {
  647. return false
  648. }
  649. if r1.Salt != r2.Salt {
  650. return false
  651. }
  652. return true
  653. }
  654. func (r1 *NULL) isDuplicate(_r2 RR) bool {
  655. r2, ok := _r2.(*NULL)
  656. if !ok {
  657. return false
  658. }
  659. _ = r2
  660. if r1.Data != r2.Data {
  661. return false
  662. }
  663. return true
  664. }
  665. func (r1 *OPENPGPKEY) isDuplicate(_r2 RR) bool {
  666. r2, ok := _r2.(*OPENPGPKEY)
  667. if !ok {
  668. return false
  669. }
  670. _ = r2
  671. if r1.PublicKey != r2.PublicKey {
  672. return false
  673. }
  674. return true
  675. }
  676. func (r1 *PTR) isDuplicate(_r2 RR) bool {
  677. r2, ok := _r2.(*PTR)
  678. if !ok {
  679. return false
  680. }
  681. _ = r2
  682. if !isDuplicateName(r1.Ptr, r2.Ptr) {
  683. return false
  684. }
  685. return true
  686. }
  687. func (r1 *PX) isDuplicate(_r2 RR) bool {
  688. r2, ok := _r2.(*PX)
  689. if !ok {
  690. return false
  691. }
  692. _ = r2
  693. if r1.Preference != r2.Preference {
  694. return false
  695. }
  696. if !isDuplicateName(r1.Map822, r2.Map822) {
  697. return false
  698. }
  699. if !isDuplicateName(r1.Mapx400, r2.Mapx400) {
  700. return false
  701. }
  702. return true
  703. }
  704. func (r1 *RFC3597) isDuplicate(_r2 RR) bool {
  705. r2, ok := _r2.(*RFC3597)
  706. if !ok {
  707. return false
  708. }
  709. _ = r2
  710. if r1.Rdata != r2.Rdata {
  711. return false
  712. }
  713. return true
  714. }
  715. func (r1 *RKEY) isDuplicate(_r2 RR) bool {
  716. r2, ok := _r2.(*RKEY)
  717. if !ok {
  718. return false
  719. }
  720. _ = r2
  721. if r1.Flags != r2.Flags {
  722. return false
  723. }
  724. if r1.Protocol != r2.Protocol {
  725. return false
  726. }
  727. if r1.Algorithm != r2.Algorithm {
  728. return false
  729. }
  730. if r1.PublicKey != r2.PublicKey {
  731. return false
  732. }
  733. return true
  734. }
  735. func (r1 *RP) isDuplicate(_r2 RR) bool {
  736. r2, ok := _r2.(*RP)
  737. if !ok {
  738. return false
  739. }
  740. _ = r2
  741. if !isDuplicateName(r1.Mbox, r2.Mbox) {
  742. return false
  743. }
  744. if !isDuplicateName(r1.Txt, r2.Txt) {
  745. return false
  746. }
  747. return true
  748. }
  749. func (r1 *RRSIG) isDuplicate(_r2 RR) bool {
  750. r2, ok := _r2.(*RRSIG)
  751. if !ok {
  752. return false
  753. }
  754. _ = r2
  755. if r1.TypeCovered != r2.TypeCovered {
  756. return false
  757. }
  758. if r1.Algorithm != r2.Algorithm {
  759. return false
  760. }
  761. if r1.Labels != r2.Labels {
  762. return false
  763. }
  764. if r1.OrigTtl != r2.OrigTtl {
  765. return false
  766. }
  767. if r1.Expiration != r2.Expiration {
  768. return false
  769. }
  770. if r1.Inception != r2.Inception {
  771. return false
  772. }
  773. if r1.KeyTag != r2.KeyTag {
  774. return false
  775. }
  776. if !isDuplicateName(r1.SignerName, r2.SignerName) {
  777. return false
  778. }
  779. if r1.Signature != r2.Signature {
  780. return false
  781. }
  782. return true
  783. }
  784. func (r1 *RT) isDuplicate(_r2 RR) bool {
  785. r2, ok := _r2.(*RT)
  786. if !ok {
  787. return false
  788. }
  789. _ = r2
  790. if r1.Preference != r2.Preference {
  791. return false
  792. }
  793. if !isDuplicateName(r1.Host, r2.Host) {
  794. return false
  795. }
  796. return true
  797. }
  798. func (r1 *SMIMEA) isDuplicate(_r2 RR) bool {
  799. r2, ok := _r2.(*SMIMEA)
  800. if !ok {
  801. return false
  802. }
  803. _ = r2
  804. if r1.Usage != r2.Usage {
  805. return false
  806. }
  807. if r1.Selector != r2.Selector {
  808. return false
  809. }
  810. if r1.MatchingType != r2.MatchingType {
  811. return false
  812. }
  813. if r1.Certificate != r2.Certificate {
  814. return false
  815. }
  816. return true
  817. }
  818. func (r1 *SOA) isDuplicate(_r2 RR) bool {
  819. r2, ok := _r2.(*SOA)
  820. if !ok {
  821. return false
  822. }
  823. _ = r2
  824. if !isDuplicateName(r1.Ns, r2.Ns) {
  825. return false
  826. }
  827. if !isDuplicateName(r1.Mbox, r2.Mbox) {
  828. return false
  829. }
  830. if r1.Serial != r2.Serial {
  831. return false
  832. }
  833. if r1.Refresh != r2.Refresh {
  834. return false
  835. }
  836. if r1.Retry != r2.Retry {
  837. return false
  838. }
  839. if r1.Expire != r2.Expire {
  840. return false
  841. }
  842. if r1.Minttl != r2.Minttl {
  843. return false
  844. }
  845. return true
  846. }
  847. func (r1 *SPF) isDuplicate(_r2 RR) bool {
  848. r2, ok := _r2.(*SPF)
  849. if !ok {
  850. return false
  851. }
  852. _ = r2
  853. if len(r1.Txt) != len(r2.Txt) {
  854. return false
  855. }
  856. for i := 0; i < len(r1.Txt); i++ {
  857. if r1.Txt[i] != r2.Txt[i] {
  858. return false
  859. }
  860. }
  861. return true
  862. }
  863. func (r1 *SRV) isDuplicate(_r2 RR) bool {
  864. r2, ok := _r2.(*SRV)
  865. if !ok {
  866. return false
  867. }
  868. _ = r2
  869. if r1.Priority != r2.Priority {
  870. return false
  871. }
  872. if r1.Weight != r2.Weight {
  873. return false
  874. }
  875. if r1.Port != r2.Port {
  876. return false
  877. }
  878. if !isDuplicateName(r1.Target, r2.Target) {
  879. return false
  880. }
  881. return true
  882. }
  883. func (r1 *SSHFP) isDuplicate(_r2 RR) bool {
  884. r2, ok := _r2.(*SSHFP)
  885. if !ok {
  886. return false
  887. }
  888. _ = r2
  889. if r1.Algorithm != r2.Algorithm {
  890. return false
  891. }
  892. if r1.Type != r2.Type {
  893. return false
  894. }
  895. if r1.FingerPrint != r2.FingerPrint {
  896. return false
  897. }
  898. return true
  899. }
  900. func (r1 *TA) isDuplicate(_r2 RR) bool {
  901. r2, ok := _r2.(*TA)
  902. if !ok {
  903. return false
  904. }
  905. _ = r2
  906. if r1.KeyTag != r2.KeyTag {
  907. return false
  908. }
  909. if r1.Algorithm != r2.Algorithm {
  910. return false
  911. }
  912. if r1.DigestType != r2.DigestType {
  913. return false
  914. }
  915. if r1.Digest != r2.Digest {
  916. return false
  917. }
  918. return true
  919. }
  920. func (r1 *TALINK) isDuplicate(_r2 RR) bool {
  921. r2, ok := _r2.(*TALINK)
  922. if !ok {
  923. return false
  924. }
  925. _ = r2
  926. if !isDuplicateName(r1.PreviousName, r2.PreviousName) {
  927. return false
  928. }
  929. if !isDuplicateName(r1.NextName, r2.NextName) {
  930. return false
  931. }
  932. return true
  933. }
  934. func (r1 *TKEY) isDuplicate(_r2 RR) bool {
  935. r2, ok := _r2.(*TKEY)
  936. if !ok {
  937. return false
  938. }
  939. _ = r2
  940. if !isDuplicateName(r1.Algorithm, r2.Algorithm) {
  941. return false
  942. }
  943. if r1.Inception != r2.Inception {
  944. return false
  945. }
  946. if r1.Expiration != r2.Expiration {
  947. return false
  948. }
  949. if r1.Mode != r2.Mode {
  950. return false
  951. }
  952. if r1.Error != r2.Error {
  953. return false
  954. }
  955. if r1.KeySize != r2.KeySize {
  956. return false
  957. }
  958. if r1.Key != r2.Key {
  959. return false
  960. }
  961. if r1.OtherLen != r2.OtherLen {
  962. return false
  963. }
  964. if r1.OtherData != r2.OtherData {
  965. return false
  966. }
  967. return true
  968. }
  969. func (r1 *TLSA) isDuplicate(_r2 RR) bool {
  970. r2, ok := _r2.(*TLSA)
  971. if !ok {
  972. return false
  973. }
  974. _ = r2
  975. if r1.Usage != r2.Usage {
  976. return false
  977. }
  978. if r1.Selector != r2.Selector {
  979. return false
  980. }
  981. if r1.MatchingType != r2.MatchingType {
  982. return false
  983. }
  984. if r1.Certificate != r2.Certificate {
  985. return false
  986. }
  987. return true
  988. }
  989. func (r1 *TSIG) isDuplicate(_r2 RR) bool {
  990. r2, ok := _r2.(*TSIG)
  991. if !ok {
  992. return false
  993. }
  994. _ = r2
  995. if !isDuplicateName(r1.Algorithm, r2.Algorithm) {
  996. return false
  997. }
  998. if r1.TimeSigned != r2.TimeSigned {
  999. return false
  1000. }
  1001. if r1.Fudge != r2.Fudge {
  1002. return false
  1003. }
  1004. if r1.MACSize != r2.MACSize {
  1005. return false
  1006. }
  1007. if r1.MAC != r2.MAC {
  1008. return false
  1009. }
  1010. if r1.OrigId != r2.OrigId {
  1011. return false
  1012. }
  1013. if r1.Error != r2.Error {
  1014. return false
  1015. }
  1016. if r1.OtherLen != r2.OtherLen {
  1017. return false
  1018. }
  1019. if r1.OtherData != r2.OtherData {
  1020. return false
  1021. }
  1022. return true
  1023. }
  1024. func (r1 *TXT) isDuplicate(_r2 RR) bool {
  1025. r2, ok := _r2.(*TXT)
  1026. if !ok {
  1027. return false
  1028. }
  1029. _ = r2
  1030. if len(r1.Txt) != len(r2.Txt) {
  1031. return false
  1032. }
  1033. for i := 0; i < len(r1.Txt); i++ {
  1034. if r1.Txt[i] != r2.Txt[i] {
  1035. return false
  1036. }
  1037. }
  1038. return true
  1039. }
  1040. func (r1 *UID) isDuplicate(_r2 RR) bool {
  1041. r2, ok := _r2.(*UID)
  1042. if !ok {
  1043. return false
  1044. }
  1045. _ = r2
  1046. if r1.Uid != r2.Uid {
  1047. return false
  1048. }
  1049. return true
  1050. }
  1051. func (r1 *UINFO) isDuplicate(_r2 RR) bool {
  1052. r2, ok := _r2.(*UINFO)
  1053. if !ok {
  1054. return false
  1055. }
  1056. _ = r2
  1057. if r1.Uinfo != r2.Uinfo {
  1058. return false
  1059. }
  1060. return true
  1061. }
  1062. func (r1 *URI) isDuplicate(_r2 RR) bool {
  1063. r2, ok := _r2.(*URI)
  1064. if !ok {
  1065. return false
  1066. }
  1067. _ = r2
  1068. if r1.Priority != r2.Priority {
  1069. return false
  1070. }
  1071. if r1.Weight != r2.Weight {
  1072. return false
  1073. }
  1074. if r1.Target != r2.Target {
  1075. return false
  1076. }
  1077. return true
  1078. }
  1079. func (r1 *X25) isDuplicate(_r2 RR) bool {
  1080. r2, ok := _r2.(*X25)
  1081. if !ok {
  1082. return false
  1083. }
  1084. _ = r2
  1085. if r1.PSDNAddress != r2.PSDNAddress {
  1086. return false
  1087. }
  1088. return true
  1089. }