]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#627] The code should no longer throw when obsolete top level entries are present
authorTomek Mrugalski <tomasz@isc.org>
Thu, 23 May 2019 17:38:31 +0000 (19:38 +0200)
committerTomek Mrugalski <tomasz@isc.org>
Thu, 23 May 2019 17:38:31 +0000 (19:38 +0200)
src/lib/process/d_controller.cc

index b20ab3a2bf3ffa08d52f6dc50253d38d30a6d41f..362161cf5873532f5e5e15d0384b49bbb8e6c77c 100644 (file)
@@ -192,21 +192,21 @@ DControllerBase::checkConfigOnly() {
         }
 
         // Check obsolete or unknown (aka unsupported) objects.
-        std::list<std::string> unsupported;
         for (auto obj : whole_config->mapValue()) {
             const std::string& app_name = getAppName();
             const std::string& obj_name = obj.first;
-            if ((obj_name == app_name) || (obj_name == "Logging")) {
+            if (obj_name == app_name) {
                 continue;
             }
-            unsupported.push_back(obj_name);
-        }
-        if (unsupported.size() == 1) {
-            isc_throw(InvalidUsage, "Unsupported object '"
-                      << unsupported.front() << "' in config");
-        } else if (unsupported.size() > 1) {
-            isc_throw(InvalidUsage, "Unsupported objects '"
-                      << unsupported.front() << "', ... in config");
+            if (obj_name == "Logging") {
+                LOG_WARN(dctl_logger, DCTL_CONFIG_DEPRECATED)
+                    .arg("Logging defined in top level. This is deprecated."
+                         " Please define it in the '" + app_name + "' scope.");
+                continue;
+            }
+            LOG_WARN(dctl_logger, DCTL_CONFIG_DEPRECATED)
+                .arg("Defining anything in global level besides '" + app_name
+                     + "' is no longer supported.");
         }
 
         // Relocate Logging: if there is a global Logging object takes its