Browse Source

[2390] Use createNameFromLexer()

Also fix tests to use absolute names.
Mukund Sivaraman 12 years ago
parent
commit
f18d297fd5

+ 6 - 4
src/lib/dns/rdata/generic/mx_15.cc

@@ -26,6 +26,8 @@
 #include <dns/rdata.h>
 #include <dns/rdata.h>
 #include <dns/rdataclass.h>
 #include <dns/rdataclass.h>
 
 
+#include <dns/rdata/generic/detail/lexer_util.h>
+
 using namespace std;
 using namespace std;
 using boost::lexical_cast;
 using boost::lexical_cast;
 using namespace isc::util;
 using namespace isc::util;
@@ -57,17 +59,17 @@ MX::MX(const std::string& mx_str) :
     mxname_ = Name(mxname);
     mxname_ = Name(mxname);
 }
 }
 
 
-MX::MX(MasterLexer& lexer, const Name*, MasterLoader::Options,
-       MasterLoaderCallbacks&) :
+MX::MX(MasterLexer& lexer, const Name* origin,
+       MasterLoader::Options, MasterLoaderCallbacks&) :
     preference_(0), mxname_(".")
     preference_(0), mxname_(".")
 {
 {
     uint32_t num = lexer.getNextToken(MasterToken::NUMBER).getNumber();
     uint32_t num = lexer.getNextToken(MasterToken::NUMBER).getNumber();
     if (num > 65535) {
     if (num > 65535) {
         isc_throw(InvalidRdataText, "Invalid MX preference");
         isc_throw(InvalidRdataText, "Invalid MX preference");
     }
     }
-
     preference_ = static_cast<uint16_t>(num);
     preference_ = static_cast<uint16_t>(num);
-    mxname_ = Name(lexer.getNextToken(MasterToken::QSTRING).getString());
+
+    mxname_ = createNameFromLexer(lexer, origin);
 }
 }
 
 
 MX::MX(uint16_t preference, const Name& mxname) :
 MX::MX(uint16_t preference, const Name& mxname) :

+ 5 - 3
src/lib/dns/rdata/generic/ns_2.cc

@@ -22,6 +22,8 @@
 #include <dns/rdata.h>
 #include <dns/rdata.h>
 #include <dns/rdataclass.h>
 #include <dns/rdataclass.h>
 
 
+#include <dns/rdata/generic/detail/lexer_util.h>
+
 using namespace std;
 using namespace std;
 using namespace isc::util;
 using namespace isc::util;
 
 
@@ -39,9 +41,9 @@ NS::NS(InputBuffer& buffer, size_t) :
     // check consistency.
     // check consistency.
 }
 }
 
 
-NS::NS(MasterLexer& lexer, const Name*, MasterLoader::Options,
-       MasterLoaderCallbacks&) :
-    nsname_(lexer.getNextToken(MasterToken::QSTRING).getString())
+NS::NS(MasterLexer& lexer, const Name* origin,
+       MasterLoader::Options, MasterLoaderCallbacks&) :
+    nsname_(createNameFromLexer(lexer, origin))
 {}
 {}
 
 
 NS::NS(const NS& other) :
 NS::NS(const NS& other) :

+ 3 - 3
src/lib/dns/rdata/generic/ptr_12.cc

@@ -39,9 +39,9 @@ PTR::PTR(InputBuffer& buffer, size_t) :
     // check consistency.
     // check consistency.
 }
 }
 
 
-PTR::PTR(MasterLexer& lexer, const Name*, MasterLoader::Options,
-         MasterLoaderCallbacks&) :
-    ptr_name_(lexer.getNextToken(MasterToken::QSTRING).getString())
+PTR::PTR(MasterLexer& lexer, const Name* origin,
+         MasterLoader::Options, MasterLoaderCallbacks&) :
+    ptr_name_(createNameFromLexer(lexer, origin))
 {}
 {}
 
 
 PTR::PTR(const PTR& source) :
 PTR::PTR(const PTR& source) :

+ 3 - 3
src/lib/dns/tests/rdata_mx_unittest.cc

@@ -65,15 +65,15 @@ TEST_F(Rdata_MX_Test, createFromWire) {
 TEST_F(Rdata_MX_Test, createFromLexer) {
 TEST_F(Rdata_MX_Test, createFromLexer) {
     EXPECT_EQ(0, rdata_mx.compare(
     EXPECT_EQ(0, rdata_mx.compare(
         *test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
         *test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
-                                     "10 mx.example.com")));
+                                     "10 mx.example.com.")));
 
 
     // Exceptions cause NULL to be returned.
     // Exceptions cause NULL to be returned.
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
-                                             "10 mx. example.com"));
+                                             "10 mx. example.com."));
 
 
     // 65536 is larger than maximum possible preference
     // 65536 is larger than maximum possible preference
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
-                                             "65536 mx.example.com"));
+                                             "65536 mx.example.com."));
 }
 }
 
 
 TEST_F(Rdata_MX_Test, toWireRenderer) {
 TEST_F(Rdata_MX_Test, toWireRenderer) {

+ 1 - 1
src/lib/dns/tests/rdata_ns_unittest.cc

@@ -89,7 +89,7 @@ TEST_F(Rdata_NS_Test, createFromWire) {
 TEST_F(Rdata_NS_Test, createFromLexer) {
 TEST_F(Rdata_NS_Test, createFromLexer) {
     EXPECT_EQ(0, rdata_ns.compare(
     EXPECT_EQ(0, rdata_ns.compare(
         *test::createRdataUsingLexer(RRType::NS(), RRClass::IN(),
         *test::createRdataUsingLexer(RRType::NS(), RRClass::IN(),
-                                     "ns.example.com")));
+                                     "ns.example.com.")));
 
 
     // Exceptions cause NULL to be returned.
     // Exceptions cause NULL to be returned.
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::NS(), RRClass::IN(),
     EXPECT_FALSE(test::createRdataUsingLexer(RRType::NS(), RRClass::IN(),

+ 1 - 1
src/lib/dns/tests/rdata_ptr_unittest.cc

@@ -93,7 +93,7 @@ TEST_F(Rdata_PTR_Test, createFromWire) {
 TEST_F(Rdata_PTR_Test, createFromLexer) {
 TEST_F(Rdata_PTR_Test, createFromLexer) {
     EXPECT_EQ(0, rdata_ptr.compare(
     EXPECT_EQ(0, rdata_ptr.compare(
         *test::createRdataUsingLexer(RRType::PTR(), RRClass::IN(),
         *test::createRdataUsingLexer(RRType::PTR(), RRClass::IN(),
-                                     "ns.example.com")));
+                                     "ns.example.com.")));
 }
 }
 
 
 TEST_F(Rdata_PTR_Test, toWireBuffer) {
 TEST_F(Rdata_PTR_Test, toWireBuffer) {