/** everything begins here - this is the entry point just after receiving a packet */
int SyncRes::beginResolve(const DNSName &qname, const QType &qtype, uint16_t qclass, vector<DNSRecord>&ret)
{
+ /* rfc6895 section 3.1 + RRSIG and NSEC3 */
+ static const std::set<uint16_t> metaTypes = { QType::AXFR, QType::IXFR, QType::RRSIG, QType::NSEC3, QType::OPT, QType::TSIG, QType::TKEY, QType::MAILA, QType::MAILB };
s_queries++;
d_wasVariable=false;
d_wasOutOfBand=false;
return 0;
}
+ if (metaTypes.count(qtype.getCode())) {
+ return -1;
+ }
+
if(qclass==QClass::ANY)
qclass=QClass::IN;
else if(qclass!=QClass::IN)