From: Francis Dupont Date: Mon, 16 Jan 2017 13:01:28 +0000 (+0100) Subject: [master] Finished merge of trac5033 (migrate D2client) (tentative fixes) X-Git-Tag: trac5112_base~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=158b408bd2332e5bbca848a3aefb31ca7c32b173;p=thirdparty%2Fkea.git [master] Finished merge of trac5033 (migrate D2client) (tentative fixes) --- diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index 9d4ef42b25..f79c0e318f 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -207,15 +207,6 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} } } -\"udp\" { - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE: - return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("udp", driver.loc_); - } -} - \"interfaces\" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::INTERFACES_CONFIG: @@ -1026,8 +1017,10 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} (?i:\"UDP\") { /* dhcp-ddns value keywords are case insensitive */ - if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { - return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_); + if ((driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) || + ((driver.ctx_ == isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE) && + (yytext == "\"udp\"")) { + return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_); } std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 34f9e8b261..2393315c78 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -157,8 +157,7 @@ using namespace std; OVERRIDE_CLIENT_UPDATE "override-client-update" REPLACE_CLIENT_NAME "replace-client-name" GENERATED_PREFIX "generated-prefix" - UDP "UDP" - TCP "TCP" + TCP "tcp" JSON "JSON" WHEN_PRESENT "when-present" NEVER "never" diff --git a/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc b/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc index 4f5469948d..3b32b35566 100644 --- a/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc +++ b/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc @@ -380,14 +380,6 @@ public: hooks_libraries_parser_->loadLibraries(); continue; } - - // Remaining ones are old style parsers. Need go do - // the build/commit dance with them. - - // Create the parser based on element name. - ParserPtr parser(createConfigParser(config_pair.first)); - parser->build(config_pair.second); - parser->commit(); } int family = parser_context_->universe_ == Option::V4 @@ -437,36 +429,6 @@ public: return (answer); } - /// @brief Create an element parser based on the element name. - /// - /// Creates a parser for the appropriate element and stores a pointer to it - /// in the appropriate class variable. - /// - /// Note that the method currently it only supports option-defs, option-data - /// and hooks-libraries. - /// - /// @param config_id is the name of the configuration element. - /// - /// @return returns a shared pointer to DhcpConfigParser. - /// - /// @throw throws NotImplemented if element name isn't supported. - ParserPtr createConfigParser(const std::string& config_id) { - ParserPtr parser; - // option-data and option-def converted to SimpleParser, so they - // are no longer here. - if (config_id.compare("hooks-libraries") == 0) { - parser.reset(new HooksLibrariesParser(config_id)); - hooks_libraries_parser_ = - boost::dynamic_pointer_cast(parser); - } else { - isc_throw(NotImplemented, - "Parser error: configuration parameter not supported: " - << config_id); - } - - return (parser); - } - /// @brief DHCP-specific method that sets global, and option specific defaults /// /// This method sets the defaults in the global scope, in option definitions,