if (name_tok.getType() == MasterToken::QSTRING ||
name_tok.getType() == MasterToken::STRING) {
- // TODO: Handle the origin. Once we complete #2427.
+ // There's an optional name, meaning origin. Extract it
+ // and store.
+ const MasterToken::StringRegion&
+ name_string(name_tok.getStringRegion());
+ active_origin_ = Name(name_string.beg, name_string.len,
+ &active_origin_);
} else {
// We return the newline there. This is because after we pop
// the source, we want to call eatUntilEOL and this would
{ "$INCLUDES " TEST_DATA_SRCDIR "/example.org", "Include too long" },
{ "$INCLUDE", "Missing include path" },
{ "$INCLUDE /file/not/found", "Include file not found" },
- { "$INCLUDE /file/not/found and here goes bunch of garbage",
+ { "$INCLUDE /file/not/found example.org. and here goes bunch of garbage",
"Include file not found and garbage at the end of line" },
{ "$ORIGIN", "Missing origin name" },
{ "$ORIGIN invalid...name", "Invalid name for origin" },
// Include an origin (example.org) because we expect it to be handled
// soon and we don't want it to break here.
const string include_str("$INCLUDE " TEST_DATA_SRCDIR
- "/example.org example.org bunch of other stuff\n"
+ "/example.org example.org. bunch of other stuff\n"
"www 3600 IN AAAA 2001:db8::1\n");
stringstream zone_stream(include_str);
setLoader(zone_stream, Name("example.org."), RRClass::IN(),