From: JINMEI Tatuya Date: Wed, 1 Feb 2012 04:09:56 +0000 (-0800) Subject: [1578] made sure RESULT_NSEC3_SIGNED is set for NSEC3-signed zone in wildcard X-Git-Tag: trac2351_base~268^2~4^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cb79b6fae1cd7c348eb2c2671f1a44e857e7a82d;p=thirdparty%2Fkea.git [1578] made sure RESULT_NSEC3_SIGNED is set for NSEC3-signed zone in wildcard case. --- diff --git a/src/lib/datasrc/memory_datasrc.cc b/src/lib/datasrc/memory_datasrc.cc index 5ed25126f1..a082b47ab9 100644 --- a/src/lib/datasrc/memory_datasrc.cc +++ b/src/lib/datasrc/memory_datasrc.cc @@ -635,7 +635,8 @@ struct InMemoryZoneFinder::InMemoryZoneFinderImpl { if (wild) { flags = flags | RESULT_WILDCARD; } - if ((code == NXRRSET || code == NXDOMAIN) && zone_data_->nsec3_data_) { + if ((code == NXRRSET || code == NXDOMAIN || wild) && + zone_data_->nsec3_data_) { flags = flags | RESULT_NSEC3_SIGNED; } return (FindResult(code, rrset, flags)); diff --git a/src/lib/datasrc/tests/memory_datasrc_unittest.cc b/src/lib/datasrc/tests/memory_datasrc_unittest.cc index ba9e9f1b9c..92602c7a38 100644 --- a/src/lib/datasrc/tests/memory_datasrc_unittest.cc +++ b/src/lib/datasrc/tests/memory_datasrc_unittest.cc @@ -956,7 +956,8 @@ InMemoryZoneFinderTest::wildcardTest( { SCOPED_TRACE("Search at created child"); findTest(Name("a.wild.example.org"), RRType::A(), ZoneFinder::SUCCESS, - false, rr_wild_, ZoneFinder::RESULT_WILDCARD, NULL, + false, rr_wild_, + ZoneFinder::RESULT_WILDCARD | expected_flags, NULL, ZoneFinder::FIND_DEFAULT, true); // Wildcard match, but no data findTest(Name("a.wild.example.org"), RRType::AAAA(), @@ -969,8 +970,8 @@ InMemoryZoneFinderTest::wildcardTest( SCOPED_TRACE("Matching CNAME"); findTest(Name("a.cnamewild.example.org"), RRType::A(), ZoneFinder::CNAME, false, rr_cnamewild_, - ZoneFinder::RESULT_WILDCARD, NULL, ZoneFinder::FIND_DEFAULT, - true); + ZoneFinder::RESULT_WILDCARD | expected_flags, NULL, + ZoneFinder::FIND_DEFAULT, true); } // Search another created name, this time little bit lower @@ -978,7 +979,7 @@ InMemoryZoneFinderTest::wildcardTest( SCOPED_TRACE("Search at created grand-child"); findTest(Name("a.b.wild.example.org"), RRType::A(), ZoneFinder::SUCCESS, false, rr_wild_, - ZoneFinder::RESULT_WILDCARD, NULL, + ZoneFinder::RESULT_WILDCARD | expected_flags, NULL, ZoneFinder::FIND_DEFAULT, true); } @@ -1189,7 +1190,8 @@ InMemoryZoneFinderTest::doCancelWildcardTest( SCOPED_TRACE(string("Node ") + *name); findTest(Name(*name), RRType::A(), ZoneFinder::SUCCESS, false, - rr_wild_, ZoneFinder::RESULT_WILDCARD, NULL, + rr_wild_, + ZoneFinder::RESULT_WILDCARD | expected_flags, NULL, ZoneFinder::FIND_DEFAULT, true); } }