[svn] commit: r560 - /branches/parkinglot/src/bin/parkinglot/data_source_plot.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Wed Jan 27 07:14:56 UTC 2010


Author: jinmei
Date: Wed Jan 27 07:14:56 2010
New Revision: 560

Log:
- some improvements on builtin (authors/version.bind) data:
  + let the daemon answer these queries without having configured data sources
  + add CH/NS RR
  + use 0 TTL (just to be compatible with prior versions of BIND)

Modified:
    branches/parkinglot/src/bin/parkinglot/data_source_plot.cc

Modified: branches/parkinglot/src/bin/parkinglot/data_source_plot.cc
==============================================================================
--- branches/parkinglot/src/bin/parkinglot/data_source_plot.cc (original)
+++ branches/parkinglot/src/bin/parkinglot/data_source_plot.cc Wed Jan 27 07:14:56 2010
@@ -14,6 +14,11 @@
 using namespace isc::dns;
 using namespace isc::dns::rdata;
 using namespace isc::data;
+
+namespace {
+const Name authors_name("authors.bind");
+const Name version_name("version.bind");
+}
 
 void
 DataSourceParkingLot::serve(std::string zone_name) {
@@ -62,6 +67,13 @@
 bool
 DataSourceParkingLot::hasZoneFor(const Name& name, Name &zone_name)
 {
+    if (name == authors_name) {
+        zone_name = authors_name;
+        return (true);
+    } else if (name == version_name) {
+        zone_name = version_name;
+        return (true);
+    }
     return zones.findClosest(name, zone_name);
 }
 
@@ -72,15 +84,12 @@
                                  const isc::dns::RRType& type) const
 {
     SearchResult result;
-    Name authors_name("authors.bind");
-    Name version_name("version.bind");
     
     if (clas == RRClass::CH()) {
         if (type == RRType::TXT()) {
             if (name == authors_name) {
                 RRsetPtr rrset = RRsetPtr(new RRset(authors_name, RRClass::CH(),
-                                                    RRType::TXT(),
-                                                    RRTTL(3600)));
+                                                    RRType::TXT(), RRTTL(0)));
                 rrset->addRdata(generic::TXT("Han Feng"));
                 rrset->addRdata(generic::TXT("Kazunori Fujiwara"));
                 rrset->addRdata(generic::TXT("Michael Graff"));
@@ -97,9 +106,19 @@
                 result.setStatus(SearchResult::success);
             } else if (name == version_name) {
                 RRsetPtr rrset = RRsetPtr(new RRset(version_name, RRClass::CH(),
-                                                    RRType::TXT(),
-                                                    RRTTL(3600)));
+                                                    RRType::TXT(), RRTTL(0)));
                 rrset->addRdata(generic::TXT("BIND10 0.0.1"));
+                result.addRRset(rrset);
+                result.setStatus(SearchResult::success);
+            } else {
+                result.setStatus(SearchResult::name_not_found);
+            }
+        } else if (type == RRType::NS()) {
+            if (name == authors_name || name == version_name) {
+                RRsetPtr rrset = RRsetPtr(new RRset(name, RRClass::CH(),
+                                                    RRType::NS(),
+                                                    RRTTL(0)));
+                rrset->addRdata(generic::NS(name));
                 result.addRRset(rrset);
                 result.setStatus(SearchResult::success);
             } else {




More information about the bind10-changes mailing list