Browse Source

[1578] set RESULT_WILDCARD for the wildcard + NXRRSET (but name exist) case

JINMEI Tatuya 13 years ago
parent
commit
8080602fae

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

@@ -822,7 +822,7 @@ struct InMemoryZoneFinder::InMemoryZoneFinderImpl {
         // No exact match or CNAME.  Return NXRRSET.
         LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_NXRRSET).arg(type).
             arg(name);
-        return (FindResult(NXRRSET, ConstRRsetPtr()));
+        return (createFindResult(NXRRSET, ConstRRsetPtr(), rename));
     }
 };
 

+ 4 - 0
src/lib/datasrc/tests/memory_datasrc_unittest.cc

@@ -922,6 +922,10 @@ TEST_F(InMemoryZoneFinderTest, wildcard) {
         findTest(Name("a.wild.example.org"), RRType::A(), ZoneFinder::SUCCESS,
                  false, rr_wild_, ZoneFinder::RESULT_WILDCARD, NULL,
                  ZoneFinder::FIND_DEFAULT, true);
+        // Wildcard match, but no data
+        findTest(Name("a.wild.example.org"), RRType::AAAA(),
+                 ZoneFinder::NXRRSET, true, ConstRRsetPtr(),
+                 ZoneFinder::RESULT_WILDCARD);
     }
 
     // Search another created name, this time little bit lower