diff options
-rw-r--r-- | iptables-controller.lua | 32 | ||||
-rw-r--r-- | iptables-model.lua | 38 |
2 files changed, 37 insertions, 33 deletions
diff --git a/iptables-controller.lua b/iptables-controller.lua index 95b2bd6..0ac2ba2 100644 --- a/iptables-controller.lua +++ b/iptables-controller.lua @@ -1,55 +1,57 @@ -module(..., package.seeall) +local mymodule = {} -default_action = "status" +mymodule.default_action = "status" -function status(self) +function mymodule.status(self) return self.model.getstatus() end -function details(self) +function mymodule.details(self) return self.model.getstatusdetails() end -function filterrules(self) +function mymodule.filterrules(self) return self.model.getrules("filter") end -function natrules(self) +function mymodule.natrules(self) return self.model.getrules("nat") end -function manglerules(self) +function mymodule.manglerules(self) return self.model.getrules("mangle") end -function editchain(self) +function mymodule.editchain(self) return self.handle_form(self, function() return self.model.read_chain(self.clientdata.table, self.clientdata.chain or "") end, self.model.update_chain, self.clientdata, "Save", "Edit Chain", "Chain saved") end -function createchain(self) +function mymodule.createchain(self) return self.handle_form(self, function() return self.model.read_chain(self.clientdata.table) end, self.model.create_chain, self.clientdata, "Create", "Create New Chain", "Chain created") end -function deletechain(self) +function mymodule.deletechain(self) return self.handle_form(self, self.model.get_delete_chain, self.model.delete_chain, self.clientdata, "Delete", "Delete Chain", "Chain deleted") end -function editrule(self) +function mymodule.editrule(self) return self.handle_form(self, function() return self.model.read_rule(self.clientdata.table, self.clientdata.chain or "", self.clientdata.position or "") end, self.model.update_rule, self.clientdata, "Save", "Edit Rule", "Rule saved") end -function createrule(self) +function mymodule.createrule(self) return self.handle_form(self, function() return self.model.read_rule(self.clientdata.table, self.clientdata.chain, self.clientdata.position) end, self.model.create_rule, self.clientdata, "Create", "Create New Rule", "Rule created") end -function deleterule(self) +function mymodule.deleterule(self) return self.handle_form(self, self.model.get_delete_rule, self.model.delete_rule, self.clientdata, "Delete", "Delete Rule", "Rule deleted") end -function expert(self) +function mymodule.expert(self) return self.handle_form(self, self.model.readrulesfile, self.model.updaterulesfile, self.clientdata, "Save", "Edit Rules File", "Rules File Saved") end -function startstop(self) +function mymodule.startstop(self) return self.handle_form(self, self.model.get_startstop, self.model.startstop_service, self.clientdata) end + +return mymodule diff --git a/iptables-model.lua b/iptables-model.lua index 464cbf3..4eff7ba 100644 --- a/iptables-model.lua +++ b/iptables-model.lua @@ -1,4 +1,4 @@ -module(..., package.seeall) +local mymodule = {} -- Load libraries modelfunctions = require("modelfunctions") @@ -194,11 +194,11 @@ end -- ################################################################################ -- PUBLIC FUNCTIONS -function getstatus() +function mymodule.getstatus() return modelfunctions.getstatus(servicename, packagename, "IPtables Status") end -function getstatusdetails() +function mymodule.getstatusdetails() getdetails() local retval = {} for i,tab in ipairs(tables) do @@ -214,14 +214,14 @@ function getstatusdetails() return cfe({ type="structure", value=retval, label="IPtables Status Details" }) end -function getrules(tab) +function mymodule.getrules(tab) getdetails() tab = tab or "filter" return cfe({ type="structure", value=details[tab] or {}, label=string.gsub(tab, "^.", string.upper).." Rules" }) end -function read_chain(tab, chain) +function mymodule.read_chain(tab, chain) local retval = {} retval.table = cfe({ type="select", value=tab or "filter", label="Table", option=tables, seq=1 }) retval.chain = cfe({ value=chain or "", label="Chain", seq=2 }) @@ -245,7 +245,7 @@ function read_chain(tab, chain) return cfe({ type="group", value=retval, label="Chain" }) end -function update_chain(self, chain) +function mymodule.update_chain(self, chain) local success = true getdetails() if not details[chain.value.table.value] then @@ -268,7 +268,7 @@ function update_chain(self, chain) return chain end -function create_chain(self, chain) +function mymodule.create_chain(self, chain) local success = true getdetails() if not details[chain.value.table.value] then @@ -293,14 +293,14 @@ function create_chain(self, chain) return chain end -function get_delete_chain(self, clientdata) +function mymodule.get_delete_chain(self, clientdata) local retval = {} retval.table = cfe({ type="select", value=clientdata.table or "filter", label="Table", option=tables }) retval.chain = cfe({ value=clientdata.chain or "", label="Chain" }) return cfe({ type="group", value=retval, label="Delete Chain" }) end -function delete_chain(self, chain) +function mymodule.delete_chain(self, chain) local chn = find_chain(chain.value.table.value, chain.value.chain.value) if not chn then chain.errtxt = "Could not find chain" @@ -316,7 +316,7 @@ function delete_chain(self, chain) return chain end -function read_rule(tab, chain, pos) +function mymodule.read_rule(tab, chain, pos) local retval = {} -- Identification retval.table = cfe({ type="select", value=tab or "filter", label="Table", option=tables }) @@ -470,7 +470,7 @@ function read_rule(tab, chain, pos) return cfe({ type="group", value=retval, label="Rule" }) end -function create_rule(self, rule) +function mymodule.create_rule(self, rule) local success, rule = validate_rule(rule) if success then @@ -494,7 +494,7 @@ function create_rule(self, rule) return rule end -function update_rule(self, rule) +function mymodule.update_rule(self, rule) local success, rule = validate_rule(rule) if not tonumber(rule.value.position.value) then rule.value.position.errtxt = "Must be a number" @@ -514,7 +514,7 @@ function update_rule(self, rule) return rule end -function get_delete_rule(self, clientdata) +function mymodule.get_delete_rule(self, clientdata) local retval = {} -- Identification retval.table = cfe({ type="select", value=clientdata.table or "filter", label="Table", option=tables }) @@ -523,7 +523,7 @@ function get_delete_rule(self, clientdata) return cfe({ type="group", value=retval, label="Delete Rule" }) end -function delete_rule(self, rule) +function mymodule.delete_rule(self, rule) if "" == rule.value.table.value or "" == rule.value.chain.value or "" == rule.value.position.value then rule.errtxt = "Incomplete specification - must define table, chain, and position" else @@ -533,20 +533,22 @@ function delete_rule(self, rule) return rule end -function readrulesfile() +function mymodule.readrulesfile() local rulesfile = format.get_ini_entry(fs.read_file(configfile) or "", "", "IPTABLES_SAVE") return modelfunctions.getfiledetails(rulesfile) end -function updaterulesfile(self, filedetails) +function mymodule.updaterulesfile(self, filedetails) local rulesfile = format.get_ini_entry(fs.read_file(configfile) or "", "", "IPTABLES_SAVE") return modelfunctions.setfiledetails(self, filedetails, {rulesfile}) end -function get_startstop(self, clientdata) +function mymodule.get_startstop(self, clientdata) return modelfunctions.get_startstop(servicename) end -function startstop_service(self, startstop, action) +function mymodule.startstop_service(self, startstop, action) return modelfunctions.startstop_service(startstop, action) end + +return mymodule |