From: Tomek Mrugalski Date: Thu, 12 Jan 2017 12:49:58 +0000 (+0100) Subject: [master] Merge branch 'trac5031' (hooks-libraries parser migrated) X-Git-Tag: fdppjson_base~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bbaf4cbcf6fda59bacdf526a6c762315fdd88a1;p=thirdparty%2Fkea.git [master] Merge branch 'trac5031' (hooks-libraries parser migrated) # Conflicts: # src/bin/dhcp4/json_config_parser.cc # src/bin/dhcp6/json_config_parser.cc --- 1bbaf4cbcf6fda59bacdf526a6c762315fdd88a1 diff --cc src/bin/dhcp4/json_config_parser.cc index c710f0b674,bd05611174..bd78f531f2 --- a/src/bin/dhcp4/json_config_parser.cc +++ b/src/bin/dhcp4/json_config_parser.cc @@@ -635,33 -595,12 +634,39 @@@ configureDhcp4Server(Dhcpv4Srv&, isc::d continue; } + if (config_pair.first == "control-socket") { + ControlSocketParser parser; + SrvConfigPtr srv_cfg = CfgMgr::instance().getStagingCfg(); + parser.parse(*srv_cfg, config_pair.second); + continue; + } + + if (config_pair.first == "host-reservation-identifiers") { + HostReservationIdsParser4 parser; + parser.parse(config_pair.second); + continue; + } + + if (config_pair.first == "interfaces-config") { + IfacesConfigParser parser(AF_INET); + CfgIfacePtr cfg_iface = CfgMgr::instance().getStagingCfg()->getCfgIface(); + parser.parse(cfg_iface, config_pair.second); + continue; + } + + if (config_pair.first == "expired-leases-processing") { + ExpirationConfigParser parser; + parser.parse(config_pair.second); + continue; + } + + if (config_pair.first == "hooks-libraries") { + hooks_parser.parse(config_pair.second); + hooks_parser.verifyLibraries(); + continue; + } - ++ + // Legacy DhcpConfigParser stuff below ParserPtr parser(createGlobalDhcp4ConfigParser(config_pair.first, config_pair.second)); LOG_DEBUG(dhcp4_logger, DBG_DHCP4_DETAIL, DHCP4_PARSER_CREATED) @@@ -670,12 -609,11 +675,6 @@@ subnet_parser = parser; } else if (config_pair.first == "lease-database") { leases_parser = parser; - } else if (config_pair.first == "hooks-libraries") { - // Executing commit will alter currently-loaded hooks - // libraries. Check if the supplied libraries are valid, - // but defer the commit until everything else has committed. - hooks_parser = parser; - } else if (config_pair.first == "interfaces-config") { - // The interface parser is independent from any other - // parser and can be run here before any other parsers. - iface_parser = parser; -- parser->build(config_pair.second); } else if (config_pair.first == "client-classes") { client_classes_parser = parser; } else { diff --cc src/bin/dhcp6/json_config_parser.cc index 68af31fd37,087c05acf3..a038682438 --- a/src/bin/dhcp6/json_config_parser.cc +++ b/src/bin/dhcp6/json_config_parser.cc @@@ -709,19 -714,24 +709,18 @@@ DhcpConfigParser* createGlobal6DhcpConf parser = new DbAccessParser(config_id, DbAccessParser::LEASE_DB); } else if (config_id.compare("hosts-database") == 0) { parser = new DbAccessParser(config_id, DbAccessParser::HOSTS_DB); - } else if (config_id.compare("hooks-libraries") == 0) { - parser = new HooksLibrariesParser(config_id); + // hooks-libraries is now converted to SimpleParser. } else if (config_id.compare("dhcp-ddns") == 0) { parser = new D2ClientConfigParser(config_id); - } else if (config_id.compare("mac-sources") == 0) { - parser = new MACSourcesListConfigParser(config_id, - globalContext()); + // mac-source has been converted to SimpleParser. } else if (config_id.compare("relay-supplied-options") == 0) { parser = new RSOOListConfigParser(config_id); - } else if (config_id.compare("control-socket") == 0) { - parser = new ControlSocketParser(config_id); - } else if (config_id.compare("expired-leases-processing") == 0) { - parser = new ExpirationConfigParser(); + // control-socket has been converted to SimpleParser. + // expired-leases-processing has been converted to SimpleParser. } else if (config_id.compare("client-classes") == 0) { parser = new ClientClassDefListParser(config_id, globalContext()); - } else if (config_id.compare("server-id") == 0) { - parser = new DUIDConfigParser(); - } else if (config_id.compare("host-reservation-identifiers") == 0) { - parser = new HostReservationIdsParser6(); + // host-reservation-identifiers have been converted to SimpleParser already. + // server-id has been migrated to SimpleParser } else { isc_throw(DhcpConfigError, "unsupported global configuration parameter: " @@@ -904,46 -869,12 +903,52 @@@ configureDhcp6Server(Dhcpv6Srv&, isc::d continue; } + if (config_pair.first == "mac-sources") { + MACSourcesListConfigParser parser; + CfgMACSource& mac_source = CfgMgr::instance().getStagingCfg()->getMACSources(); + parser.parse(mac_source, config_pair.second); + continue; + } + + if (config_pair.first == "control-socket") { + ControlSocketParser parser; + SrvConfigPtr srv_config = CfgMgr::instance().getStagingCfg(); + parser.parse(*srv_config, config_pair.second); + continue; + } + + if (config_pair.first == "host-reservation-identifiers") { + HostReservationIdsParser6 parser; + parser.parse(config_pair.second); + continue; + } + + if (config_pair.first == "server-id") { + DUIDConfigParser parser; + const CfgDUIDPtr& cfg = CfgMgr::instance().getStagingCfg()->getCfgDUID(); + parser.parse(cfg, config_pair.second); + continue; + } + + if (config_pair.first == "interfaces-config") { + IfacesConfigParser parser(AF_INET6); + CfgIfacePtr cfg_iface = CfgMgr::instance().getStagingCfg()->getCfgIface(); + parser.parse(cfg_iface, config_pair.second); + continue; + } + + if (config_pair.first == "expired-leases-processing") { + ExpirationConfigParser parser; + parser.parse(config_pair.second); + continue; + } + + if (config_pair.first == "hooks-libraries") { + hooks_parser.parse(config_pair.second); + hooks_parser.verifyLibraries(); + continue; + } + ParserPtr parser(createGlobal6DhcpConfigParser(config_pair.first, config_pair.second)); LOG_DEBUG(dhcp6_logger, DBG_DHCP6_DETAIL, DHCP6_PARSER_CREATED) @@@ -952,13 -883,11 +957,6 @@@ subnet_parser = parser; } else if (config_pair.first == "lease-database") { leases_parser = parser; - } else if (config_pair.first == "hooks-libraries") { - // Executing the commit will alter currently loaded hooks - // libraries. Check if the supplied libraries are valid, - // but defer the commit until after everything else has - // committed. - hooks_parser = parser; - hooks_parser->build(config_pair.second); - } else if (config_pair.first == "interfaces-config") { - // The interface parser is independent from any other parser and - // can be run here before other parsers. - parser->build(config_pair.second); - iface_parser = parser; } else if (config_pair.first == "client-classes") { client_classes_parser = parser; } else {