]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
QType ADDR is supposed to be used internally only. 12165/head
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Fri, 18 Feb 2022 15:24:11 +0000 (16:24 +0100)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Fri, 4 Nov 2022 08:49:15 +0000 (09:49 +0100)
Should fix #11337

(cherry picked from commit 7a278799ee23e582c3b722cea578699db1791bc2)

pdns/recursor_cache.cc
pdns/recursordist/rec-taskqueue.cc

index 598f2260154a9fe47a07dcff6490ebca7a26cab7..d881d20a00a8fd9888ae8ea1a779612967e8e621 100644 (file)
@@ -261,7 +261,13 @@ time_t MemRecursorCache::fakeTTD(MemRecursorCache::OrderedTagIterator_t& entry,
         return -1;
       } else {
         if (!entry->d_submitted) {
-          pushTask(qname, qtype, entry->d_ttd);
+          if (qtype == QType::ADDR) {
+            pushTask(qname, QType::A, entry->d_ttd);
+            pushTask(qname, QType::AAAA, entry->d_ttd);
+          }
+         else {
+            pushTask(qname, qtype, entry->d_ttd);
+          }
           entry->d_submitted = true;
         }
       }
index 6b33aba0c2624092a20a0ee9f18b2fc92f1548e8..1bbea4f96c926e86cc833d52a713e5e4a7e0ac52 100644 (file)
@@ -32,6 +32,14 @@ void runTaskOnce(bool logErrors)
 
 void pushTask(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;
+  }
   t_taskQueue.push({qname, qtype, deadline, true});
 }