]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[5213] Handling of parameterless commands improved
authorTomek Mrugalski <tomasz@isc.org>
Fri, 14 Apr 2017 12:57:16 +0000 (14:57 +0200)
committerTomek Mrugalski <tomasz@isc.org>
Fri, 14 Apr 2017 12:57:16 +0000 (14:57 +0200)
src/bin/dhcp4/ctrl_dhcp4_srv.cc
src/bin/dhcp6/ctrl_dhcp6_srv.cc

index bcef1d4ecc7c646c2871514bb76de2575d73d473..87ac7800f1ee05565dfd7a655323fecbc8663190 100644 (file)
@@ -438,15 +438,17 @@ ControlledDhcpv4Srv::commandLeasesReclaimHandler(const string&,
 ConstElementPtr
 ControlledDhcpv4Srv::processCommand(const string& command,
                                     ConstElementPtr args) {
+    string txt = args? args->str() : "(none)";
+
     LOG_DEBUG(dhcp4_logger, DBG_DHCP4_COMMAND, DHCP4_COMMAND_RECEIVED)
-              .arg(command).arg(args->str());
+              .arg(command).arg(txt);
 
     ControlledDhcpv4Srv* srv = ControlledDhcpv4Srv::getInstance();
 
     if (!srv) {
         ConstElementPtr no_srv = isc::config::createAnswer(1,
           "Server object not initialized, so can't process command '" +
-          command + "', arguments: '" + args->str() + "'.");
+          command + "', arguments: '" + txt + "'.");
         return (no_srv);
     }
 
@@ -488,7 +490,7 @@ ControlledDhcpv4Srv::processCommand(const string& command,
     } catch (const Exception& ex) {
         return (isc::config::createAnswer(1, "Error while processing command '"
                                           + command + "':" + ex.what() +
-                                          ", params: '" + args->str() + "'"));
+                                          ", params: '" + txt + "'"));
     }
 }
 
index 2596bfab1553465e9de60bfacd5c2183e3dff05f..e04acd942f0410df03c931b4f8ddba48309d4272 100644 (file)
@@ -441,15 +441,17 @@ ControlledDhcpv6Srv::commandLeasesReclaimHandler(const string&,
 isc::data::ConstElementPtr
 ControlledDhcpv6Srv::processCommand(const std::string& command,
                                     isc::data::ConstElementPtr args) {
+    string txt = args? args->str() : "(none)";
+
     LOG_DEBUG(dhcp6_logger, DBG_DHCP6_COMMAND, DHCP6_COMMAND_RECEIVED)
-              .arg(command).arg(args->str());
+              .arg(command).arg(txt);
 
     ControlledDhcpv6Srv* srv = ControlledDhcpv6Srv::getInstance();
 
     if (!srv) {
         ConstElementPtr no_srv = isc::config::createAnswer(1,
           "Server object not initialized, can't process command '" +
-          command + "'.");
+          command + "', arguments: '" + txt + "'.");
         return (no_srv);
     }
 
@@ -630,18 +632,18 @@ ControlledDhcpv6Srv::processConfig(isc::data::ConstElementPtr config) {
 
 isc::data::ConstElementPtr
 ControlledDhcpv6Srv::checkConfig(isc::data::ConstElementPtr config) {
+
     LOG_DEBUG(dhcp6_logger, DBG_DHCP6_COMMAND, DHCP6_CONFIG_RECEIVED)
         .arg(config->str());
+
     ControlledDhcpv6Srv* srv = ControlledDhcpv6Srv::getInstance();
+
     if (!srv) {
         ConstElementPtr no_srv = isc::config::createAnswer(1,
             "Server object not initialized, can't process config.");
         return (no_srv);
     }
+
     return (configureDhcp6Server(*srv, config, true));
 }