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

BIND 10 source code commits bind10-changes at lists.isc.org
Wed Jan 27 00:38:25 UTC 2010


Author: jinmei
Date: Wed Jan 27 00:38:25 2010
New Revision: 546

Log:
use NS::getNSName() to retrieve NS name from an NS RDATA entry.
the use of dynamic_cast is intientional, assuming such specialization is rare.

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

Modified: branches/parkinglot/src/bin/parkinglot/parkinglot.cc
==============================================================================
--- branches/parkinglot/src/bin/parkinglot/parkinglot.cc (original)
+++ branches/parkinglot/src/bin/parkinglot/parkinglot.cc Wed Jan 27 00:38:25 2010
@@ -43,8 +43,9 @@
 using namespace std;
 
 using namespace isc::dns;
-using namespace isc::dns::rdata::in;
-using namespace isc::dns::rdata::generic;
+using namespace isc::dns::rdata;
+//using namespace isc::dns::rdata::in;
+//using namespace isc::dns::rdata::generic;
 using namespace isc::data;
 
 ParkingLot::ParkingLot(int port) {
@@ -145,15 +146,15 @@
                         for (rrsetit->first();
                              !rrsetit->isLast();
                              rrsetit->next()) {
-                            const rdata::Rdata& rdata = rrsetit->getCurrent();
-                            /* no direct way to get the Name from the rdata fields? */
-                            Name ns_name = Name(rdata.toText());
-                            data_source.addToMessage(msg, Section::ADDITIONAL(),
-                                                     zname, ns_name, qclass,
-                                                     RRType::A());
-                            data_source.addToMessage(msg, Section::ADDITIONAL(),
-                                                     zname, ns_name, qclass,
-                                                     RRType::AAAA());
+                            const generic::NS& nsrdata =
+                                dynamic_cast<const generic::NS&>(
+                                    rrsetit->getCurrent());
+                            data_source.addToMessage(msg, Section::ADDITIONAL(),
+                                                     zname, nsrdata.getNSName(),
+                                                     qclass, RRType::A());
+                            data_source.addToMessage(msg, Section::ADDITIONAL(),
+                                                     zname, nsrdata.getNSName(),
+                                                     qclass, RRType::AAAA());
                         }
                     }
                 }
@@ -166,15 +167,16 @@
                         for (rrsetit->first();
                              !rrsetit->isLast();
                              rrsetit->next()) {
-                            const rdata::Rdata& rdata = rrsetit->getCurrent();
-                            /* no direct way to get the Name from the rdata fields? */
-                            Name ns_name = Name(rdata.toText());
-                            data_source.addToMessage(msg, Section::ADDITIONAL(),
-                                                     zname, ns_name, qclass,
-                                                     RRType::A());
-                            data_source.addToMessage(msg, Section::ADDITIONAL(),
-                                                     zname, ns_name, qclass,
-                                                     RRType::AAAA());
+                            const generic::NS& nsrdata =
+                                dynamic_cast<const generic::NS&>(
+                                    rrsetit->getCurrent());
+                            data_source.addToMessage(msg, Section::ADDITIONAL(),
+                                                     zname, nsrdata.getNSName(),
+                                                     qclass, RRType::A());
+                            data_source.addToMessage(msg, Section::ADDITIONAL(),
+                                                     zname,
+                                                     nsrdata.getNSName(),
+                                                     qclass, RRType::AAAA());
                         }
                     }
                 }




More information about the bind10-changes mailing list