}
else {
if (!entry->d_submitted) {
- pushAlmostExpiredTask(qname, qtype, entry->d_ttd);
+ if (qtype == QType::ADDR) {
+ pushAlmostExpiredTask(qname, QType::A, entry->d_ttd);
+ pushAlmostExpiredTask(qname, QType::AAAA, entry->d_ttd);
+ }
+ else {
+ pushAlmostExpiredTask(qname, qtype, entry->d_ttd);
+ }
entry->d_submitted = true;
}
}
void pushAlmostExpiredTask(const DNSName& qname, uint16_t qtype, time_t deadline)
{
+ switch (qtype) {
+ // Internal types
+ case QType::ENT:
+ case QType::ADDR:
+ case QType::ALIAS:
+ case QType::LUA:
+ return;
+ }
pdns::ResolveTask task{qname, qtype, deadline, true, resolve};
s_taskQueue.lock()->queue.push(std::move(task));
++s_almost_expired_tasks.pushed;