BIND 10 master, updated. d22e90b5ef94880183cd652e112399b3efb9bd67 [master] Merge branch 'trac1571'
BIND 10 source code commits
bind10-changes at lists.isc.org
Wed Jan 25 23:02:15 UTC 2012
The branch, master has been updated
via d22e90b5ef94880183cd652e112399b3efb9bd67 (commit)
via c6c8a84bbbd9faf4275e4889f2035d4a2861ddc7 (commit)
via 6570e46bd47c20b2e0749518602b1051852773a7 (commit)
via e3a6fbfd30d271144679cb6114434e62b736c501 (commit)
from d66a6761de5dfc6adea4247044bfde7d8db0ecb3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d22e90b5ef94880183cd652e112399b3efb9bd67
Merge: d66a676 c6c8a84
Author: JINMEI Tatuya <jinmei at isc.org>
Date: Wed Jan 25 14:54:35 2012 -0800
[master] Merge branch 'trac1571'
-----------------------------------------------------------------------
Summary of changes:
src/lib/datasrc/memory_datasrc.cc | 5 +++-
src/lib/datasrc/tests/memory_datasrc_unittest.cc | 23 ++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/memory_datasrc.cc b/src/lib/datasrc/memory_datasrc.cc
index b019ba3..7e7c41a 100644
--- a/src/lib/datasrc/memory_datasrc.cc
+++ b/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,
diff --git a/src/lib/datasrc/tests/memory_datasrc_unittest.cc b/src/lib/datasrc/tests/memory_datasrc_unittest.cc
index 8a5a8db..2fdc452 100644
--- a/src/lib/datasrc/tests/memory_datasrc_unittest.cc
+++ b/src/lib/datasrc/tests/memory_datasrc_unittest.cc
@@ -291,6 +291,8 @@ public:
{"example.org. 300 IN DNAME example.com.", &rr_dname_apex_},
{"child.example.org. 300 IN NS ns.child.example.org.",
&rr_child_ns_},
+ {"child.example.org. 300 IN DS 12345 5 1 DEADBEEF",
+ &rr_child_ds_},
{"ns.child.example.org. 300 IN A 192.0.2.153",
&rr_child_glue_},
{"grand.child.example.org. 300 IN NS ns.grand.child.example.org.",
@@ -353,6 +355,7 @@ public:
RRsetPtr rr_dname_ns_; // for mixed DNAME + NS case
RRsetPtr rr_dname_apex_; // for mixed DNAME + NS case in the apex
RRsetPtr rr_child_ns_; // NS of a child domain (for delegation)
+ RRsetPtr rr_child_ds_; // DS of a child domain (for delegation, auth data)
RRsetPtr rr_child_glue_; // glue RR of the child domain
RRsetPtr rr_grandchild_ns_; // NS below a zone cut (unusual)
RRsetPtr rr_grandchild_glue_; // glue RR below a deeper zone cut
@@ -656,6 +659,26 @@ TEST_F(InMemoryZoneFinderTest, delegationNS) {
ZoneFinder::DELEGATION, true, rr_child_ns_);
}
+TEST_F(InMemoryZoneFinderTest, delegationWithDS) {
+ // Similar setup to the previous one, but with DS RR at the delegation
+ // point.
+ EXPECT_EQ(SUCCESS, zone_finder_.add(rr_ns_));
+ EXPECT_EQ(SUCCESS, zone_finder_.add(rr_child_ns_));
+ EXPECT_EQ(SUCCESS, zone_finder_.add(rr_child_ds_));
+
+ // Normal types of query should result in delegation, but DS query
+ // should be considered in-zone.
+ findTest(Name("child.example.org"), RRType::A(), ZoneFinder::DELEGATION,
+ true, rr_child_ns_);
+ findTest(Name("child.example.org"), RRType::DS(), ZoneFinder::SUCCESS,
+ true, rr_child_ds_);
+
+ // There's nothing special for DS query at the zone apex. It would
+ // normally result in NXRRSET.
+ findTest(Name("example.org"), RRType::DS(), ZoneFinder::NXRRSET,
+ true, ConstRRsetPtr());
+}
+
TEST_F(InMemoryZoneFinderTest, findAny) {
EXPECT_NO_THROW(EXPECT_EQ(SUCCESS, zone_finder_.add(rr_a_)));
EXPECT_NO_THROW(EXPECT_EQ(SUCCESS, zone_finder_.add(rr_ns_)));
More information about the bind10-changes
mailing list