diff --git a/src/server/WebBackend.cpp b/src/server/WebBackend.cpp index e66954a..d6ba84c 100644 --- a/src/server/WebBackend.cpp +++ b/src/server/WebBackend.cpp @@ -1130,6 +1130,12 @@ RestOutputStruct::ExitCode WebSocket::EvaluateSysadmFirewallRequest(const QJsonV oports << QString::number(all[i].Port)+"/"+all[i].Type; } out->insert("openports", QJsonArray::fromStringList(oports)); + + }else if(action=="status"){ + ok = true; + out->insert("is_running", FMGR.IsRunning() ? "true" : "false" ); + out->insert("is_enabled", FMGR.IsEnabled() ? "true" : "false" ); + } diff --git a/src/server/library/sysadm-firewall.cpp b/src/server/library/sysadm-firewall.cpp index c972ff9..5751d9e 100644 --- a/src/server/library/sysadm-firewall.cpp +++ b/src/server/library/sysadm-firewall.cpp @@ -147,6 +147,11 @@ bool Firewall::IsRunning() return General::sysctlAsInt("net.inet.ip.fw.enable") == 1; } +bool Firewall::IsEnabled(){ + ServiceManager serviceManager; + return serviceManager.isEnabled( serviceManager.GetService("ipfw") ); +} + void Firewall::Start() { ServiceManager serviceManager; diff --git a/src/server/library/sysadm-firewall.h b/src/server/library/sysadm-firewall.h index 1d1b608..65a5d23 100644 --- a/src/server/library/sysadm-firewall.h +++ b/src/server/library/sysadm-firewall.h @@ -96,6 +96,7 @@ public: * @return true if the firewall is running, false if not */ bool IsRunning(); + bool IsEnabled(); /** * @brief Starts the firewall */