}
};
+class Pools4ListParser : public PoolsListParser {
+public:
+ Pools4ListParser(const std::string& dummy, PoolStoragePtr pools)
+ :PoolsListParser(dummy, pools) {
+ }
+
+protected:
+ virtual ParserPtr poolParserMaker(PoolStoragePtr storage) {
+ return (ParserPtr(new Pool4Parser("pool", storage)));
+ }
+};
+
/// @brief This class parses a single IPv4 subnet.
///
/// This is the IPv4 derivation of the SubnetConfigParser class and it parses
(config_id.compare("client-class") == 0) ||
(config_id.compare("next-server") == 0)) {
parser = new StringParser(config_id, string_values_);
- } else if (config_id.compare("pool") == 0) {
- parser = new Pool4Parser(config_id, pools_);
+ } else if (config_id.compare("pools") == 0) {
+ parser = new Pools4ListParser(config_id, pools_);
} else if (config_id.compare("relay") == 0) {
parser = new RelayInfoParser(config_id, relay_info_, Option::V4);
} else if (config_id.compare("option-data") == 0) {
ConstElementPtr text_pool = pool_structure->get("pool");
+ if (!text_pool) {
+ isc_throw(DhcpConfigError, "Mandatory 'pool' entry missing in "
+ "definition: (" << text_pool->getPosition() << ")");
+ }
+
// That should be a single pool representation. It should contain
// text is form prefix/len or first - last. Note that spaces
// are allowed