Parcourir la source

[1571] added special case for DS lookup: it should always be considered in-zone.
now the test passed.

JINMEI Tatuya il y a 13 ans
Parent
commit
6570e46bd4
1 fichiers modifiés avec 4 ajouts et 1 suppressions
  1. 4 1
      src/lib/datasrc/memory_datasrc.cc

+ 4 - 1
src/lib/datasrc/memory_datasrc.cc

@@ -557,7 +557,10 @@ struct InMemoryZoneFinder::InMemoryZoneFinderImpl {
 
         // If the node callback is enabled, this may be a zone cut.  If it
         // has a NS RR, we should return a delegation, but not in the apex.
-        if (node->getFlag(DomainNode::FLAG_CALLBACK) && node != origin_data_) {
+        // There is one exception: the case for DS query, which should always
+        // be considered in-zone lookup.
+        if (node->getFlag(DomainNode::FLAG_CALLBACK) && node != origin_data_ &&
+            type != RRType::DS()) {
             found = node->getData()->find(RRType::NS());
             if (found != node->getData()->end()) {
                 LOG_DEBUG(logger, DBG_TRACE_DATA,