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.

zmsg.go 60KB

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