/src/pdns/pdns/dnsrecords.hh
Line | Count | Source |
1 | | /* |
2 | | * This file is part of PowerDNS or dnsdist. |
3 | | * Copyright -- PowerDNS.COM B.V. and its contributors |
4 | | * |
5 | | * This program is free software; you can redistribute it and/or modify |
6 | | * it under the terms of version 2 of the GNU General Public License as |
7 | | * published by the Free Software Foundation. |
8 | | * |
9 | | * In addition, for the avoidance of any doubt, permission is granted to |
10 | | * link this program with OpenSSL and to (re)distribute the binaries |
11 | | * produced as the result of such linking. |
12 | | * |
13 | | * This program is distributed in the hope that it will be useful, |
14 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | | * GNU General Public License for more details. |
17 | | * |
18 | | * You should have received a copy of the GNU General Public License |
19 | | * along with this program; if not, write to the Free Software |
20 | | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
21 | | */ |
22 | | #pragma once |
23 | | #ifdef HAVE_CONFIG_H |
24 | | #include "config.h" |
25 | | #endif |
26 | | |
27 | | #include "dnsparser.hh" |
28 | | #include "dnswriter.hh" |
29 | | #include "lock.hh" |
30 | | #include "rcpgenerator.hh" |
31 | | #include <set> |
32 | | #include <bitset> |
33 | | #include <utility> |
34 | | #include "namespaces.hh" |
35 | | #include "iputils.hh" |
36 | | #include "svc-records.hh" |
37 | | |
38 | | struct ReportIsOnlyCallableByReportAllTypes; |
39 | | |
40 | | #define includeboilerplate(RNAME) \ |
41 | | RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr); \ |
42 | | RNAME##RecordContent(const string& zoneData); \ |
43 | | static void report(const ReportIsOnlyCallableByReportAllTypes& guard); \ |
44 | | static std::shared_ptr<DNSRecordContent> make(const DNSRecord& dr, PacketReader& pr); \ |
45 | | static std::shared_ptr<DNSRecordContent> make(const string& zonedata); \ |
46 | | string getZoneRepresentation(bool noDot = false) const override; \ |
47 | | void toPacket(DNSPacketWriter& pw) const override; \ |
48 | 0 | uint16_t getType() const override { return QType::RNAME; } \Unexecuted instantiation: ARecordContent::getType() const Unexecuted instantiation: AAAARecordContent::getType() const Unexecuted instantiation: MXRecordContent::getType() const Unexecuted instantiation: NSRecordContent::getType() const Unexecuted instantiation: PTRRecordContent::getType() const Unexecuted instantiation: CNAMERecordContent::getType() const Unexecuted instantiation: DNAMERecordContent::getType() const Unexecuted instantiation: DSRecordContent::getType() const Unexecuted instantiation: ALIASRecordContent::getType() const Unexecuted instantiation: MBRecordContent::getType() const Unexecuted instantiation: MGRecordContent::getType() const Unexecuted instantiation: MRRecordContent::getType() const Unexecuted instantiation: MINFORecordContent::getType() const Unexecuted instantiation: TXTRecordContent::getType() const Unexecuted instantiation: ENTRecordContent::getType() const Unexecuted instantiation: SPFRecordContent::getType() const Unexecuted instantiation: HINFORecordContent::getType() const Unexecuted instantiation: RPRecordContent::getType() const Unexecuted instantiation: OPTRecordContent::getType() const Unexecuted instantiation: TSIGRecordContent::getType() const Unexecuted instantiation: KXRecordContent::getType() const Unexecuted instantiation: IPSECKEYRecordContent::getType() const Unexecuted instantiation: DHCIDRecordContent::getType() const Unexecuted instantiation: AFSDBRecordContent::getType() const Unexecuted instantiation: NAPTRRecordContent::getType() const Unexecuted instantiation: SRVRecordContent::getType() const Unexecuted instantiation: SOARecordContent::getType() const Unexecuted instantiation: KEYRecordContent::getType() const Unexecuted instantiation: ZONEMDRecordContent::getType() const Unexecuted instantiation: CERTRecordContent::getType() const Unexecuted instantiation: TLSARecordContent::getType() const Unexecuted instantiation: OPENPGPKEYRecordContent::getType() const Unexecuted instantiation: SVCBRecordContent::getType() const Unexecuted instantiation: HTTPSRecordContent::getType() const Unexecuted instantiation: DNSKEYRecordContent::getType() const Unexecuted instantiation: HHITRecordContent::getType() const Unexecuted instantiation: BRIDRecordContent::getType() const Unexecuted instantiation: SMIMEARecordContent::getType() const Unexecuted instantiation: CDSRecordContent::getType() const Unexecuted instantiation: DLVRecordContent::getType() const Unexecuted instantiation: SSHFPRecordContent::getType() const Unexecuted instantiation: RRSIGRecordContent::getType() const Unexecuted instantiation: CDNSKEYRecordContent::getType() const Unexecuted instantiation: RKEYRecordContent::getType() const Unexecuted instantiation: NIDRecordContent::getType() const Unexecuted instantiation: L32RecordContent::getType() const Unexecuted instantiation: L64RecordContent::getType() const Unexecuted instantiation: LPRecordContent::getType() const Unexecuted instantiation: APLRecordContent::getType() const Unexecuted instantiation: TKEYRecordContent::getType() const Unexecuted instantiation: URIRecordContent::getType() const Unexecuted instantiation: CAARecordContent::getType() const |
49 | | template <class Convertor> \ |
50 | | void xfrPacket(Convertor& conv, bool noDot = false) const; \ |
51 | | template <class Convertor> \ |
52 | | void xfrPacket(Convertor& conv, bool noDot = false); |
53 | | |
54 | | class NAPTRRecordContent : public DNSRecordContent |
55 | | { |
56 | | public: |
57 | | NAPTRRecordContent(uint16_t order, uint16_t preference, string flags, string services, string regexp, DNSName replacement); |
58 | | |
59 | | includeboilerplate(NAPTR) |
60 | | template<class Convertor> void xfrRecordContent(Convertor& conv); |
61 | | const string& getFlags() const |
62 | 0 | { |
63 | 0 | return d_flags; |
64 | 0 | } |
65 | | const DNSName& getReplacement() const |
66 | 0 | { |
67 | 0 | return d_replacement; |
68 | 0 | } |
69 | | [[nodiscard]] size_t sizeEstimate() const override |
70 | 0 | { |
71 | 0 | return sizeof(*this) + d_replacement.sizeEstimate() + d_flags.size() + d_services.size() + d_regexp.size(); |
72 | 0 | } |
73 | | private: |
74 | | uint16_t d_order, d_preference; |
75 | | string d_flags, d_services, d_regexp; |
76 | | DNSName d_replacement; |
77 | | }; |
78 | | |
79 | | |
80 | | class ARecordContent : public DNSRecordContent |
81 | | { |
82 | | public: |
83 | | explicit ARecordContent(const ComboAddress& ca); |
84 | | explicit ARecordContent(uint32_t ip); |
85 | | includeboilerplate(A) |
86 | | void doRecordCheck(const DNSRecord& dr); |
87 | | ComboAddress getCA(int port=0) const; |
88 | | bool operator==(const DNSRecordContent& rhs) const override |
89 | 0 | { |
90 | 0 | if(typeid(*this) != typeid(rhs)) |
91 | 0 | return false; |
92 | 0 | return d_ip == dynamic_cast<const ARecordContent&>(rhs).d_ip; |
93 | 0 | } |
94 | | [[nodiscard]] size_t sizeEstimate() const override |
95 | 0 | { |
96 | 0 | return sizeof(*this); |
97 | 0 | } |
98 | | private: |
99 | | uint32_t d_ip; |
100 | | }; |
101 | | |
102 | | class AAAARecordContent : public DNSRecordContent |
103 | | { |
104 | | public: |
105 | | AAAARecordContent(std::string &val); |
106 | | explicit AAAARecordContent(const ComboAddress& ca); |
107 | | includeboilerplate(AAAA) |
108 | | ComboAddress getCA(int port=0) const; |
109 | | bool operator==(const DNSRecordContent& rhs) const override |
110 | 0 | { |
111 | 0 | if(typeid(*this) != typeid(rhs)) |
112 | 0 | return false; |
113 | 0 | return d_ip6 == dynamic_cast<const decltype(this)>(&rhs)->d_ip6; |
114 | 0 | } |
115 | | [[nodiscard]] size_t sizeEstimate() const override |
116 | 0 | { |
117 | 0 | return sizeof(*this) + d_ip6.size(); |
118 | 0 | } |
119 | | private: |
120 | | string d_ip6; // why?? |
121 | | }; |
122 | | |
123 | | class MXRecordContent : public DNSRecordContent |
124 | | { |
125 | | public: |
126 | | MXRecordContent(uint16_t preference, DNSName mxname); |
127 | | |
128 | | includeboilerplate(MX) |
129 | | |
130 | | uint16_t d_preference; |
131 | | DNSName d_mxname; |
132 | | |
133 | | bool operator==(const DNSRecordContent& rhs) const override |
134 | 0 | { |
135 | 0 | if(typeid(*this) != typeid(rhs)) |
136 | 0 | return false; |
137 | 0 | auto rrhs =dynamic_cast<const decltype(this)>(&rhs); |
138 | 0 | return std::tie(d_preference, d_mxname) == std::tie(rrhs->d_preference, rrhs->d_mxname); |
139 | 0 | } |
140 | | [[nodiscard]] size_t sizeEstimate() const override |
141 | 0 | { |
142 | 0 | return sizeof(*this) + d_mxname.sizeEstimate(); |
143 | 0 | } |
144 | | }; |
145 | | |
146 | | class KXRecordContent : public DNSRecordContent |
147 | | { |
148 | | public: |
149 | | KXRecordContent(uint16_t preference, const DNSName& exchanger); |
150 | | |
151 | | includeboilerplate(KX) |
152 | | |
153 | | [[nodiscard]] size_t sizeEstimate() const override |
154 | 0 | { |
155 | 0 | return sizeof(*this) + d_exchanger.sizeEstimate(); |
156 | 0 | } |
157 | | private: |
158 | | uint16_t d_preference; |
159 | | DNSName d_exchanger; |
160 | | }; |
161 | | |
162 | | class IPSECKEYRecordContent : public DNSRecordContent |
163 | | { |
164 | | public: |
165 | | IPSECKEYRecordContent(uint16_t preference, uint8_t gatewaytype, uint8_t algo, const DNSName& gateway, const string& publickey); |
166 | | |
167 | | includeboilerplate(IPSECKEY) |
168 | | |
169 | | [[nodiscard]] size_t sizeEstimate() const override |
170 | 0 | { |
171 | 0 | return sizeof(*this) + d_gateway.sizeEstimate() + d_publickey.size() + d_ip6.size(); |
172 | 0 | } |
173 | | private: |
174 | | uint32_t d_ip4; |
175 | | DNSName d_gateway; |
176 | | string d_publickey; |
177 | | string d_ip6; |
178 | | uint8_t d_preference, d_gatewaytype, d_algorithm; |
179 | | }; |
180 | | |
181 | | class DHCIDRecordContent : public DNSRecordContent |
182 | | { |
183 | | public: |
184 | | includeboilerplate(DHCID) |
185 | | [[nodiscard]] size_t sizeEstimate() const override |
186 | 0 | { |
187 | 0 | return sizeof(*this) + d_content.size(); |
188 | 0 | } |
189 | | |
190 | | private: |
191 | | string d_content; |
192 | | }; |
193 | | |
194 | | |
195 | | class SRVRecordContent : public DNSRecordContent |
196 | | { |
197 | | public: |
198 | | SRVRecordContent(uint16_t preference, uint16_t weight, uint16_t port, DNSName target); |
199 | | |
200 | | includeboilerplate(SRV) |
201 | | [[nodiscard]] size_t sizeEstimate() const override |
202 | 0 | { |
203 | 0 | return sizeof(*this) + d_target.sizeEstimate(); |
204 | 0 | } |
205 | | |
206 | | uint16_t d_weight, d_port; |
207 | | DNSName d_target; |
208 | | uint16_t d_preference; |
209 | | }; |
210 | | |
211 | | class TSIGRecordContent : public DNSRecordContent |
212 | | { |
213 | | public: |
214 | | includeboilerplate(TSIG) |
215 | | TSIGRecordContent() = default; |
216 | | [[nodiscard]] size_t sizeEstimate() const override |
217 | 0 | { |
218 | 0 | return sizeof(*this) + d_algoName.sizeEstimate() + d_mac.size() + d_otherData.size(); |
219 | 0 | } |
220 | | |
221 | | uint16_t d_origID{0}; |
222 | | uint16_t d_fudge{0}; |
223 | | |
224 | | DNSName d_algoName; |
225 | | string d_mac; |
226 | | string d_otherData; |
227 | | uint64_t d_time{0}; |
228 | | // uint16_t d_macSize; |
229 | | uint16_t d_eRcode{0}; |
230 | | // uint16_t d_otherLen |
231 | | }; |
232 | | |
233 | | |
234 | | class TXTRecordContent : public DNSRecordContent |
235 | | { |
236 | | public: |
237 | | includeboilerplate(TXT) |
238 | | |
239 | | [[nodiscard]] size_t sizeEstimate() const override |
240 | 0 | { |
241 | 0 | return sizeof(*this) + d_text.size(); |
242 | 0 | } |
243 | | |
244 | | string d_text; |
245 | | }; |
246 | | |
247 | | #ifdef HAVE_LUA_RECORDS |
248 | | class LUARecordContent : public DNSRecordContent |
249 | | { |
250 | | public: |
251 | | includeboilerplate(LUA) |
252 | | [[nodiscard]] size_t sizeEstimate() const override |
253 | | { |
254 | | return sizeof(*this) + getCode().size(); |
255 | | } |
256 | | string getCode() const; |
257 | | uint16_t d_type; |
258 | | string d_code; |
259 | | }; |
260 | | #endif |
261 | | |
262 | | class ENTRecordContent : public DNSRecordContent |
263 | | { |
264 | | public: |
265 | | includeboilerplate(ENT) |
266 | | [[nodiscard]] size_t sizeEstimate() const override |
267 | 0 | { |
268 | 0 | return sizeof(*this); |
269 | 0 | } |
270 | | }; |
271 | | |
272 | | class SPFRecordContent : public DNSRecordContent |
273 | | { |
274 | | public: |
275 | | includeboilerplate(SPF) |
276 | | const std::string& getText() const |
277 | 0 | { |
278 | 0 | return d_text; |
279 | 0 | } |
280 | | [[nodiscard]] size_t sizeEstimate() const override |
281 | 0 | { |
282 | 0 | return sizeof(*this) + d_text.size(); |
283 | 0 | } |
284 | | |
285 | | private: |
286 | | string d_text; |
287 | | }; |
288 | | |
289 | | |
290 | | class NSRecordContent : public DNSRecordContent |
291 | | { |
292 | | public: |
293 | | includeboilerplate(NS) explicit NSRecordContent(DNSName content) : |
294 | 0 | d_content(std::move(content)) {} |
295 | 0 | const DNSName& getNS() const { return d_content; } |
296 | | bool operator==(const DNSRecordContent& rhs) const override |
297 | 0 | { |
298 | 0 | if(typeid(*this) != typeid(rhs)) |
299 | 0 | return false; |
300 | 0 | auto rrhs =dynamic_cast<const decltype(this)>(&rhs); |
301 | 0 | return d_content == rrhs->d_content; |
302 | 0 | } |
303 | | [[nodiscard]] size_t sizeEstimate() const override |
304 | 0 | { |
305 | 0 | return sizeof(*this) + d_content.sizeEstimate(); |
306 | 0 | } |
307 | | private: |
308 | | DNSName d_content; |
309 | | }; |
310 | | |
311 | | class PTRRecordContent : public DNSRecordContent |
312 | | { |
313 | | public: |
314 | | includeboilerplate(PTR) explicit PTRRecordContent(DNSName content) : |
315 | 0 | d_content(std::move(content)) {} |
316 | 0 | const DNSName& getContent() const { return d_content; } |
317 | | [[nodiscard]] size_t sizeEstimate() const override |
318 | 0 | { |
319 | 0 | return sizeof(*this) + d_content.sizeEstimate(); |
320 | 0 | } |
321 | | private: |
322 | | DNSName d_content; |
323 | | }; |
324 | | |
325 | | class CNAMERecordContent : public DNSRecordContent |
326 | | { |
327 | | public: |
328 | | includeboilerplate(CNAME) |
329 | | CNAMERecordContent(DNSName content) : |
330 | 0 | d_content(std::move(content)) {} |
331 | 0 | DNSName getTarget() const { return d_content; } |
332 | | [[nodiscard]] size_t sizeEstimate() const override |
333 | 0 | { |
334 | 0 | return sizeof(*this) + d_content.sizeEstimate(); |
335 | 0 | } |
336 | | private: |
337 | | DNSName d_content; |
338 | | }; |
339 | | |
340 | | #if !defined(RECURSOR) |
341 | | class ALIASRecordContent : public DNSRecordContent |
342 | | { |
343 | | public: |
344 | | includeboilerplate(ALIAS) |
345 | | |
346 | | [[nodiscard]] const DNSName& getContent() const |
347 | 0 | { |
348 | 0 | return d_content; |
349 | 0 | } |
350 | | [[nodiscard]] size_t sizeEstimate() const override |
351 | 0 | { |
352 | 0 | return sizeof(*this) + d_content.sizeEstimate(); |
353 | 0 | } |
354 | | private: |
355 | | DNSName d_content; |
356 | | }; |
357 | | #endif |
358 | | |
359 | | class DNAMERecordContent : public DNSRecordContent |
360 | | { |
361 | | public: |
362 | | includeboilerplate(DNAME) |
363 | | DNAMERecordContent(DNSName content) : |
364 | 0 | d_content(std::move(content)) {} |
365 | 0 | const DNSName& getTarget() const { return d_content; } |
366 | | [[nodiscard]] size_t sizeEstimate() const override |
367 | 0 | { |
368 | 0 | return sizeof(*this) + d_content.sizeEstimate(); |
369 | 0 | } |
370 | | private: |
371 | | DNSName d_content; |
372 | | }; |
373 | | |
374 | | |
375 | | class MBRecordContent : public DNSRecordContent |
376 | | { |
377 | | public: |
378 | | includeboilerplate(MB) |
379 | | [[nodiscard]] size_t sizeEstimate() const override |
380 | 0 | { |
381 | 0 | return sizeof(*this) + d_madname.sizeEstimate(); |
382 | 0 | } |
383 | | |
384 | | private: |
385 | | DNSName d_madname; |
386 | | }; |
387 | | |
388 | | class MGRecordContent : public DNSRecordContent |
389 | | { |
390 | | public: |
391 | | includeboilerplate(MG) |
392 | | [[nodiscard]] size_t sizeEstimate() const override |
393 | 0 | { |
394 | 0 | return sizeof(*this) + d_mgmname.sizeEstimate(); |
395 | 0 | } |
396 | | |
397 | | private: |
398 | | DNSName d_mgmname; |
399 | | }; |
400 | | |
401 | | class MRRecordContent : public DNSRecordContent |
402 | | { |
403 | | public: |
404 | | includeboilerplate(MR) |
405 | | [[nodiscard]] size_t sizeEstimate() const override |
406 | 0 | { |
407 | 0 | return sizeof(*this) + d_alias.sizeEstimate(); |
408 | 0 | } |
409 | | |
410 | | private: |
411 | | DNSName d_alias; |
412 | | }; |
413 | | |
414 | | class MINFORecordContent : public DNSRecordContent |
415 | | { |
416 | | public: |
417 | | includeboilerplate(MINFO) |
418 | | [[nodiscard]] size_t sizeEstimate() const override |
419 | 0 | { |
420 | 0 | return sizeof(*this) + d_rmailbx.sizeEstimate() + d_emailbx.sizeEstimate(); |
421 | 0 | } |
422 | | |
423 | | private: |
424 | | DNSName d_rmailbx; |
425 | | DNSName d_emailbx; |
426 | | }; |
427 | | |
428 | | class OPTRecordContent : public DNSRecordContent |
429 | | { |
430 | | public: |
431 | | OPTRecordContent() = default; |
432 | | includeboilerplate(OPT) |
433 | | void getData(vector<pair<uint16_t, string> > &opts) const; |
434 | | [[nodiscard]] size_t sizeEstimate() const override |
435 | 0 | { |
436 | 0 | return sizeof(*this) + d_data.size(); |
437 | 0 | } |
438 | | private: |
439 | | string d_data; |
440 | | }; |
441 | | |
442 | | |
443 | | class HINFORecordContent : public DNSRecordContent |
444 | | { |
445 | | public: |
446 | | includeboilerplate(HINFO) |
447 | | [[nodiscard]] size_t sizeEstimate() const override |
448 | 0 | { |
449 | 0 | return sizeof(*this) + d_cpu.size() + d_host.size(); |
450 | 0 | } |
451 | | |
452 | | private: |
453 | | string d_cpu, d_host; |
454 | | }; |
455 | | |
456 | | class RPRecordContent : public DNSRecordContent |
457 | | { |
458 | | public: |
459 | | includeboilerplate(RP) |
460 | | [[nodiscard]] size_t sizeEstimate() const override |
461 | 0 | { |
462 | 0 | return sizeof(*this) + d_mbox.sizeEstimate() + d_info.sizeEstimate(); |
463 | 0 | } |
464 | | private: |
465 | | DNSName d_mbox, d_info; |
466 | | }; |
467 | | |
468 | | |
469 | | class DNSKEYRecordContent : public DNSRecordContent |
470 | | { |
471 | | public: |
472 | | DNSKEYRecordContent(); |
473 | | includeboilerplate(DNSKEY) |
474 | | uint16_t getTag() const; |
475 | | |
476 | | uint16_t d_flags{0}; |
477 | | uint8_t d_protocol{0}; |
478 | | uint8_t d_algorithm{0}; |
479 | | string d_key; |
480 | | bool operator<(const DNSKEYRecordContent& rhs) const |
481 | 0 | { |
482 | 0 | return std::tie(d_flags, d_protocol, d_algorithm, d_key) < |
483 | 0 | std::tie(rhs.d_flags, rhs.d_protocol, rhs.d_algorithm, rhs.d_key); |
484 | 0 | } |
485 | | [[nodiscard]] size_t sizeEstimate() const override |
486 | 0 | { |
487 | 0 | return sizeof(*this) + d_key.size(); |
488 | 0 | } |
489 | | }; |
490 | | |
491 | | class CDNSKEYRecordContent : public DNSRecordContent |
492 | | { |
493 | | public: |
494 | | CDNSKEYRecordContent(); |
495 | | includeboilerplate(CDNSKEY) |
496 | | uint16_t getTag(); |
497 | | [[nodiscard]] size_t sizeEstimate() const override |
498 | 0 | { |
499 | 0 | return sizeof(*this) + d_key.size(); |
500 | 0 | } |
501 | | |
502 | | uint16_t d_flags{0}; |
503 | | uint8_t d_protocol{0}; |
504 | | uint8_t d_algorithm{0}; |
505 | | string d_key; |
506 | | }; |
507 | | |
508 | | class DSRecordContent : public DNSRecordContent |
509 | | { |
510 | | public: |
511 | | DSRecordContent(); |
512 | | bool operator==(const DNSRecordContent& rhs) const override |
513 | 0 | { |
514 | 0 | if(typeid(*this) != typeid(rhs)) |
515 | 0 | return false; |
516 | 0 | auto rrhs =dynamic_cast<const decltype(this)>(&rhs); |
517 | 0 | return std::tie(d_tag, d_algorithm, d_digesttype, d_digest) == |
518 | 0 | std::tie(rrhs->d_tag, rrhs->d_algorithm, rrhs->d_digesttype, rrhs->d_digest); |
519 | 0 | } |
520 | | bool operator<(const DSRecordContent& rhs) const |
521 | 0 | { |
522 | 0 | return std::tie(d_tag, d_algorithm, d_digesttype, d_digest) < |
523 | 0 | std::tie(rhs.d_tag, rhs.d_algorithm, rhs.d_digesttype, rhs.d_digest); |
524 | 0 | } |
525 | | |
526 | | includeboilerplate(DS) |
527 | | [[nodiscard]] size_t sizeEstimate() const override |
528 | 0 | { |
529 | 0 | return sizeof(*this) + d_digest.size(); |
530 | 0 | } |
531 | | |
532 | | uint16_t d_tag{0}; |
533 | | uint8_t d_algorithm{0}, d_digesttype{0}; |
534 | | string d_digest; |
535 | | }; |
536 | | |
537 | | class CDSRecordContent : public DNSRecordContent |
538 | | { |
539 | | public: |
540 | | CDSRecordContent(); |
541 | | includeboilerplate(CDS) |
542 | | [[nodiscard]] size_t sizeEstimate() const override |
543 | 0 | { |
544 | 0 | return sizeof(*this) + d_digest.size(); |
545 | 0 | } |
546 | | |
547 | | uint16_t d_tag{0}; |
548 | | uint8_t d_algorithm{0}, d_digesttype{0}; |
549 | | string d_digest; |
550 | | }; |
551 | | |
552 | | class DLVRecordContent : public DNSRecordContent |
553 | | { |
554 | | public: |
555 | | DLVRecordContent(); |
556 | | includeboilerplate(DLV) |
557 | | [[nodiscard]] size_t sizeEstimate() const override |
558 | 0 | { |
559 | 0 | return sizeof(*this) + d_digest.size(); |
560 | 0 | } |
561 | | |
562 | | uint16_t d_tag{0}; |
563 | | uint8_t d_algorithm{0}, d_digesttype{0}; |
564 | | string d_digest; |
565 | | }; |
566 | | |
567 | | |
568 | | class SSHFPRecordContent : public DNSRecordContent |
569 | | { |
570 | | public: |
571 | | includeboilerplate(SSHFP) |
572 | | [[nodiscard]] size_t sizeEstimate() const override |
573 | 0 | { |
574 | 0 | return sizeof(*this) + d_fingerprint.size(); |
575 | 0 | } |
576 | | |
577 | | private: |
578 | | uint8_t d_algorithm, d_fptype; |
579 | | string d_fingerprint; |
580 | | }; |
581 | | |
582 | | class KEYRecordContent : public DNSRecordContent |
583 | | { |
584 | | public: |
585 | | includeboilerplate(KEY) |
586 | | [[nodiscard]] size_t sizeEstimate() const override |
587 | 0 | { |
588 | 0 | return sizeof(*this) + d_certificate.size(); |
589 | 0 | } |
590 | | |
591 | | private: |
592 | | uint16_t d_flags; |
593 | | uint8_t d_protocol, d_algorithm; |
594 | | string d_certificate; |
595 | | }; |
596 | | |
597 | | class AFSDBRecordContent : public DNSRecordContent |
598 | | { |
599 | | public: |
600 | | includeboilerplate(AFSDB) |
601 | | [[nodiscard]] size_t sizeEstimate() const override |
602 | 0 | { |
603 | 0 | return sizeof(*this) + d_hostname.sizeEstimate(); |
604 | 0 | } |
605 | | |
606 | | private: |
607 | | uint16_t d_subtype; |
608 | | DNSName d_hostname; |
609 | | }; |
610 | | |
611 | | |
612 | | #ifdef CERT |
613 | | #error likely openssl/ssl2.h is included, defining CERT, avoid that or undef CERT before including dnsrecords.hh |
614 | | #endif |
615 | | |
616 | | class CERTRecordContent : public DNSRecordContent |
617 | | { |
618 | | public: |
619 | | includeboilerplate(CERT) |
620 | | [[nodiscard]] size_t sizeEstimate() const override |
621 | 0 | { |
622 | 0 | return sizeof(*this) + d_certificate.size(); |
623 | 0 | } |
624 | | |
625 | | private: |
626 | | uint16_t d_type, d_tag; |
627 | | string d_certificate; |
628 | | uint8_t d_algorithm; |
629 | | }; |
630 | | |
631 | | class TLSARecordContent : public DNSRecordContent |
632 | | { |
633 | | public: |
634 | | includeboilerplate(TLSA) |
635 | | [[nodiscard]] size_t sizeEstimate() const override |
636 | 0 | { |
637 | 0 | return sizeof(*this) + d_cert.size(); |
638 | 0 | } |
639 | | |
640 | | private: |
641 | | uint8_t d_certusage, d_selector, d_matchtype; |
642 | | string d_cert; |
643 | | }; |
644 | | |
645 | | class SMIMEARecordContent : public DNSRecordContent |
646 | | { |
647 | | public: |
648 | | includeboilerplate(SMIMEA) |
649 | | [[nodiscard]] size_t sizeEstimate() const override |
650 | 0 | { |
651 | 0 | return sizeof(*this) + d_cert.size(); |
652 | 0 | } |
653 | | |
654 | | private: |
655 | | uint8_t d_certusage, d_selector, d_matchtype; |
656 | | string d_cert; |
657 | | }; |
658 | | |
659 | | class OPENPGPKEYRecordContent : public DNSRecordContent |
660 | | { |
661 | | public: |
662 | | includeboilerplate(OPENPGPKEY) |
663 | | [[nodiscard]] size_t sizeEstimate() const override |
664 | 0 | { |
665 | 0 | return sizeof(*this) + d_keyring.size(); |
666 | 0 | } |
667 | | |
668 | | private: |
669 | | string d_keyring; |
670 | | }; |
671 | | |
672 | | class SVCBBaseRecordContent : public DNSRecordContent |
673 | | { |
674 | | public: |
675 | 0 | const DNSName& getTarget() const {return d_target;} |
676 | 0 | uint16_t getPriority() const {return d_priority;} |
677 | | // Returns true if a value for |key| was set to 'auto' |
678 | | bool autoHint(const SvcParam::SvcParamKey &key) const; |
679 | | // Sets the |addresses| to the existing hints for |key| |
680 | | void setHints(const SvcParam::SvcParamKey &key, const std::vector<ComboAddress> &addresses); |
681 | | // Removes the parameter for |key| from d_params |
682 | | void removeParam(const SvcParam::SvcParamKey &key); |
683 | | // Whether or not there are any parameter |
684 | | bool hasParams() const; |
685 | | // Whether or not the param of |key| exists |
686 | | bool hasParam(const SvcParam::SvcParamKey &key) const; |
687 | | // Get the parameter with |key|, will throw out_of_range if param isn't there |
688 | | SvcParam getParam(const SvcParam::SvcParamKey &key) const; |
689 | | virtual std::shared_ptr<SVCBBaseRecordContent> clone() const = 0; |
690 | | |
691 | | [[nodiscard]] size_t sizeEstimate() const override |
692 | 0 | { |
693 | 0 | return sizeof(*this) + d_params.size() * sizeof(SvcParam) + d_target.sizeEstimate(); |
694 | 0 | } |
695 | | |
696 | | protected: |
697 | | std::set<SvcParam> d_params; |
698 | | DNSName d_target; |
699 | | uint16_t d_priority; |
700 | | |
701 | | // Get the iterator to parameter with |key|, return value can be d_params::end |
702 | | std::set<SvcParam>::const_iterator getParamIt(const SvcParam::SvcParamKey &key) const; |
703 | | }; |
704 | | |
705 | | class SVCBRecordContent : public SVCBBaseRecordContent |
706 | | { |
707 | | public: |
708 | | includeboilerplate(SVCB) |
709 | | std::shared_ptr<SVCBBaseRecordContent> clone() const override; |
710 | | }; |
711 | | |
712 | | class HTTPSRecordContent : public SVCBBaseRecordContent |
713 | | { |
714 | | public: |
715 | | includeboilerplate(HTTPS) |
716 | | std::shared_ptr<SVCBBaseRecordContent> clone() const override; |
717 | | }; |
718 | | |
719 | | class DRIPBaseRecordContent : public DNSKEYRecordContent |
720 | | { |
721 | | public: |
722 | | [[nodiscard]] size_t sizeEstimate() const override |
723 | 0 | { |
724 | 0 | return sizeof(*this) + d_data.size(); |
725 | 0 | } |
726 | | virtual std::shared_ptr<DRIPBaseRecordContent> clone() const = 0; |
727 | | protected: |
728 | | string d_data; |
729 | | }; |
730 | | |
731 | | class HHITRecordContent : public DRIPBaseRecordContent { |
732 | | public: |
733 | | includeboilerplate(HHIT); |
734 | | std::shared_ptr<DRIPBaseRecordContent> clone() const override; |
735 | | }; |
736 | | |
737 | | class BRIDRecordContent : public DRIPBaseRecordContent { |
738 | | public: |
739 | | includeboilerplate(BRID); |
740 | | std::shared_ptr<DRIPBaseRecordContent> clone() const override; |
741 | | }; |
742 | | |
743 | | class RRSIGRecordContent : public DNSRecordContent |
744 | | { |
745 | | public: |
746 | | RRSIGRecordContent(); |
747 | | includeboilerplate(RRSIG) |
748 | | |
749 | | [[nodiscard]] size_t sizeEstimate() const override |
750 | 0 | { |
751 | 0 | return sizeof(*this) + d_signer.sizeEstimate() + d_signature.size(); |
752 | 0 | } |
753 | | uint16_t d_type{0}; |
754 | | uint16_t d_tag{0}; |
755 | | DNSName d_signer; |
756 | | string d_signature; |
757 | | uint32_t d_originalttl{0}, d_sigexpire{0}, d_siginception{0}; |
758 | | uint8_t d_algorithm{0}, d_labels{0}; |
759 | | }; |
760 | | |
761 | | //namespace { |
762 | | struct soatimes |
763 | | { |
764 | | uint32_t serial; |
765 | | uint32_t refresh; |
766 | | uint32_t retry; |
767 | | uint32_t expire; |
768 | | uint32_t minimum; |
769 | | }; |
770 | | //} |
771 | | |
772 | | class RKEYRecordContent : public DNSRecordContent |
773 | | { |
774 | | public: |
775 | | RKEYRecordContent(); |
776 | | includeboilerplate(RKEY) |
777 | | [[nodiscard]] size_t sizeEstimate() const override |
778 | 0 | { |
779 | 0 | return sizeof(*this) + d_key.size(); |
780 | 0 | } |
781 | | uint16_t d_flags{0}; |
782 | | uint8_t d_protocol{0}, d_algorithm{0}; |
783 | | string d_key; |
784 | | }; |
785 | | |
786 | | class SOARecordContent : public DNSRecordContent |
787 | | { |
788 | | public: |
789 | | includeboilerplate(SOA) |
790 | | SOARecordContent(DNSName mname, DNSName rname, const struct soatimes& st); |
791 | | |
792 | | [[nodiscard]] size_t sizeEstimate() const override |
793 | 0 | { |
794 | 0 | return sizeof(*this) + d_mname.sizeEstimate() + d_rname.sizeEstimate(); |
795 | 0 | } |
796 | | DNSName d_mname; |
797 | | DNSName d_rname; |
798 | | struct soatimes d_st; |
799 | | }; |
800 | | |
801 | | class ZONEMDRecordContent : public DNSRecordContent |
802 | | { |
803 | | public: |
804 | | includeboilerplate(ZONEMD) |
805 | | //ZONEMDRecordContent(uint32_t serial, uint8_t scheme, uint8_t hashalgo, string digest); |
806 | | |
807 | | [[nodiscard]] size_t sizeEstimate() const override |
808 | 0 | { |
809 | 0 | return sizeof(*this) + d_digest.size(); |
810 | 0 | } |
811 | | uint32_t d_serial; |
812 | | uint8_t d_scheme; |
813 | | uint8_t d_hashalgo; |
814 | | string d_digest; |
815 | | }; |
816 | | |
817 | | class NSECBitmap |
818 | | { |
819 | | public: |
820 | 6.93k | NSECBitmap(): d_bitset(nullptr) |
821 | 6.93k | { |
822 | 6.93k | } |
823 | | NSECBitmap(const NSECBitmap& rhs): d_set(rhs.d_set) |
824 | 0 | { |
825 | 0 | if (rhs.d_bitset) { |
826 | 0 | d_bitset = std::make_unique<std::bitset<nbTypes>>(*(rhs.d_bitset)); |
827 | 0 | } |
828 | 0 | } |
829 | | NSECBitmap& operator=(const NSECBitmap& rhs) |
830 | 0 | { |
831 | 0 | d_set = rhs.d_set; |
832 | 0 |
|
833 | 0 | if (rhs.d_bitset) { |
834 | 0 | d_bitset = std::make_unique<std::bitset<nbTypes>>(*(rhs.d_bitset)); |
835 | 0 | } |
836 | 0 |
|
837 | 0 | return *this; |
838 | 0 | } |
839 | | NSECBitmap(NSECBitmap&& rhs) noexcept : |
840 | | d_bitset(std::move(rhs.d_bitset)), d_set(std::move(rhs.d_set)) |
841 | 0 | { |
842 | 0 | } |
843 | | bool isSet(uint16_t type) const |
844 | 0 | { |
845 | 0 | if (d_bitset) { |
846 | 0 | return d_bitset->test(type); |
847 | 0 | } |
848 | 0 | return d_set.count(type); |
849 | 0 | } |
850 | | void set(uint16_t type) |
851 | 456k | { |
852 | 456k | if (!d_bitset) { |
853 | 421k | if (d_set.size() >= 200) { |
854 | 1.80k | migrateToBitSet(); |
855 | 1.80k | } |
856 | 421k | } |
857 | 456k | if (d_bitset) { |
858 | 37.2k | d_bitset->set(type); |
859 | 37.2k | } |
860 | 419k | else { |
861 | 419k | d_set.insert(type); |
862 | 419k | } |
863 | 456k | } |
864 | | size_t count() const |
865 | 0 | { |
866 | 0 | if (d_bitset) { |
867 | 0 | return d_bitset->count(); |
868 | 0 | } |
869 | 0 | else { |
870 | 0 | return d_set.size(); |
871 | 0 | } |
872 | 0 | } |
873 | | |
874 | | void fromPacket(PacketReader& pr); |
875 | | void toPacket(DNSPacketWriter& pw) const; |
876 | | std::string getZoneRepresentation() const; |
877 | | |
878 | | static constexpr size_t const nbTypes = 65536; |
879 | | |
880 | | [[nodiscard]] size_t sizeEstimate() const |
881 | 0 | { |
882 | | // for tree: size() nodes of roughly the size of the head node (very rough estimate as tree |
883 | | // implementations can vary wildly on how they represent nodes of the tree, but we cannot access |
884 | | // that private info) |
885 | 0 | return d_bitset ? nbTypes / 8 : d_set.size() * sizeof(std::set<uint16_t>); |
886 | 0 | } |
887 | | |
888 | | private: |
889 | | |
890 | | void migrateToBitSet() |
891 | 1.80k | { |
892 | 1.80k | d_bitset = std::make_unique<std::bitset<nbTypes>>(); |
893 | 360k | for (const auto& type : d_set) { |
894 | 360k | d_bitset->set(type); |
895 | 360k | } |
896 | 1.80k | d_set.clear(); |
897 | 1.80k | } |
898 | | /* using a dynamic set is very efficient for a small number of |
899 | | types covered (~200), but uses a lot of memory (up to 3MB) |
900 | | when there are a lot of them. |
901 | | So we start with the set, but allocate and switch to a bitset |
902 | | if the number of covered types increases a lot */ |
903 | | std::unique_ptr<std::bitset<nbTypes>> d_bitset; |
904 | | std::set<uint16_t> d_set; |
905 | | }; |
906 | | |
907 | | class NSECRecordContent : public DNSRecordContent |
908 | | { |
909 | | public: |
910 | | static void report(const ReportIsOnlyCallableByReportAllTypes& guard); |
911 | 3.77k | NSECRecordContent() = default; |
912 | | NSECRecordContent(const string& content, const ZoneName& zone=ZoneName()); |
913 | | |
914 | | static std::shared_ptr<DNSRecordContent> make(const DNSRecord &dr, PacketReader& pr); |
915 | | static std::shared_ptr<DNSRecordContent> make(const string& content); |
916 | | string getZoneRepresentation(bool noDot=false) const override; |
917 | | void toPacket(DNSPacketWriter& pw) const override; |
918 | | uint16_t getType() const override |
919 | 0 | { |
920 | 0 | return QType::NSEC; |
921 | 0 | } |
922 | | bool isSet(uint16_t type) const |
923 | 0 | { |
924 | 0 | return d_bitmap.isSet(type); |
925 | 0 | } |
926 | | void set(uint16_t type) |
927 | 0 | { |
928 | 0 | d_bitmap.set(type); |
929 | 0 | } |
930 | | void set(const NSECBitmap& bitmap) |
931 | 0 | { |
932 | 0 | d_bitmap = bitmap; |
933 | 0 | } |
934 | | size_t numberOfTypesSet() const |
935 | 0 | { |
936 | 0 | return d_bitmap.count(); |
937 | 0 | } |
938 | | |
939 | | [[nodiscard]] size_t sizeEstimate() const override |
940 | 0 | { |
941 | 0 | return sizeof(*this) + d_next.sizeEstimate() + d_bitmap.sizeEstimate(); |
942 | 0 | } |
943 | | DNSName d_next; |
944 | | private: |
945 | | NSECBitmap d_bitmap; |
946 | | }; |
947 | | |
948 | | class NSEC3RecordContent : public DNSRecordContent |
949 | | { |
950 | | public: |
951 | | static void report(const ReportIsOnlyCallableByReportAllTypes& guard); |
952 | 2.29k | NSEC3RecordContent() = default; |
953 | | NSEC3RecordContent(const string& content, const ZoneName& zone=ZoneName()); |
954 | | |
955 | | static std::shared_ptr<DNSRecordContent> make(const DNSRecord &dr, PacketReader& pr); |
956 | | static std::shared_ptr<DNSRecordContent> make(const string& content); |
957 | | string getZoneRepresentation(bool noDot=false) const override; |
958 | | void toPacket(DNSPacketWriter& pw) const override; |
959 | | |
960 | | uint8_t d_algorithm{0}, d_flags{0}; |
961 | | uint16_t d_iterations{0}; |
962 | | string d_salt; |
963 | | string d_nexthash; |
964 | | |
965 | | uint16_t getType() const override |
966 | 0 | { |
967 | 0 | return QType::NSEC3; |
968 | 0 | } |
969 | | bool isSet(uint16_t type) const |
970 | 0 | { |
971 | 0 | return d_bitmap.isSet(type); |
972 | 0 | } |
973 | | void set(uint16_t type) |
974 | 0 | { |
975 | 0 | d_bitmap.set(type); |
976 | 0 | } |
977 | | void set(const NSECBitmap& bitmap) |
978 | 0 | { |
979 | 0 | d_bitmap = bitmap; |
980 | 0 | } |
981 | | size_t numberOfTypesSet() const |
982 | 0 | { |
983 | 0 | return d_bitmap.count(); |
984 | 0 | } |
985 | | bool isOptOut() const |
986 | 0 | { |
987 | 0 | return d_flags & 1; |
988 | 0 | } |
989 | | |
990 | | [[nodiscard]] size_t sizeEstimate() const override |
991 | 0 | { |
992 | 0 | return sizeof(*this) + d_salt.size() + d_nexthash.size() + d_bitmap.sizeEstimate(); |
993 | 0 | } |
994 | | private: |
995 | | NSECBitmap d_bitmap; |
996 | | }; |
997 | | |
998 | | class CSYNCRecordContent : public DNSRecordContent |
999 | | { |
1000 | | public: |
1001 | | static void report(const ReportIsOnlyCallableByReportAllTypes& guard); |
1002 | 869 | CSYNCRecordContent() = default; |
1003 | | CSYNCRecordContent(const string& content, const ZoneName& zone=ZoneName()); |
1004 | | |
1005 | | static std::shared_ptr<DNSRecordContent> make(const DNSRecord &dr, PacketReader& pr); |
1006 | | static std::shared_ptr<DNSRecordContent> make(const string& content); |
1007 | | string getZoneRepresentation(bool noDot=false) const override; |
1008 | | void toPacket(DNSPacketWriter& pw) const override; |
1009 | | |
1010 | | uint16_t getType() const override |
1011 | 0 | { |
1012 | 0 | return QType::CSYNC; |
1013 | 0 | } |
1014 | | |
1015 | | void set(uint16_t type) |
1016 | 0 | { |
1017 | 0 | d_bitmap.set(type); |
1018 | 0 | } |
1019 | | |
1020 | | [[nodiscard]] size_t sizeEstimate() const override |
1021 | 0 | { |
1022 | 0 | return sizeof(*this) + d_bitmap.sizeEstimate(); |
1023 | 0 | } |
1024 | | |
1025 | | private: |
1026 | | uint32_t d_serial{0}; |
1027 | | uint16_t d_flags{0}; |
1028 | | NSECBitmap d_bitmap; |
1029 | | }; |
1030 | | |
1031 | | class NSEC3PARAMRecordContent : public DNSRecordContent |
1032 | | { |
1033 | | public: |
1034 | | static void report(const ReportIsOnlyCallableByReportAllTypes& guard); |
1035 | 1.03k | NSEC3PARAMRecordContent() = default; |
1036 | | NSEC3PARAMRecordContent(const string& content, const ZoneName& zone=ZoneName()); |
1037 | | |
1038 | | static std::shared_ptr<DNSRecordContent> make(const DNSRecord &dr, PacketReader& pr); |
1039 | | static std::shared_ptr<DNSRecordContent> make(const string& content); |
1040 | | string getZoneRepresentation(bool noDot=false) const override; |
1041 | | void toPacket(DNSPacketWriter& pw) const override; |
1042 | | |
1043 | | uint16_t getType() const override |
1044 | 0 | { |
1045 | 0 | return QType::NSEC3PARAM; |
1046 | 0 | } |
1047 | | |
1048 | | [[nodiscard]] size_t sizeEstimate() const override |
1049 | 0 | { |
1050 | 0 | return sizeof(*this) + d_salt.size(); |
1051 | 0 | } |
1052 | | |
1053 | | uint8_t d_algorithm{0}, d_flags{0}; |
1054 | | uint16_t d_iterations{0}; |
1055 | | string d_salt; |
1056 | | }; |
1057 | | |
1058 | | |
1059 | | class LOCRecordContent : public DNSRecordContent |
1060 | | { |
1061 | | public: |
1062 | | static void report(const ReportIsOnlyCallableByReportAllTypes& guard); |
1063 | 1.47k | LOCRecordContent() = default; |
1064 | | LOCRecordContent(const string& content, const string& zone=""); |
1065 | | |
1066 | | static std::shared_ptr<DNSRecordContent> make(const DNSRecord &dr, PacketReader& pr); |
1067 | | static std::shared_ptr<DNSRecordContent> make(const string& content); |
1068 | | string getZoneRepresentation(bool noDot=false) const override; |
1069 | | void toPacket(DNSPacketWriter& pw) const override; |
1070 | | |
1071 | | uint8_t d_version{0}, d_size{0}, d_horizpre{0}, d_vertpre{0}; |
1072 | | uint32_t d_latitude{0}, d_longitude{0}, d_altitude{0}; |
1073 | | uint16_t getType() const override |
1074 | 0 | { |
1075 | 0 | return QType::LOC; |
1076 | 0 | } |
1077 | | |
1078 | | [[nodiscard]] size_t sizeEstimate() const override |
1079 | 0 | { |
1080 | 0 | return sizeof(*this); |
1081 | 0 | } |
1082 | | private: |
1083 | | }; |
1084 | | |
1085 | | |
1086 | | class NIDRecordContent : public DNSRecordContent |
1087 | | { |
1088 | | public: |
1089 | | includeboilerplate(NID); |
1090 | | [[nodiscard]] size_t sizeEstimate() const override |
1091 | 0 | { |
1092 | 0 | return sizeof(*this); |
1093 | 0 | } |
1094 | | |
1095 | | private: |
1096 | | uint16_t d_preference; |
1097 | | NodeOrLocatorID d_node_id; |
1098 | | }; |
1099 | | |
1100 | | class L32RecordContent : public DNSRecordContent |
1101 | | { |
1102 | | public: |
1103 | | includeboilerplate(L32); |
1104 | | [[nodiscard]] size_t sizeEstimate() const override |
1105 | 0 | { |
1106 | 0 | return sizeof(*this); |
1107 | 0 | } |
1108 | | |
1109 | | private: |
1110 | | uint16_t d_preference; |
1111 | | uint32_t d_locator; |
1112 | | }; |
1113 | | |
1114 | | class L64RecordContent : public DNSRecordContent |
1115 | | { |
1116 | | public: |
1117 | | includeboilerplate(L64); |
1118 | | [[nodiscard]] size_t sizeEstimate() const override |
1119 | 0 | { |
1120 | 0 | return sizeof(*this); |
1121 | 0 | } |
1122 | | |
1123 | | private: |
1124 | | uint16_t d_preference; |
1125 | | NodeOrLocatorID d_locator; |
1126 | | }; |
1127 | | |
1128 | | class LPRecordContent : public DNSRecordContent |
1129 | | { |
1130 | | public: |
1131 | | includeboilerplate(LP); |
1132 | | [[nodiscard]] size_t sizeEstimate() const override |
1133 | 0 | { |
1134 | 0 | return sizeof(*this) + d_fqdn.sizeEstimate(); |
1135 | 0 | } |
1136 | | |
1137 | | private: |
1138 | | uint16_t d_preference; |
1139 | | DNSName d_fqdn; |
1140 | | }; |
1141 | | |
1142 | | class EUI48RecordContent : public DNSRecordContent |
1143 | | { |
1144 | | public: |
1145 | 395 | EUI48RecordContent() = default; |
1146 | | static void report(const ReportIsOnlyCallableByReportAllTypes& guard); |
1147 | | static std::shared_ptr<DNSRecordContent> make(const DNSRecord &dr, PacketReader& pr); |
1148 | | static std::shared_ptr<DNSRecordContent> make(const string& zone); // FIXME400: DNSName& zone? |
1149 | | string getZoneRepresentation(bool noDot=false) const override; |
1150 | | void toPacket(DNSPacketWriter& pw) const override; |
1151 | 0 | uint16_t getType() const override { return QType::EUI48; } |
1152 | | [[nodiscard]] size_t sizeEstimate() const override |
1153 | 0 | { |
1154 | 0 | return sizeof(*this); |
1155 | 0 | } |
1156 | | private: |
1157 | | // storage for the bytes |
1158 | | uint8_t d_eui48[6]; |
1159 | | }; |
1160 | | |
1161 | | class EUI64RecordContent : public DNSRecordContent |
1162 | | { |
1163 | | public: |
1164 | 899 | EUI64RecordContent() = default; |
1165 | | static void report(const ReportIsOnlyCallableByReportAllTypes& guard); |
1166 | | static std::shared_ptr<DNSRecordContent> make(const DNSRecord &dr, PacketReader& pr); |
1167 | | static std::shared_ptr<DNSRecordContent> make(const string& zone); // FIXME400: DNSName& zone? |
1168 | | string getZoneRepresentation(bool noDot=false) const override; |
1169 | | void toPacket(DNSPacketWriter& pw) const override; |
1170 | 0 | uint16_t getType() const override { return QType::EUI64; } |
1171 | | [[nodiscard]] size_t sizeEstimate() const override |
1172 | 0 | { |
1173 | 0 | return sizeof(*this); |
1174 | 0 | } |
1175 | | private: |
1176 | | // storage for the bytes |
1177 | | uint8_t d_eui64[8]; |
1178 | | }; |
1179 | | |
1180 | 10.5k | #define APL_FAMILY_IPV4 1 |
1181 | 9.39k | #define APL_FAMILY_IPV6 2 |
1182 | | typedef struct s_APLRDataElement { |
1183 | | uint16_t d_family; |
1184 | | uint8_t d_prefix; |
1185 | | bool d_n : 1; |
1186 | | unsigned int d_afdlength : 7; |
1187 | | union u_d_ip { |
1188 | | uint8_t d_ip4[4]; |
1189 | | uint8_t d_ip6[16]; |
1190 | | } d_ip; |
1191 | | } APLRDataElement; |
1192 | | class APLRecordContent : public DNSRecordContent |
1193 | | { |
1194 | | public: |
1195 | 1.02k | APLRecordContent() = default; |
1196 | | includeboilerplate(APL) |
1197 | | [[nodiscard]] size_t sizeEstimate() const override |
1198 | 0 | { |
1199 | 0 | return sizeof(*this) + aplrdata.size() * sizeof(APLRDataElement); |
1200 | 0 | } |
1201 | | private: |
1202 | | std::vector<APLRDataElement> aplrdata; |
1203 | | APLRDataElement parseAPLElement(const string &element); |
1204 | | }; |
1205 | | |
1206 | | |
1207 | | class TKEYRecordContent : public DNSRecordContent |
1208 | | { |
1209 | | public: |
1210 | | TKEYRecordContent(); |
1211 | | includeboilerplate(TKEY) |
1212 | | [[nodiscard]] size_t sizeEstimate() const override |
1213 | 0 | { |
1214 | 0 | return sizeof(*this) + d_algo.sizeEstimate() + d_key.size() + d_other.size(); |
1215 | 0 | } |
1216 | | |
1217 | | // storage for the bytes |
1218 | | uint16_t d_othersize{0}; |
1219 | | uint16_t d_mode{0}; |
1220 | | uint32_t d_inception{0}; |
1221 | | uint32_t d_expiration{0}; |
1222 | | |
1223 | | DNSName d_algo; |
1224 | | string d_key; |
1225 | | string d_other; |
1226 | | |
1227 | | uint16_t d_error{0}; |
1228 | | uint16_t d_keysize{0}; |
1229 | | private: |
1230 | | }; |
1231 | | |
1232 | | class URIRecordContent : public DNSRecordContent { |
1233 | | public: |
1234 | | includeboilerplate(URI) |
1235 | | [[nodiscard]] size_t sizeEstimate() const override |
1236 | 0 | { |
1237 | 0 | return sizeof(*this) + d_target.size(); |
1238 | 0 | } |
1239 | | private: |
1240 | | uint16_t d_priority, d_weight; |
1241 | | string d_target; |
1242 | | }; |
1243 | | |
1244 | | class CAARecordContent : public DNSRecordContent { |
1245 | | public: |
1246 | | includeboilerplate(CAA) |
1247 | | [[nodiscard]] size_t sizeEstimate() const override |
1248 | 0 | { |
1249 | 0 | return sizeof(*this) + d_tag.size() + d_value.size(); |
1250 | 0 | } |
1251 | | private: |
1252 | | uint8_t d_flags; |
1253 | | string d_tag, d_value; |
1254 | | }; |
1255 | | |
1256 | | #define boilerplate(RNAME) \ |
1257 | 63.3k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ |
1258 | 63.3k | { \ |
1259 | 63.3k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ |
1260 | 63.3k | } \ ARecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 562 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 562 | { \ | 1259 | 562 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 562 | } \ |
AAAARecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 951 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 951 | { \ | 1259 | 951 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 951 | } \ |
NSRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 810 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 810 | { \ | 1259 | 810 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 810 | } \ |
PTRRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 887 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 887 | { \ | 1259 | 887 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 887 | } \ |
CNAMERecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.38k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.38k | { \ | 1259 | 1.38k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.38k | } \ |
ALIASRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 617 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 617 | { \ | 1259 | 617 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 617 | } \ |
DNAMERecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 844 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 844 | { \ | 1259 | 844 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 844 | } \ |
MBRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.35k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.35k | { \ | 1259 | 1.35k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.35k | } \ |
MGRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.20k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.20k | { \ | 1259 | 1.20k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.20k | } \ |
MRRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.37k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.37k | { \ | 1259 | 1.37k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.37k | } \ |
MINFORecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.20k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.20k | { \ | 1259 | 1.20k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.20k | } \ |
TXTRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.10k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.10k | { \ | 1259 | 1.10k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.10k | } \ |
ENTRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 723 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 723 | { \ | 1259 | 723 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 723 | } \ |
SPFRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 502 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 502 | { \ | 1259 | 502 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 502 | } \ |
HINFORecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.09k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.09k | { \ | 1259 | 1.09k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.09k | } \ |
RPRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.70k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.70k | { \ | 1259 | 1.70k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.70k | } \ |
OPTRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.49k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.49k | { \ | 1259 | 1.49k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.49k | } \ |
TSIGRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 526 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 526 | { \ | 1259 | 526 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 526 | } \ |
MXRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 993 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 993 | { \ | 1259 | 993 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 993 | } \ |
KXRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 598 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 598 | { \ | 1259 | 598 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 598 | } \ |
IPSECKEYRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.94k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.94k | { \ | 1259 | 1.94k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.94k | } \ |
DHCIDRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.06k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.06k | { \ | 1259 | 1.06k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.06k | } \ |
AFSDBRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.37k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.37k | { \ | 1259 | 1.37k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.37k | } \ |
NAPTRRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.07k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.07k | { \ | 1259 | 1.07k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.07k | } \ |
SRVRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.00k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.00k | { \ | 1259 | 1.00k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.00k | } \ |
SOARecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 2.40k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 2.40k | { \ | 1259 | 2.40k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 2.40k | } \ |
KEYRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.44k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.44k | { \ | 1259 | 1.44k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.44k | } \ |
ZONEMDRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.57k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.57k | { \ | 1259 | 1.57k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.57k | } \ |
CERTRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.42k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.42k | { \ | 1259 | 1.42k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.42k | } \ |
TLSARecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.57k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.57k | { \ | 1259 | 1.57k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.57k | } \ |
OPENPGPKEYRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 656 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 656 | { \ | 1259 | 656 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 656 | } \ |
SVCBRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 2.86k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 2.86k | { \ | 1259 | 2.86k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 2.86k | } \ |
HTTPSRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 2.20k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 2.20k | { \ | 1259 | 2.20k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 2.20k | } \ |
HHITRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 494 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 494 | { \ | 1259 | 494 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 494 | } \ |
BRIDRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 731 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 731 | { \ | 1259 | 731 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 731 | } \ |
SMIMEARecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 672 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 672 | { \ | 1259 | 672 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 672 | } \ |
DSRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 958 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 958 | { \ | 1259 | 958 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 958 | } \ |
CDSRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 2.13k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 2.13k | { \ | 1259 | 2.13k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 2.13k | } \ |
DLVRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 827 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 827 | { \ | 1259 | 827 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 827 | } \ |
SSHFPRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.25k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.25k | { \ | 1259 | 1.25k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.25k | } \ |
RRSIGRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.97k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.97k | { \ | 1259 | 1.97k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.97k | } \ |
DNSKEYRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.23k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.23k | { \ | 1259 | 1.23k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.23k | } \ |
CDNSKEYRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.46k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.46k | { \ | 1259 | 1.46k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.46k | } \ |
RKEYRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.33k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.33k | { \ | 1259 | 1.33k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.33k | } \ |
NIDRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.03k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.03k | { \ | 1259 | 1.03k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.03k | } \ |
L32RecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 747 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 747 | { \ | 1259 | 747 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 747 | } \ |
L64RecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.05k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.05k | { \ | 1259 | 1.05k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.05k | } \ |
LPRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 616 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 616 | { \ | 1259 | 616 | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 616 | } \ |
TKEYRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 2.01k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 2.01k | { \ | 1259 | 2.01k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 2.01k | } \ |
URIRecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 1.43k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 1.43k | { \ | 1259 | 1.43k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 1.43k | } \ |
CAARecordContent::make(DNSRecord const&, PacketReader&) Line | Count | Source | 1257 | 2.79k | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \ | 1258 | 2.79k | { \ | 1259 | 2.79k | return std::make_shared<RNAME##RecordContent>(dr, pr); \ | 1260 | 2.79k | } \ |
|
1261 | | \ |
1262 | 63.3k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ |
1263 | 63.3k | { \ |
1264 | 63.3k | doRecordCheck(dr); \ |
1265 | 63.3k | xfrPacket(pr); \ |
1266 | 63.3k | } \ ARecordContent::ARecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 562 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 562 | { \ | 1264 | 562 | doRecordCheck(dr); \ | 1265 | 562 | xfrPacket(pr); \ | 1266 | 562 | } \ |
AAAARecordContent::AAAARecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 951 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 951 | { \ | 1264 | 951 | doRecordCheck(dr); \ | 1265 | 951 | xfrPacket(pr); \ | 1266 | 951 | } \ |
NSRecordContent::NSRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 810 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 810 | { \ | 1264 | 810 | doRecordCheck(dr); \ | 1265 | 810 | xfrPacket(pr); \ | 1266 | 810 | } \ |
PTRRecordContent::PTRRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 887 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 887 | { \ | 1264 | 887 | doRecordCheck(dr); \ | 1265 | 887 | xfrPacket(pr); \ | 1266 | 887 | } \ |
CNAMERecordContent::CNAMERecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.38k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.38k | { \ | 1264 | 1.38k | doRecordCheck(dr); \ | 1265 | 1.38k | xfrPacket(pr); \ | 1266 | 1.38k | } \ |
ALIASRecordContent::ALIASRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 617 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 617 | { \ | 1264 | 617 | doRecordCheck(dr); \ | 1265 | 617 | xfrPacket(pr); \ | 1266 | 617 | } \ |
DNAMERecordContent::DNAMERecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 844 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 844 | { \ | 1264 | 844 | doRecordCheck(dr); \ | 1265 | 844 | xfrPacket(pr); \ | 1266 | 844 | } \ |
MBRecordContent::MBRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.35k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.35k | { \ | 1264 | 1.35k | doRecordCheck(dr); \ | 1265 | 1.35k | xfrPacket(pr); \ | 1266 | 1.35k | } \ |
MGRecordContent::MGRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.20k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.20k | { \ | 1264 | 1.20k | doRecordCheck(dr); \ | 1265 | 1.20k | xfrPacket(pr); \ | 1266 | 1.20k | } \ |
MRRecordContent::MRRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.37k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.37k | { \ | 1264 | 1.37k | doRecordCheck(dr); \ | 1265 | 1.37k | xfrPacket(pr); \ | 1266 | 1.37k | } \ |
MINFORecordContent::MINFORecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.20k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.20k | { \ | 1264 | 1.20k | doRecordCheck(dr); \ | 1265 | 1.20k | xfrPacket(pr); \ | 1266 | 1.20k | } \ |
TXTRecordContent::TXTRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.10k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.10k | { \ | 1264 | 1.10k | doRecordCheck(dr); \ | 1265 | 1.10k | xfrPacket(pr); \ | 1266 | 1.10k | } \ |
ENTRecordContent::ENTRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 723 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 723 | { \ | 1264 | 723 | doRecordCheck(dr); \ | 1265 | 723 | xfrPacket(pr); \ | 1266 | 723 | } \ |
SPFRecordContent::SPFRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 502 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 502 | { \ | 1264 | 502 | doRecordCheck(dr); \ | 1265 | 502 | xfrPacket(pr); \ | 1266 | 502 | } \ |
HINFORecordContent::HINFORecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.09k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.09k | { \ | 1264 | 1.09k | doRecordCheck(dr); \ | 1265 | 1.09k | xfrPacket(pr); \ | 1266 | 1.09k | } \ |
RPRecordContent::RPRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.70k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.70k | { \ | 1264 | 1.70k | doRecordCheck(dr); \ | 1265 | 1.70k | xfrPacket(pr); \ | 1266 | 1.70k | } \ |
OPTRecordContent::OPTRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.49k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.49k | { \ | 1264 | 1.49k | doRecordCheck(dr); \ | 1265 | 1.49k | xfrPacket(pr); \ | 1266 | 1.49k | } \ |
TSIGRecordContent::TSIGRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 526 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 526 | { \ | 1264 | 526 | doRecordCheck(dr); \ | 1265 | 526 | xfrPacket(pr); \ | 1266 | 526 | } \ |
MXRecordContent::MXRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 993 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 993 | { \ | 1264 | 993 | doRecordCheck(dr); \ | 1265 | 993 | xfrPacket(pr); \ | 1266 | 993 | } \ |
KXRecordContent::KXRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 598 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 598 | { \ | 1264 | 598 | doRecordCheck(dr); \ | 1265 | 598 | xfrPacket(pr); \ | 1266 | 598 | } \ |
IPSECKEYRecordContent::IPSECKEYRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.94k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.94k | { \ | 1264 | 1.94k | doRecordCheck(dr); \ | 1265 | 1.94k | xfrPacket(pr); \ | 1266 | 1.94k | } \ |
DHCIDRecordContent::DHCIDRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.06k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.06k | { \ | 1264 | 1.06k | doRecordCheck(dr); \ | 1265 | 1.06k | xfrPacket(pr); \ | 1266 | 1.06k | } \ |
AFSDBRecordContent::AFSDBRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.37k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.37k | { \ | 1264 | 1.37k | doRecordCheck(dr); \ | 1265 | 1.37k | xfrPacket(pr); \ | 1266 | 1.37k | } \ |
NAPTRRecordContent::NAPTRRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.07k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.07k | { \ | 1264 | 1.07k | doRecordCheck(dr); \ | 1265 | 1.07k | xfrPacket(pr); \ | 1266 | 1.07k | } \ |
SRVRecordContent::SRVRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.00k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.00k | { \ | 1264 | 1.00k | doRecordCheck(dr); \ | 1265 | 1.00k | xfrPacket(pr); \ | 1266 | 1.00k | } \ |
SOARecordContent::SOARecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 2.40k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 2.40k | { \ | 1264 | 2.40k | doRecordCheck(dr); \ | 1265 | 2.40k | xfrPacket(pr); \ | 1266 | 2.40k | } \ |
KEYRecordContent::KEYRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.44k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.44k | { \ | 1264 | 1.44k | doRecordCheck(dr); \ | 1265 | 1.44k | xfrPacket(pr); \ | 1266 | 1.44k | } \ |
ZONEMDRecordContent::ZONEMDRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.57k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.57k | { \ | 1264 | 1.57k | doRecordCheck(dr); \ | 1265 | 1.57k | xfrPacket(pr); \ | 1266 | 1.57k | } \ |
CERTRecordContent::CERTRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.42k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.42k | { \ | 1264 | 1.42k | doRecordCheck(dr); \ | 1265 | 1.42k | xfrPacket(pr); \ | 1266 | 1.42k | } \ |
TLSARecordContent::TLSARecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.57k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.57k | { \ | 1264 | 1.57k | doRecordCheck(dr); \ | 1265 | 1.57k | xfrPacket(pr); \ | 1266 | 1.57k | } \ |
OPENPGPKEYRecordContent::OPENPGPKEYRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 656 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 656 | { \ | 1264 | 656 | doRecordCheck(dr); \ | 1265 | 656 | xfrPacket(pr); \ | 1266 | 656 | } \ |
SVCBRecordContent::SVCBRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 2.86k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 2.86k | { \ | 1264 | 2.86k | doRecordCheck(dr); \ | 1265 | 2.86k | xfrPacket(pr); \ | 1266 | 2.86k | } \ |
HTTPSRecordContent::HTTPSRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 2.20k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 2.20k | { \ | 1264 | 2.20k | doRecordCheck(dr); \ | 1265 | 2.20k | xfrPacket(pr); \ | 1266 | 2.20k | } \ |
HHITRecordContent::HHITRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 494 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 494 | { \ | 1264 | 494 | doRecordCheck(dr); \ | 1265 | 494 | xfrPacket(pr); \ | 1266 | 494 | } \ |
BRIDRecordContent::BRIDRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 731 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 731 | { \ | 1264 | 731 | doRecordCheck(dr); \ | 1265 | 731 | xfrPacket(pr); \ | 1266 | 731 | } \ |
SMIMEARecordContent::SMIMEARecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 672 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 672 | { \ | 1264 | 672 | doRecordCheck(dr); \ | 1265 | 672 | xfrPacket(pr); \ | 1266 | 672 | } \ |
DSRecordContent::DSRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 958 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 958 | { \ | 1264 | 958 | doRecordCheck(dr); \ | 1265 | 958 | xfrPacket(pr); \ | 1266 | 958 | } \ |
CDSRecordContent::CDSRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 2.13k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 2.13k | { \ | 1264 | 2.13k | doRecordCheck(dr); \ | 1265 | 2.13k | xfrPacket(pr); \ | 1266 | 2.13k | } \ |
DLVRecordContent::DLVRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 827 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 827 | { \ | 1264 | 827 | doRecordCheck(dr); \ | 1265 | 827 | xfrPacket(pr); \ | 1266 | 827 | } \ |
SSHFPRecordContent::SSHFPRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.25k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.25k | { \ | 1264 | 1.25k | doRecordCheck(dr); \ | 1265 | 1.25k | xfrPacket(pr); \ | 1266 | 1.25k | } \ |
RRSIGRecordContent::RRSIGRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.97k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.97k | { \ | 1264 | 1.97k | doRecordCheck(dr); \ | 1265 | 1.97k | xfrPacket(pr); \ | 1266 | 1.97k | } \ |
DNSKEYRecordContent::DNSKEYRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.23k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.23k | { \ | 1264 | 1.23k | doRecordCheck(dr); \ | 1265 | 1.23k | xfrPacket(pr); \ | 1266 | 1.23k | } \ |
CDNSKEYRecordContent::CDNSKEYRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.46k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.46k | { \ | 1264 | 1.46k | doRecordCheck(dr); \ | 1265 | 1.46k | xfrPacket(pr); \ | 1266 | 1.46k | } \ |
RKEYRecordContent::RKEYRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.33k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.33k | { \ | 1264 | 1.33k | doRecordCheck(dr); \ | 1265 | 1.33k | xfrPacket(pr); \ | 1266 | 1.33k | } \ |
NIDRecordContent::NIDRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.03k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.03k | { \ | 1264 | 1.03k | doRecordCheck(dr); \ | 1265 | 1.03k | xfrPacket(pr); \ | 1266 | 1.03k | } \ |
L32RecordContent::L32RecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 747 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 747 | { \ | 1264 | 747 | doRecordCheck(dr); \ | 1265 | 747 | xfrPacket(pr); \ | 1266 | 747 | } \ |
L64RecordContent::L64RecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.05k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.05k | { \ | 1264 | 1.05k | doRecordCheck(dr); \ | 1265 | 1.05k | xfrPacket(pr); \ | 1266 | 1.05k | } \ |
LPRecordContent::LPRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 616 | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 616 | { \ | 1264 | 616 | doRecordCheck(dr); \ | 1265 | 616 | xfrPacket(pr); \ | 1266 | 616 | } \ |
TKEYRecordContent::TKEYRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 2.01k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 2.01k | { \ | 1264 | 2.01k | doRecordCheck(dr); \ | 1265 | 2.01k | xfrPacket(pr); \ | 1266 | 2.01k | } \ |
URIRecordContent::URIRecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 1.43k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 1.43k | { \ | 1264 | 1.43k | doRecordCheck(dr); \ | 1265 | 1.43k | xfrPacket(pr); \ | 1266 | 1.43k | } \ |
CAARecordContent::CAARecordContent(DNSRecord const&, PacketReader&) Line | Count | Source | 1262 | 2.79k | RNAME##RecordContent::RNAME##RecordContent(const DNSRecord& dr, PacketReader& pr) \ | 1263 | 2.79k | { \ | 1264 | 2.79k | doRecordCheck(dr); \ | 1265 | 2.79k | xfrPacket(pr); \ | 1266 | 2.79k | } \ |
|
1267 | | \ |
1268 | 0 | std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const string& zonedata) \ |
1269 | 0 | { \ |
1270 | 0 | return std::make_shared<RNAME##RecordContent>(zonedata); \ |
1271 | 0 | } \ Unexecuted instantiation: ARecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: AAAARecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: NSRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: PTRRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CNAMERecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: ALIASRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DNAMERecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MBRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MGRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MRRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MINFORecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: TXTRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: ENTRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SPFRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: HINFORecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: RPRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: OPTRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: TSIGRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MXRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: KXRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: IPSECKEYRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DHCIDRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: AFSDBRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: NAPTRRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SRVRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SOARecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: KEYRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: ZONEMDRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CERTRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: TLSARecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: OPENPGPKEYRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SVCBRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: HTTPSRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: HHITRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: BRIDRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SMIMEARecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DSRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CDSRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DLVRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SSHFPRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: RRSIGRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DNSKEYRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CDNSKEYRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: RKEYRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: NIDRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: L32RecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: L64RecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: LPRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: TKEYRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: URIRecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CAARecordContent::make(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) |
1272 | | \ |
1273 | 0 | void RNAME##RecordContent::toPacket(DNSPacketWriter& pw) const \ |
1274 | 0 | { \ |
1275 | 0 | this->xfrPacket(pw); \ |
1276 | 0 | } \ Unexecuted instantiation: ARecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: AAAARecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: NSRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: PTRRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: CNAMERecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: ALIASRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: DNAMERecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: MBRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: MGRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: MRRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: MINFORecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: TXTRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: ENTRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: SPFRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: HINFORecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: RPRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: OPTRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: TSIGRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: MXRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: KXRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: IPSECKEYRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: DHCIDRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: AFSDBRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: NAPTRRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: SRVRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: SOARecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: KEYRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: ZONEMDRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: CERTRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: TLSARecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: OPENPGPKEYRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: SVCBRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: HTTPSRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: HHITRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: BRIDRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: SMIMEARecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: DSRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: CDSRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: DLVRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: SSHFPRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: RRSIGRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: DNSKEYRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: CDNSKEYRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: RKEYRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: NIDRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: L32RecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: L64RecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: LPRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: TKEYRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: URIRecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const Unexecuted instantiation: CAARecordContent::toPacket(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&) const |
1277 | | \ |
1278 | 98 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ |
1279 | 98 | { \ |
1280 | 98 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ |
1281 | 98 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ |
1282 | 98 | } \ ARecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
AAAARecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
NSRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
PTRRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
CNAMERecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
ALIASRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
DNAMERecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
MBRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
MGRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
MRRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
MINFORecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
TXTRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
ENTRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
SPFRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
HINFORecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
RPRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
OPTRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
Unexecuted instantiation: TSIGRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) MXRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
KXRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
IPSECKEYRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
DHCIDRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
AFSDBRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
NAPTRRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
SRVRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
SOARecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
KEYRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
ZONEMDRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
CERTRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
TLSARecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
OPENPGPKEYRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
SVCBRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
HTTPSRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
HHITRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
BRIDRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
SMIMEARecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
DSRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
CDSRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
DLVRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
SSHFPRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
RRSIGRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
DNSKEYRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
CDNSKEYRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
RKEYRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
NIDRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
L32RecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
L64RecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
LPRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
Unexecuted instantiation: TKEYRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) URIRecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
CAARecordContent::report(ReportIsOnlyCallableByReportAllTypes const&) Line | Count | Source | 1278 | 2 | void RNAME##RecordContent::report(const ReportIsOnlyCallableByReportAllTypes& /* unused */) \ | 1279 | 2 | { \ | 1280 | 2 | regist(1, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1281 | 2 | regist(254, QType::RNAME, &RNAME##RecordContent::make, &RNAME##RecordContent::make, #RNAME); \ | 1282 | 2 | } \ |
|
1283 | | \ |
1284 | 0 | RNAME##RecordContent::RNAME##RecordContent(const string& zoneData) \ |
1285 | 0 | { \ |
1286 | 0 | try { \ |
1287 | 0 | RecordTextReader rtr(zoneData); \ |
1288 | 0 | xfrPacket(rtr); \ |
1289 | 0 | } \ |
1290 | 0 | catch(RecordTextException& rte) { \ |
1291 | 0 | throw MOADNSException("Parsing record content (try 'pdnsutil zone check'): "+string(rte.what())); \ |
1292 | 0 | } \ |
1293 | 0 | } \ Unexecuted instantiation: ARecordContent::ARecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: AAAARecordContent::AAAARecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: NSRecordContent::NSRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: PTRRecordContent::PTRRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CNAMERecordContent::CNAMERecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: ALIASRecordContent::ALIASRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DNAMERecordContent::DNAMERecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MBRecordContent::MBRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MGRecordContent::MGRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MRRecordContent::MRRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MINFORecordContent::MINFORecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: TXTRecordContent::TXTRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: ENTRecordContent::ENTRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SPFRecordContent::SPFRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: HINFORecordContent::HINFORecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: RPRecordContent::RPRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: OPTRecordContent::OPTRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: TSIGRecordContent::TSIGRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: MXRecordContent::MXRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: KXRecordContent::KXRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: IPSECKEYRecordContent::IPSECKEYRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DHCIDRecordContent::DHCIDRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: AFSDBRecordContent::AFSDBRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: NAPTRRecordContent::NAPTRRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SRVRecordContent::SRVRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SOARecordContent::SOARecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: KEYRecordContent::KEYRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: ZONEMDRecordContent::ZONEMDRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CERTRecordContent::CERTRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: TLSARecordContent::TLSARecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: OPENPGPKEYRecordContent::OPENPGPKEYRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SVCBRecordContent::SVCBRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: HTTPSRecordContent::HTTPSRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: HHITRecordContent::HHITRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: BRIDRecordContent::BRIDRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SMIMEARecordContent::SMIMEARecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DSRecordContent::DSRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CDSRecordContent::CDSRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DLVRecordContent::DLVRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: SSHFPRecordContent::SSHFPRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: RRSIGRecordContent::RRSIGRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: DNSKEYRecordContent::DNSKEYRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CDNSKEYRecordContent::CDNSKEYRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: RKEYRecordContent::RKEYRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: NIDRecordContent::NIDRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: L32RecordContent::L32RecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: L64RecordContent::L64RecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: LPRecordContent::LPRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: TKEYRecordContent::TKEYRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: URIRecordContent::URIRecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) Unexecuted instantiation: CAARecordContent::CAARecordContent(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) |
1294 | | \ |
1295 | 0 | string RNAME##RecordContent::getZoneRepresentation(bool noDot) const \ |
1296 | 0 | { \ |
1297 | 0 | string ret; \ |
1298 | 0 | RecordTextWriter rtw(ret, noDot); \ |
1299 | 0 | const_cast<RNAME##RecordContent*>(this)->xfrPacket(rtw); \ |
1300 | 0 | return ret; \ |
1301 | 0 | } Unexecuted instantiation: ARecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: AAAARecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: NSRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: PTRRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: CNAMERecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: ALIASRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: DNAMERecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: MBRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: MGRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: MRRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: MINFORecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: TXTRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: ENTRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: SPFRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: HINFORecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: RPRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: OPTRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: TSIGRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: MXRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: KXRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: IPSECKEYRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: DHCIDRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: AFSDBRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: NAPTRRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: SRVRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: SOARecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: KEYRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: ZONEMDRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: CERTRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: TLSARecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: OPENPGPKEYRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: SVCBRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: HTTPSRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: HHITRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: BRIDRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: SMIMEARecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: DSRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: CDSRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: DLVRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: SSHFPRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: RRSIGRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: DNSKEYRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: CDNSKEYRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: RKEYRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: NIDRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: L32RecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: L64RecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: LPRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: TKEYRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: URIRecordContent::getZoneRepresentation(bool) const Unexecuted instantiation: CAARecordContent::getZoneRepresentation(bool) const |
1302 | | |
1303 | | |
1304 | | #define boilerplate_conv(RNAME, CONV) \ |
1305 | | boilerplate(RNAME) \ |
1306 | | template<class Convertor> \ |
1307 | 63.3k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ |
1308 | 63.3k | { \ |
1309 | 63.3k | CONV; \ |
1310 | 63.2k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ |
1311 | 1.89k | } \ void ARecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 541 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 541 | { \ | 1309 | 541 | CONV; \ | 1310 | 541 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 541 | } \ |
Unexecuted instantiation: void ARecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void ARecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void AAAARecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 951 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 951 | { \ | 1309 | 951 | CONV; \ | 1310 | 951 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 951 | } \ |
Unexecuted instantiation: void AAAARecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void AAAARecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void NSRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 810 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 810 | { \ | 1309 | 810 | CONV; \ | 1310 | 810 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 810 | } \ |
Unexecuted instantiation: void NSRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void NSRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void PTRRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 887 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 887 | { \ | 1309 | 887 | CONV; \ | 1310 | 887 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 887 | } \ |
Unexecuted instantiation: void PTRRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void PTRRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void CNAMERecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.38k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.38k | { \ | 1309 | 1.38k | CONV; \ | 1310 | 1.38k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.38k | } \ |
Unexecuted instantiation: void CNAMERecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void CNAMERecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void ALIASRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 617 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 617 | { \ | 1309 | 617 | CONV; \ | 1310 | 617 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 617 | } \ |
Unexecuted instantiation: void ALIASRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void ALIASRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void DNAMERecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 844 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 844 | { \ | 1309 | 844 | CONV; \ | 1310 | 844 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 844 | } \ |
Unexecuted instantiation: void DNAMERecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void DNAMERecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void MBRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.35k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.35k | { \ | 1309 | 1.35k | CONV; \ | 1310 | 1.35k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.35k | } \ |
Unexecuted instantiation: void MBRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void MBRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void MGRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.20k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.20k | { \ | 1309 | 1.20k | CONV; \ | 1310 | 1.20k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.20k | } \ |
Unexecuted instantiation: void MGRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void MGRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void MRRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.37k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.37k | { \ | 1309 | 1.37k | CONV; \ | 1310 | 1.37k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.37k | } \ |
Unexecuted instantiation: void MRRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void MRRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void MINFORecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.20k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.20k | { \ | 1309 | 1.20k | CONV; \ | 1310 | 1.20k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.20k | } \ |
Unexecuted instantiation: void MINFORecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void MINFORecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void TXTRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.10k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.10k | { \ | 1309 | 1.10k | CONV; \ | 1310 | 1.10k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.10k | } \ |
Unexecuted instantiation: void TXTRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void TXTRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void ENTRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 723 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 723 | { \ | 1309 | 723 | CONV; \ | 1310 | 723 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 723 | } \ |
Unexecuted instantiation: void ENTRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void ENTRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void SPFRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 502 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 502 | { \ | 1309 | 502 | CONV; \ | 1310 | 502 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 502 | } \ |
Unexecuted instantiation: void SPFRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void SPFRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void HINFORecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.09k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.09k | { \ | 1309 | 1.09k | CONV; \ | 1310 | 1.09k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.09k | } \ |
Unexecuted instantiation: void HINFORecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void HINFORecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void RPRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.70k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.70k | { \ | 1309 | 1.70k | CONV; \ | 1310 | 1.70k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.70k | } \ |
Unexecuted instantiation: void RPRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void RPRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void OPTRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.49k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.49k | { \ | 1309 | 1.49k | CONV; \ | 1310 | 1.49k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.49k | } \ |
Unexecuted instantiation: void OPTRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void OPTRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void TSIGRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 526 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 526 | { \ | 1309 | 1.31k | CONV; \ | 1310 | 526 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 526 | } \ |
Unexecuted instantiation: void TSIGRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void TSIGRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void MXRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 993 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 993 | { \ | 1309 | 993 | CONV; \ | 1310 | 993 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 993 | } \ |
Unexecuted instantiation: void MXRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void MXRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void KXRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 598 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 598 | { \ | 1309 | 598 | CONV; \ | 1310 | 598 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 598 | } \ |
Unexecuted instantiation: void KXRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void KXRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void IPSECKEYRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.94k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.94k | { \ | 1309 | 2.59k | CONV; \ | 1310 | 1.89k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.89k | } \ |
Unexecuted instantiation: void IPSECKEYRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void IPSECKEYRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void DHCIDRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.06k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.06k | { \ | 1309 | 1.06k | CONV; \ | 1310 | 1.06k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.06k | } \ |
Unexecuted instantiation: void DHCIDRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void DHCIDRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void AFSDBRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.37k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.37k | { \ | 1309 | 1.37k | CONV; \ | 1310 | 1.37k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.37k | } \ |
Unexecuted instantiation: void AFSDBRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void AFSDBRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void NAPTRRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.07k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.07k | { \ | 1309 | 1.07k | CONV; \ | 1310 | 1.07k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.07k | } \ |
Unexecuted instantiation: void NAPTRRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void NAPTRRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void SRVRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.00k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.00k | { \ | 1309 | 1.00k | CONV; \ | 1310 | 1.00k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.00k | } \ |
Unexecuted instantiation: void SRVRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void SRVRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void SOARecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 2.40k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 2.40k | { \ | 1309 | 2.40k | CONV; \ | 1310 | 2.40k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 2.40k | } \ |
Unexecuted instantiation: void SOARecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void SOARecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void KEYRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.44k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.44k | { \ | 1309 | 1.44k | CONV; \ | 1310 | 1.44k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.44k | } \ |
Unexecuted instantiation: void KEYRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void KEYRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void ZONEMDRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.57k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.57k | { \ | 1309 | 1.57k | CONV; \ | 1310 | 1.57k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.57k | } \ |
Unexecuted instantiation: void ZONEMDRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void ZONEMDRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void CERTRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.42k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.42k | { \ | 1309 | 1.42k | CONV; \ | 1310 | 1.41k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.41k | } \ |
Unexecuted instantiation: void CERTRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void CERTRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void TLSARecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.57k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.57k | { \ | 1309 | 1.57k | CONV; \ | 1310 | 1.57k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.57k | } \ |
Unexecuted instantiation: void TLSARecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void TLSARecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void OPENPGPKEYRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 656 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 656 | { \ | 1309 | 656 | CONV; \ | 1310 | 656 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 656 | } \ |
Unexecuted instantiation: void OPENPGPKEYRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void OPENPGPKEYRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void SVCBRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 2.86k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 2.86k | { \ | 1309 | 5.12k | CONV; \ | 1310 | 2.86k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 2.86k | } \ |
Unexecuted instantiation: void SVCBRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void SVCBRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void HTTPSRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 2.20k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 2.20k | { \ | 1309 | 3.53k | CONV; \ | 1310 | 2.20k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 2.20k | } \ |
Unexecuted instantiation: void HTTPSRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void HTTPSRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void HHITRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 494 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 494 | { \ | 1309 | 494 | CONV; \ | 1310 | 494 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 494 | } \ |
Unexecuted instantiation: void HHITRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void HHITRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void BRIDRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 731 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 731 | { \ | 1309 | 731 | CONV; \ | 1310 | 731 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 731 | } \ |
Unexecuted instantiation: void BRIDRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void BRIDRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void SMIMEARecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 672 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 672 | { \ | 1309 | 672 | CONV; \ | 1310 | 672 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 672 | } \ |
Unexecuted instantiation: void SMIMEARecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void SMIMEARecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void DSRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 958 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 958 | { \ | 1309 | 958 | CONV; \ | 1310 | 958 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 958 | } \ |
Unexecuted instantiation: void DSRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void DSRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void CDSRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 2.13k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 2.13k | { \ | 1309 | 2.13k | CONV; \ | 1310 | 2.13k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 2.13k | } \ |
Unexecuted instantiation: void CDSRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void CDSRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void DLVRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 827 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 827 | { \ | 1309 | 827 | CONV; \ | 1310 | 827 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 827 | } \ |
Unexecuted instantiation: void DLVRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void DLVRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void SSHFPRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.25k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.25k | { \ | 1309 | 1.25k | CONV; \ | 1310 | 1.25k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.25k | } \ |
Unexecuted instantiation: void SSHFPRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void SSHFPRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void RRSIGRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.97k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.97k | { \ | 1309 | 1.97k | CONV; \ | 1310 | 1.97k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.97k | } \ |
Unexecuted instantiation: void RRSIGRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void RRSIGRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void DNSKEYRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.23k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.23k | { \ | 1309 | 1.23k | CONV; \ | 1310 | 1.23k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.23k | } \ |
Unexecuted instantiation: void DNSKEYRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void DNSKEYRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void CDNSKEYRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.46k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.46k | { \ | 1309 | 1.46k | CONV; \ | 1310 | 1.46k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.46k | } \ |
Unexecuted instantiation: void CDNSKEYRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void CDNSKEYRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void RKEYRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.33k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.33k | { \ | 1309 | 1.33k | CONV; \ | 1310 | 1.33k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.33k | } \ |
Unexecuted instantiation: void RKEYRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void RKEYRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void NIDRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.03k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.03k | { \ | 1309 | 1.03k | CONV; \ | 1310 | 1.03k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.03k | } \ |
Unexecuted instantiation: void NIDRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void NIDRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void L32RecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 747 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 747 | { \ | 1309 | 747 | CONV; \ | 1310 | 747 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 747 | } \ |
Unexecuted instantiation: void L32RecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void L32RecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void L64RecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.05k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.05k | { \ | 1309 | 1.05k | CONV; \ | 1310 | 1.05k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.05k | } \ |
Unexecuted instantiation: void L64RecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void L64RecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void LPRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 616 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 616 | { \ | 1309 | 616 | CONV; \ | 1310 | 616 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 616 | } \ |
Unexecuted instantiation: void LPRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void LPRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void TKEYRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 2.01k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 2.01k | { \ | 1309 | 5.90k | CONV; \ | 1310 | 2.01k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 2.01k | } \ |
Unexecuted instantiation: void TKEYRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void TKEYRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void URIRecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 1.43k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 1.43k | { \ | 1309 | 1.43k | CONV; \ | 1310 | 1.43k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 1.43k | } \ |
Unexecuted instantiation: void URIRecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void URIRecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) void CAARecordContent::xfrPacket<PacketReader>(PacketReader&, bool) Line | Count | Source | 1307 | 2.79k | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) \ | 1308 | 2.79k | { \ | 1309 | 2.79k | CONV; \ | 1310 | 2.79k | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ | 1311 | 2.79k | } \ |
Unexecuted instantiation: void CAARecordContent::xfrPacket<RecordTextReader>(RecordTextReader&, bool) Unexecuted instantiation: void CAARecordContent::xfrPacket<RecordTextWriter>(RecordTextWriter&, bool) |
1312 | | template<class Convertor> \ |
1313 | 0 | void RNAME##RecordContent::xfrPacket(Convertor& conv, bool /* noDot */) const \ |
1314 | 0 | { \ |
1315 | 0 | CONV; \ |
1316 | 0 | if (conv.eof() == false) throw MOADNSException("When parsing " #RNAME " trailing data was not parsed: '" + conv.getRemaining() + "'"); \ |
1317 | 0 | } \ Unexecuted instantiation: void ARecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void AAAARecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void NSRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void PTRRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void CNAMERecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void ALIASRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void DNAMERecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void MBRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void MGRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void MRRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void MINFORecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void TXTRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void ENTRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void SPFRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void HINFORecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void RPRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void OPTRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void TSIGRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void MXRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void KXRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void IPSECKEYRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void DHCIDRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void AFSDBRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void NAPTRRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void SRVRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void SOARecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void KEYRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void ZONEMDRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void CERTRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void TLSARecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void OPENPGPKEYRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void SVCBRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void HTTPSRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void HHITRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void BRIDRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void SMIMEARecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void DSRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void CDSRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void DLVRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void SSHFPRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void RRSIGRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void DNSKEYRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void CDNSKEYRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void RKEYRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void NIDRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void L32RecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void L64RecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void LPRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void TKEYRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void URIRecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const Unexecuted instantiation: void CAARecordContent::xfrPacket<GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > > >(GenericDNSPacketWriter<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >&, bool) const |
1318 | | |
1319 | | struct EDNSOpts |
1320 | | { |
1321 | | enum zFlags { DNSSECOK=32768 }; |
1322 | | vector<pair<uint16_t, string> > d_options; |
1323 | | uint16_t d_packetsize{0}; |
1324 | | uint16_t d_extFlags{0}; |
1325 | | uint8_t d_extRCode, d_version; |
1326 | | |
1327 | | [[nodiscard]] vector<pair<uint16_t, string>>::const_iterator getFirstOption(uint16_t optionCode) const; |
1328 | | [[nodiscard]] uint16_t getCombinedERCode(uint8_t rcode) const |
1329 | 0 | { |
1330 | 0 | return (static_cast<uint16_t>(d_extRCode) << 4) | rcode; |
1331 | 0 | } |
1332 | | }; |
1333 | | //! Convenience function that fills out EDNS0 options, and returns true if there are any |
1334 | | |
1335 | | class MOADNSParser; |
1336 | | bool getEDNSOpts(const MOADNSParser& mdp, EDNSOpts* eo); |
1337 | | void reportAllTypes(); |
1338 | | ComboAddress getAddr(const DNSRecord& dr, uint16_t defport=0); |
1339 | | void checkHostnameCorrectness(const DNSResourceRecord& rr, bool allowUnderscore = false); |