std::string error;
if (!lexer_.pushSource(filename.c_str(), &error)) {
if (initialized_) {
- // $INCLUDE file
- reportError(lexer_.getSourceName(), lexer_.getSourceLine(),
- error);
+ isc_throw(InternalException, error.c_str());
} else {
// Top-level file
reportError("", 0, error);
void doInclude() {
// First, get the filename to include
const MasterToken::StringRegion
- filename(lexer_.getNextToken(MasterLexer::QSTRING).
+ filename(lexer_.getNextToken(MasterToken::QSTRING).
getStringRegion());
// TODO: Handle the case where there's Name after the
// Check the unknown directive. The rest looks like ordinary RR,
// so we see the $ is actually special.
{ "$UNKNOWN 3600 IN A 192.0.2.1", "Unknown $ directive" },
+ { "$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 and garbage at the end of line" },
{ NULL, NULL }
};