diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index 2b4f5f3..6e31017 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -405,6 +405,10 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmSystemMgmtRequest(const QJso ok = true; out->insert("externalmounts", sysadm::SysMgmt::externalDevicePaths()); } + if(act=="halt"){ + ok = true; + out->insert("halt", sysadm::SysMgmt::systemHalt()); + } if(act=="killproc"){ ok = true; out->insert("killproc", sysadm::SysMgmt::killProc(in_args.toObject())); @@ -417,6 +421,10 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmSystemMgmtRequest(const QJso ok = true; out->insert("procinfo", sysadm::SysMgmt::procInfo()); } + if(act=="reboot"){ + ok = true; + out->insert("reboot", sysadm::SysMgmt::systemReboot()); + } if(act=="setsysctl"){ ok = true; out->insert("setsysctl", sysadm::SysMgmt::setSysctl(in_args.toObject())); diff --git a/src/server/library/sysadm-systemmanager.cpp b/src/server/library/sysadm-systemmanager.cpp index 444e727..9e155e2 100644 --- a/src/server/library/sysadm-systemmanager.cpp +++ b/src/server/library/sysadm-systemmanager.cpp @@ -371,3 +371,23 @@ QJsonObject SysMgmt::systemInfo() { return retObject; } +// Halt the box +QJsonObject SysMgmt::systemHalt() { + QJsonObject retObject; + + QString output = General::RunCommand("shutdown -p now"); + retObject.insert("response", "true"); + + return retObject; +} + + +// Reboot the box +QJsonObject SysMgmt::systemReboot() { + QJsonObject retObject; + + QString output = General::RunCommand("shutdown -r now"); + retObject.insert("response", "true"); + + return retObject; +} diff --git a/src/server/library/sysadm-systemmanager.h b/src/server/library/sysadm-systemmanager.h index d73b845..04d611e 100644 --- a/src/server/library/sysadm-systemmanager.h +++ b/src/server/library/sysadm-systemmanager.h @@ -24,6 +24,8 @@ public: static QJsonObject setSysctl(QJsonObject); static QJsonObject sysctlList(); static QJsonObject systemInfo(); + static QJsonObject systemReboot(); + static QJsonObject systemHalt(); }; } //end of pcbsd namespace