From: Marcin Siodelski Date: Mon, 28 Apr 2014 15:11:40 +0000 (+0200) Subject: [3409] Append line number to error caused by undefined global parameter. X-Git-Tag: trac3434_base~43^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=dc69d9558539ff1764f658d1563e97dab09a7353;p=thirdparty%2Fkea.git [3409] Append line number to error caused by undefined global parameter. --- diff --git a/src/bin/dhcp4/config_parser.cc b/src/bin/dhcp4/config_parser.cc index 93b3e5dace..287cbb77c1 100644 --- a/src/bin/dhcp4/config_parser.cc +++ b/src/bin/dhcp4/config_parser.cc @@ -414,7 +414,8 @@ namespace dhcp { /// @return parser for specified global DHCPv4 parameter /// @throw NotImplemented if trying to create a parser for unknown /// config element -DhcpConfigParser* createGlobalDhcp4ConfigParser(const std::string& config_id) { + DhcpConfigParser* createGlobalDhcp4ConfigParser(const std::string& config_id, + ConstElementPtr element) { DhcpConfigParser* parser = NULL; if ((config_id.compare("valid-lifetime") == 0) || (config_id.compare("renew-timer") == 0) || @@ -445,9 +446,9 @@ DhcpConfigParser* createGlobalDhcp4ConfigParser(const std::string& config_id) { } else if (config_id.compare("dhcp-ddns") == 0) { parser = new D2ClientConfigParser(config_id); } else { - isc_throw(NotImplemented, - "Parser error: Global configuration parameter not supported: " - << config_id); + isc_throw(DhcpConfigError, + "unsupported global configuration parameter: " + << config_id << " (" << element->getPosition() << ")"); } return (parser); @@ -525,7 +526,8 @@ configureDhcp4Server(Dhcpv4Srv&, isc::data::ConstElementPtr config_set) { const std::map& values_map = config_set->mapValue(); BOOST_FOREACH(config_pair, values_map) { - ParserPtr parser(createGlobalDhcp4ConfigParser(config_pair.first)); + ParserPtr parser(createGlobalDhcp4ConfigParser(config_pair.first, + config_pair.second)); LOG_DEBUG(dhcp4_logger, DBG_DHCP4_DETAIL, DHCP4_PARSER_CREATED) .arg(config_pair.first); if (config_pair.first == "subnet4") { diff --git a/src/bin/dhcp6/config_parser.cc b/src/bin/dhcp6/config_parser.cc index 7213ef5c46..21527ba6d5 100644 --- a/src/bin/dhcp6/config_parser.cc +++ b/src/bin/dhcp6/config_parser.cc @@ -640,7 +640,8 @@ namespace dhcp { /// @return parser for specified global DHCPv6 parameter /// @throw NotImplemented if trying to create a parser for unknown config /// element -DhcpConfigParser* createGlobal6DhcpConfigParser(const std::string& config_id) { + DhcpConfigParser* createGlobal6DhcpConfigParser(const std::string& config_id, + ConstElementPtr element) { DhcpConfigParser* parser = NULL; if ((config_id.compare("preferred-lifetime") == 0) || (config_id.compare("valid-lifetime") == 0) || @@ -669,9 +670,9 @@ DhcpConfigParser* createGlobal6DhcpConfigParser(const std::string& config_id) { } else if (config_id.compare("dhcp-ddns") == 0) { parser = new D2ClientConfigParser(config_id); } else { - isc_throw(NotImplemented, - "Parser error: Global configuration parameter not supported: " - << config_id); + isc_throw(DhcpConfigError, + "unsupported global configuration parameter: " + << config_id << " (" << element->getPosition() << ")"); } return (parser); @@ -736,7 +737,8 @@ configureDhcp6Server(Dhcpv6Srv&, isc::data::ConstElementPtr config_set) { const std::map& values_map = config_set->mapValue(); BOOST_FOREACH(config_pair, values_map) { - ParserPtr parser(createGlobal6DhcpConfigParser(config_pair.first)); + ParserPtr parser(createGlobal6DhcpConfigParser(config_pair.first, + config_pair.second)); LOG_DEBUG(dhcp6_logger, DBG_DHCP6_DETAIL, DHCP6_PARSER_CREATED) .arg(config_pair.first); if (config_pair.first == "subnet6") {