mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-30 21:45:37 +00:00
[2428] Test and fix error handling in $INCLUDE
This commit is contained in:
@@ -81,9 +81,7 @@ public:
|
||||
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);
|
||||
@@ -116,7 +114,7 @@ public:
|
||||
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
|
||||
|
@@ -282,6 +282,10 @@ struct ErrorCase {
|
||||
// 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 }
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user