diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2012-03-22 09:22:03 +0000 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2012-03-22 09:22:03 +0000 |
commit | 59879efcdfdacc394ba900be2cf48c3a155af9f3 (patch) | |
tree | e65c89bf1b9fdbed36f654a40a384ff72c809e3f | |
parent | c3126d2e823ce865223dd5744215f0a884d87be2 (diff) | |
download | awall-59879efcdfdacc394ba900be2cf48c3a155af9f3.tar.bz2 awall-59879efcdfdacc394ba900be2cf48c3a155af9f3.tar.xz |
class model utilized in init.lua
context objects converted to explicit Config objects
-rwxr-xr-x | awall-cli | 5 | ||||
-rw-r--r-- | awall/init.lua | 48 |
2 files changed, 26 insertions, 27 deletions
@@ -25,5 +25,6 @@ if testmode then awall.ipsfile = 'output/ipset' end -awall.test() -awall.dump() +config = awall.Config.new() +config:test() +config:dump() diff --git a/awall/init.lua b/awall/init.lua index 1bd3b8d..1115244 100644 --- a/awall/init.lua +++ b/awall/init.lua @@ -13,6 +13,7 @@ require 'stringy' require 'awall.ipset' require 'awall.iptables' require 'awall.model' +require 'awall.object' require 'awall.util' @@ -34,11 +35,12 @@ function loadmodules(path) end -local function readconfig() +Config = awall.object.class(awall.object.Object) - local config = {} - local iptables = awall.iptables.new() - local context = {input=config, iptables=iptables} +function Config:init() + + self.input = {} + self.iptables = awall.iptables.new() for i, dir in ipairs(confdirs) do local fnames = {} @@ -52,10 +54,10 @@ local function readconfig() data = json.decode(data) for cls, objs in pairs(data) do - if not config[cls] then config[cls] = objs - elseif objs[1] then util.extend(config[cls], objs) + if not self.input[cls] then self.input[cls] = objs + elseif objs[1] then util.extend(self.input[cls], objs) else - for k, v in pairs(objs) do config[cls][k] = v end + for k, v in pairs(objs) do self.input[cls][k] = v end end end end @@ -80,7 +82,7 @@ local function readconfig() end table.insert(visited, name) - val = config.variable[name] + val = self.input.variable[name] if not val then error('Invalid variable reference: '..name) end end @@ -89,11 +91,11 @@ local function readconfig() end end - expandvars(config) + expandvars(self.input) function insertrule(trule) - local t = iptables.config[trule.family][trule.table][trule.chain] + local t = self.iptables.config[trule.family][trule.table][trule.chain] if trule.position == 'prepend' then table.insert(t, 1, trule.opts) else @@ -105,10 +107,10 @@ local function readconfig() for i, mod in ipairs(modules) do for path, cls in pairs(mod.classmap) do - if config[path] then - awall.util.map(config[path], - function(obj) return cls.morph(obj, context) end) - table.insert(locations, config[path]) + if self.input[path] then + awall.util.map(self.input[path], + function(obj) return cls.morph(obj, self) end) + table.insert(locations, self.input[path]) end end @@ -122,19 +124,15 @@ local function readconfig() end end - context.ipset = awall.ipset.new(config.ipset) - - return context + self.ipset = awall.ipset.new(self.input.ipset) end -function dump() - local context = readconfig() - context.ipset:dump(ipsfile) - context.iptables:dump(iptdir) +function Config:dump() + self.ipset:dump(ipsfile) + self.iptables:dump(iptdir) end -function test() - local context = readconfig() - context.ipset:create() - context.iptables:test() +function Config:test() + self.ipset:create() + self.iptables:test() end |