Browse Source

[3409] Pass whole context to the OptionDefListParser.

Marcin Siodelski 11 years ago
parent
commit
21eee97b58

+ 1 - 2
src/bin/dhcp4/config_parser.cc

@@ -413,8 +413,7 @@ DhcpConfigParser* createGlobalDhcp4ConfigParser(const std::string& config_id) {
                                           globalContext(),
                                           Dhcp4OptionDataParser::factory);
     } else if (config_id.compare("option-def") == 0) {
-        parser  = new OptionDefListParser(config_id,
-                                          globalContext()->option_defs_);
+        parser  = new OptionDefListParser(config_id, globalContext());
     } else if ((config_id.compare("version") == 0) ||
                (config_id.compare("next-server") == 0)) {
         parser  = new StringParser(config_id,

+ 1 - 2
src/bin/dhcp6/config_parser.cc

@@ -639,8 +639,7 @@ DhcpConfigParser* createGlobal6DhcpConfigParser(const std::string& config_id) {
                                           globalContext(),
                                           Dhcp6OptionDataParser::factory);
     } else if (config_id.compare("option-def") == 0) {
-        parser  = new OptionDefListParser(config_id,
-                                          globalContext()->option_defs_);
+        parser  = new OptionDefListParser(config_id, globalContext());
     } else if (config_id.compare("version") == 0) {
         parser  = new StringParser(config_id,
                                    globalContext()->string_values_);

+ 3 - 4
src/lib/dhcpsrv/dhcp_parsers.cc

@@ -817,10 +817,9 @@ OptionDefParser::createOptionDef(ConstElementPtr option_def_element) {
 }
 
 // ******************************** OptionDefListParser ************************
-OptionDefListParser::
-OptionDefListParser(const std::string&, OptionDefStoragePtr storage,
-                    ParserContextPtr global_context)
-    : storage_(storage),
+OptionDefListParser::OptionDefListParser(const std::string&,
+                                         ParserContextPtr global_context)
+    : storage_(global_context->option_defs_),
       global_context_(global_context) {
     if (!storage_) {
         isc_throw(isc::dhcp::DhcpConfigError, "parser logic error:"

+ 1 - 3
src/lib/dhcpsrv/dhcp_parsers.h

@@ -752,12 +752,10 @@ public:
     ///
     /// @param dummy first argument is ignored, all Parser constructors
     /// accept string as first argument.
-    /// @param storage is the definition storage in which to store the parsed
-    /// definitions in this list
     /// @param global_context is a pointer to the global context which
     /// stores global scope parameters, options, option defintions.
     /// @throw isc::dhcp::DhcpConfigError if storage is null.
-    OptionDefListParser(const std::string& dummy, OptionDefStoragePtr storage,
+    OptionDefListParser(const std::string& dummy,
                         ParserContextPtr global_context);
 
     /// @brief Parse configuration entries.

+ 0 - 1
src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc

@@ -384,7 +384,6 @@ public:
 
         } else if (config_id.compare("option-def") == 0) {
             parser.reset(new OptionDefListParser(config_id,
-                                                 parser_context_->option_defs_,
                                                  parser_context_));
 
         } else if (config_id.compare("hooks-libraries") == 0) {