From 28eab2e2ef1a0f1d41267ac67af4a435515b7816 Mon Sep 17 00:00:00 2001 From: Luke De Mouy Date: Mon, 18 Jan 2016 16:29:01 -0700 Subject: [PATCH] switch the Firewall class over to using the ServiceManager --- src/library/sysadm-firewall.cpp | 67 ++++++++++++--------------------- src/library/sysadm-firewall.h | 6 ++- 2 files changed, 29 insertions(+), 44 deletions(-) diff --git a/src/library/sysadm-firewall.cpp b/src/library/sysadm-firewall.cpp index 13317ae..837aa6a 100644 --- a/src/library/sysadm-firewall.cpp +++ b/src/library/sysadm-firewall.cpp @@ -10,6 +10,20 @@ #include using namespace sysadm; + +Firewall::Firewall() +{ + readServicesFile(); + LoadOpenPorts(); + + firewallService = serviceManager.GetService("ipfw"); +} + +Firewall::~Firewall() +{ + delete portStrings; +} + PortInfo Firewall::LookUpPort(int port, QString type) { //Make sure that the port is valid @@ -74,7 +88,7 @@ PortInfo Firewall::LookUpPort(int port, QString type) returnValue.Description = description; } } - + return returnValue; } @@ -122,52 +136,30 @@ bool Firewall::IsRunning() void Firewall::Start() { - Enable(); - - QStringList args; - args << "start"; - General::RunCommand("/etc/rc.d/ipfw",args); + serviceManager.Enable(firewallService); + serviceManager.Start(firewallService); } void Firewall::Stop() { - Enable(); - QStringList args; - args << "stop"; - General::RunCommand("/etc/rc.d/ipfw",args); + serviceManager.Enable(firewallService); + serviceManager.Stop(firewallService); } void Firewall::Restart() { - Enable(); - - QStringList args; - args << "restart"; - General::RunCommand("/etc/rc.d/ipfw",args); + serviceManager.Enable(firewallService); + serviceManager.Restart(firewallService); } void Firewall::Enable() { - //check if rc.conf has firewall_enable="YES" - QStringList rcConf = General::readTextFile("/etc/rc.conf"); - if (rcConf.filter("firewall_enabled=\"YES\"").size() == 0) - { - rcConf.removeAll("firewall_enable=\"NO\""); - rcConf.append("firewall_enabled=\"YES\""); - General::writeTextFile("/etc/rc.conf",rcConf); - } + serviceManager.Enable(firewallService); } void Firewall::Disable() { - //check if rc.conf has firewall_enable="NO" - QStringList rcConf = General::readTextFile("/etc/rc.conf"); - if (rcConf.filter("firewall_enabled=\"NO\"").size() == 0) - { - rcConf.removeAll("firewall_enable=\"YES\""); - rcConf.append("firewall_enabled=\"NO\""); - General::writeTextFile("/etc/rc.conf",rcConf); - } + serviceManager.Disable(firewallService); } void Firewall::RestoreDefaults() @@ -201,17 +193,6 @@ void Firewall::RestoreDefaults() LoadOpenPorts(); } -Firewall::Firewall() -{ - readServicesFile(); - LoadOpenPorts(); -} - -Firewall::~Firewall() -{ - delete portStrings; -} - void Firewall::readServicesFile() { portStrings = new QStringList(); @@ -280,4 +261,4 @@ void Firewall::SaveOpenPorts() General::RunCommand("sh",args); } } - + diff --git a/src/library/sysadm-firewall.h b/src/library/sysadm-firewall.h index beb48c0..7d9663c 100644 --- a/src/library/sysadm-firewall.h +++ b/src/library/sysadm-firewall.h @@ -8,6 +8,7 @@ #define PORTLOOKUP_H #include #include +#include "sysadm-servicemanager.h" namespace sysadm { struct PortInfo{ @@ -125,7 +126,10 @@ private: void LoadOpenPorts(); void SaveOpenPorts(); + + ServiceManager serviceManager; + Service firewallService; }; } #endif // PORTLOOKUP_H - +