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)
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 {
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: "
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)
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 {