|
@@ -100,14 +100,16 @@ public:
|
|
|
///
|
|
|
/// \param server The \c AuthSrv object on which the command is executed.
|
|
|
/// \param args Command specific argument.
|
|
|
- /// \return command result data in JSON format.
|
|
|
- virtual ConstElementPtr exec(AuthSrv& server, isc::data::ConstElementPtr args) = 0;
|
|
|
+ /// \return command result using createAnswer().
|
|
|
+ virtual ConstElementPtr exec(AuthSrv& server,
|
|
|
+ isc::data::ConstElementPtr args) = 0;
|
|
|
};
|
|
|
|
|
|
// Handle the "shutdown" command.
|
|
|
class ShutdownCommand : public AuthCommand {
|
|
|
public:
|
|
|
- virtual ConstElementPtr exec(AuthSrv& server, isc::data::ConstElementPtr args) {
|
|
|
+ virtual ConstElementPtr exec(AuthSrv& server,
|
|
|
+ isc::data::ConstElementPtr args) {
|
|
|
// Is the pid argument provided?
|
|
|
if (args && args->contains("pid")) {
|
|
|
// If it is, we check it is the same as our PID
|
|
@@ -135,7 +137,8 @@ public:
|
|
|
// Handle the "getstats" command. The argument is a list.
|
|
|
class GetStatsCommand : public AuthCommand {
|
|
|
public:
|
|
|
- virtual ConstElementPtr exec(AuthSrv& server, isc::data::ConstElementPtr) {
|
|
|
+ virtual ConstElementPtr exec(AuthSrv& server,
|
|
|
+ isc::data::ConstElementPtr) {
|
|
|
LOG_DEBUG(auth_logger, DBG_AUTH_OPS, AUTH_RECEIVED_GETSTATS);
|
|
|
return (createAnswer(0, server.getStatistics()));
|
|
|
}
|
|
@@ -143,7 +146,8 @@ public:
|
|
|
|
|
|
class StartDDNSForwarderCommand : public AuthCommand {
|
|
|
public:
|
|
|
- virtual ConstElementPtr exec(AuthSrv& server, isc::data::ConstElementPtr) {
|
|
|
+ virtual ConstElementPtr exec(AuthSrv& server,
|
|
|
+ isc::data::ConstElementPtr) {
|
|
|
server.createDDNSForwarder();
|
|
|
return (createAnswer());
|
|
|
}
|
|
@@ -151,7 +155,8 @@ public:
|
|
|
|
|
|
class StopDDNSForwarderCommand : public AuthCommand {
|
|
|
public:
|
|
|
- virtual ConstElementPtr exec(AuthSrv& server, isc::data::ConstElementPtr) {
|
|
|
+ virtual ConstElementPtr exec(AuthSrv& server,
|
|
|
+ isc::data::ConstElementPtr) {
|
|
|
server.destroyDDNSForwarder();
|
|
|
return (createAnswer());
|
|
|
}
|
|
@@ -160,7 +165,8 @@ public:
|
|
|
// Handle the "loadzone" command.
|
|
|
class LoadZoneCommand : public AuthCommand {
|
|
|
public:
|
|
|
- virtual ConstElementPtr exec(AuthSrv& server, isc::data::ConstElementPtr args) {
|
|
|
+ virtual ConstElementPtr exec(AuthSrv& server,
|
|
|
+ isc::data::ConstElementPtr args) {
|
|
|
if (args == NULL) {
|
|
|
isc_throw(AuthCommandError, "Null argument");
|
|
|
}
|
|
@@ -240,17 +246,13 @@ ConstElementPtr
|
|
|
execAuthServerCommand(AuthSrv& server, const string& command_id,
|
|
|
ConstElementPtr args)
|
|
|
{
|
|
|
- ConstElementPtr value;
|
|
|
-
|
|
|
LOG_DEBUG(auth_logger, DBG_AUTH_OPS, AUTH_RECEIVED_COMMAND).arg(command_id);
|
|
|
try {
|
|
|
- value = scoped_ptr<AuthCommand>(createAuthCommand(command_id))->exec(server,
|
|
|
- args);
|
|
|
+ return (scoped_ptr<AuthCommand>(
|
|
|
+ createAuthCommand(command_id))->exec(server, args));
|
|
|
} catch (const isc::Exception& ex) {
|
|
|
LOG_ERROR(auth_logger, AUTH_COMMAND_FAILED).arg(command_id)
|
|
|
.arg(ex.what());
|
|
|
return (createAnswer(1, ex.what()));
|
|
|
}
|
|
|
-
|
|
|
- return (value);
|
|
|
}
|