conv.xfrUnquotedText(d_tag, true);
conv.xfrText(d_value, true, false); /* no lenField */
)
+
+boilerplate_conv(RESINFO, conv.xfrText(d_text, true));
//NOLINTEND
static uint16_t makeTag(const std::string& data)
MINFORecordContent::report(guard);
URIRecordContent::report(guard);
CAARecordContent::report(guard);
+ RESINFORecordContent::report(guard);
APLRecordContent::report(guard);
IPSECKEYRecordContent::report(guard);
CSYNCRecordContent::report(guard);
string d_tag, d_value;
};
+class RESINFORecordContent : public DNSRecordContent
+{
+public:
+ includeboilerplate(RESINFO)
+
+ [[nodiscard]] size_t sizeEstimate() const override
+ {
+ return sizeof(*this) + d_text.size();
+ }
+
+ string d_text;
+};
+
#define boilerplate(RNAME) \
std::shared_ptr<RNAME##RecordContent::DNSRecordContent> RNAME##RecordContent::make(const DNSRecord& dr, PacketReader& pr) \
{ \
{"ANY", 255},
{"URI", 256},
{"CAA", 257},
+ {"RESINFO", 261},
{"DLV", 32769},
{"ADDR", 65400},
#if !defined(RECURSOR)
ANY = 255,
URI = 256,
CAA = 257,
+ RESINFO = 261,
DLV = 32769,
ADDR = 65400,
#if !defined(RECURSOR)
(CASE_S(QType::CAA, "0 issue \"aa\"", "\x00\x05\x69\x73\x73\x75\x65\x61\x61"))
(CASE_S(QType::CAA, "0 issue \"aaaaaaa\"", "\x00\x05\x69\x73\x73\x75\x65\x61\x61\x61\x61\x61\x61\x61"))
(CASE_S(QType::CAA, "0 issue \"aaaaaaa.aaa\"", "\x00\x05\x69\x73\x73\x75\x65\x61\x61\x61\x61\x61\x61\x61\x2e\x61\x61\x61"))
+ (CASE_S(QType::RESINFO, "\"qnamemin exterr=15-17\"", "\x15qnamemin exterr=15-17"))
(CASE_S(QType::DLV, "20642 8 2 04443abe7e94c3985196beae5d548c727b044dda5151e60d7cd76a9fd931d00e", "\x50\xa2\x08\x02\x04\x44\x3a\xbe\x7e\x94\xc3\x98\x51\x96\xbe\xae\x5d\x54\x8c\x72\x7b\x04\x4d\xda\x51\x51\xe6\x0d\x7c\xd7\x6a\x9f\xd9\x31\xd0\x0e"))
(CASE_S((QType::typeenum)65226,"\\# 3 414243","\x41\x42\x43"))