From c9f227eebc57e5f392c357b4c899dfc56bb3189c Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Tue, 13 Sep 2016 08:07:31 -0400 Subject: [PATCH] API CHANGE: last sysadm/firewall action Final action for the sysadm/firewall class: "action" = "reset-defaults" This will reset all the firewall settings back to defaults and restart the firewall. NOTE: This will only work on TrueOS - plain FreeBSD does not have any concept of default firewall settings and this API call will return an error in that case. REST Request (example): ------------------------------- PUT /sysadm/firewall { "action" : "reset-defaults" } WebSocket Request: ------------------------------- { "id" : "fooid", "args" : { "action" : "reset-defaults" }, "namespace" : "sysadm", "name" : "firewall" } Response: ------------------------------- { "args": { "result": "success" }, "id": "fooid", "name": "response", "namespace": "sysadm" } --- src/server/WebBackend.cpp | 3 +++ src/server/library/sysadm-firewall.cpp | 4 +++- src/server/library/sysadm-firewall.h | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index f30949c..3a8fa5f 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -1190,6 +1190,9 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmFirewallRequest(const QJsonV ok = true; FMGR.Disable(); + }else if(action=="reset-defaults"){ + ok = FMGR.RestoreDefaults(); + } diff --git a/src/server/library/sysadm-firewall.cpp b/src/server/library/sysadm-firewall.cpp index 5751d9e..f02c01c 100644 --- a/src/server/library/sysadm-firewall.cpp +++ b/src/server/library/sysadm-firewall.cpp @@ -182,14 +182,16 @@ void Firewall::Disable() serviceManager.Disable( serviceManager.GetService("ipfw") ); } -void Firewall::RestoreDefaults() +bool Firewall::RestoreDefaults() { if(QFile::exists("/usr/local/share/trueos/scripts/reset-firewall")){ //refresh/restart the rules files QStringList args; args << "/usr/local/share/trueos/scripts/reset-firewall"; General::RunCommand("sh",args); + return true; } + return false; } void Firewall::readServicesFile() diff --git a/src/server/library/sysadm-firewall.h b/src/server/library/sysadm-firewall.h index 65a5d23..b1ef91f 100644 --- a/src/server/library/sysadm-firewall.h +++ b/src/server/library/sysadm-firewall.h @@ -120,7 +120,7 @@ public: /** * @brief Restores the Default Configuration */ - void RestoreDefaults(); + bool RestoreDefaults(); ///#endsection private: