[svn] commit: r223 - in /branches/f2f200910/src: bin/parkinglot/main.cc lib/dns/rrset.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Fri Oct 30 04:11:45 UTC 2009


Author: each
Date: Fri Oct 30 04:11:45 2009
New Revision: 223

Log:
add SOA record to authority section on NXDOMAIN
(checkpoint. this actually doesn't work yet, it seems
the SOA::copy() routine is failing somehow...)

Modified:
    branches/f2f200910/src/bin/parkinglot/main.cc
    branches/f2f200910/src/lib/dns/rrset.cc

Modified: branches/f2f200910/src/bin/parkinglot/main.cc
==============================================================================
--- branches/f2f200910/src/bin/parkinglot/main.cc (original)
+++ branches/f2f200910/src/bin/parkinglot/main.cc Fri Oct 30 04:11:45 2009
@@ -50,7 +50,7 @@
     zones.serve("flame.org");
 }
 
-Rdata::RdataPtr ns1, ns2, ns3, a, aaaa;
+Rdata::RdataPtr ns1, ns2, ns3, a, aaaa, soa;
 
 static void
 init_server() {
@@ -59,6 +59,8 @@
     ns3 = Rdata::RdataPtr(new NS("ns3.parking.com"));
     a = Rdata::RdataPtr(new A("127.0.0.1"));
     aaaa = Rdata::RdataPtr(new AAAA("::1"));
+    soa == Rdata::RdataPtr(new SOA("parking.com", "noc.parking.com",
+                                   1, 1800, 900, 604800, TTL(86400)));
 }
 
 static int
@@ -115,12 +117,17 @@
             msg.addRR(SECTION_ANSWER, RR(authors_name, RRClass::CH,
                                          RRType::TXT, TTL(0),
                                          TXT("JINMEI Tatuya")));
+            msg.addRR(SECTION_ANSWER, RR(authors_name, RRClass::CH,
+                                         RRType::TXT, TTL(0),
+                                         TXT("Evan Hunt")));
             // add others name here!!
 
             msg.addRR(SECTION_AUTHORITY, RR(authors_name, RRClass::CH,
                                             RRType::NS, TTL(0),
                                             NS("authors.bind")));
-        } if (zones.contains(name)) {
+        }
+
+        if (zones.contains(name)) {
             msg.setRcode(Message::RCODE_NOERROR);
             RRset* nsset = new RRset(query->getName(), RRClass::IN,
                                      RRType::NS, TTL(3600));
@@ -131,21 +138,23 @@
 
             if (query->getType() == RRType::NS)
                 msg.addRRset(SECTION_ANSWER, RRsetPtr(nsset));
-            else
+            else if (query->getType() == RRType::A) {
                 msg.addRRset(SECTION_AUTHORITY, RRsetPtr(nsset));
-
-            if (query->getType() == RRType::A) {
                 RR arr(query->getName(), RRClass::IN, RRType::A, TTL(3600), a);
 
                 msg.addRR(SECTION_ANSWER, arr);
             } else if (query->getType() == RRType::AAAA) {
+                msg.addRRset(SECTION_AUTHORITY, RRsetPtr(nsset));
                 RR aaaarr(query->getName(), RRClass::IN, RRType::AAAA,
                           TTL(3600), aaaa);
                 msg.addRR(SECTION_ANSWER, aaaarr);
+            } else {
+                RR soarr(query->getName(), RRClass::IN, RRType::SOA,
+                         TTL(3600), soa);
+                msg.addRR(SECTION_AUTHORITY, soarr);
             }
         } else {
             msg.setRcode(Message::RCODE_NXDOMAIN);
-            // should add SOA to the authority section, but not implemented.
         }
 
         msg.toWire();

Modified: branches/f2f200910/src/lib/dns/rrset.cc
==============================================================================
--- branches/f2f200910/src/lib/dns/rrset.cc (original)
+++ branches/f2f200910/src/lib/dns/rrset.cc Fri Oct 30 04:11:45 2009
@@ -180,7 +180,7 @@
     text_rdata_factory_repository.insert(pair<RRClassTypePair, TextRdataFactory>
                              (RRClassTypePair(RRClass::IN, RRType::AAAA),
                               createDataFromText<isc::dns::Rdata::IN::AAAA>));
-    //XXX: NS/TXT/SOA?MX belongs to the 'generic' class.  should revisit it.
+    //XXX: NS/TXT/SOA/MX belongs to the 'generic' class.  should revisit it.
     text_rdata_factory_repository.insert(pair<RRClassTypePair, TextRdataFactory>
                              (RRClassTypePair(RRClass::IN, RRType::NS),
                               createDataFromText<isc::dns::Rdata::Generic::NS>));




More information about the bind10-changes mailing list