From: Michal 'vorner' Vaner Date: Mon, 3 Dec 2012 12:42:17 +0000 (+0100) Subject: [2377] Handle relative names X-Git-Tag: bind10-1.0.0-beta-release~24^2~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42b0cb7bc7423e9f78199ea2f60a449dd98a2843;p=thirdparty%2Fkea.git [2377] Handle relative names Tested at least on the domain names. There is no known Rdata type implementation handling relative names right now. --- diff --git a/src/lib/dns/master_loader.cc b/src/lib/dns/master_loader.cc index 6c837e8511..5a5aa13e2e 100644 --- a/src/lib/dns/master_loader.cc +++ b/src/lib/dns/master_loader.cc @@ -77,9 +77,11 @@ public: // Return the last token, as it was not empty lexer_.ungetToken(); - const string name_string(getString()); + const MasterToken::StringRegion + name_string(lexer_.getNextToken(MasterToken::QSTRING). + getStringRegion()); // TODO $ handling - const Name name(name_string); // TODO: Origin + const Name name(name_string.beg, name_string.len, &zone_origin_); // TODO: Some more flexibility. We don't allow omitting anything yet // The parameters @@ -87,9 +89,9 @@ public: const RRClass rrclass(getString()); const RRType rrtype(getString()); - // TODO: Origin handling const rdata::RdataPtr data(rdata::createRdata(rrtype, rrclass, - lexer_, NULL, + lexer_, + &zone_origin_, options_, callbacks_)); // In case we get NULL, it means there was error creating @@ -108,7 +110,7 @@ public: private: MasterLexer lexer_; - const Name& zone_origin_; + const Name zone_origin_; const RRClass zone_class_; MasterLoaderCallbacks callbacks_; AddRRCallback add_callback_; diff --git a/src/lib/dns/tests/testdata/example.org b/src/lib/dns/tests/testdata/example.org index 65a6d0e915..deef7d58f5 100644 --- a/src/lib/dns/tests/testdata/example.org +++ b/src/lib/dns/tests/testdata/example.org @@ -11,4 +11,4 @@ example.org. 3600 IN NS ns1.example.org. ; Some empty lines here. They are to make sure the loader can skip them. -www.example.org. 3600 IN A 192.0.2.1 +www 3600 IN A 192.0.2.1 ; Test a relative name as well.