diff options
Diffstat (limited to 'awall')
-rw-r--r-- | awall/init.lua | 6 | ||||
-rw-r--r-- | awall/ipset.lua | 9 | ||||
-rw-r--r-- | awall/iptables.lua | 7 |
3 files changed, 20 insertions, 2 deletions
diff --git a/awall/init.lua b/awall/init.lua index 9787c53..8ec2797 100644 --- a/awall/init.lua +++ b/awall/init.lua @@ -111,6 +111,12 @@ function Config:init(policyconfig) self.ipset = ipset.IPSet.new(self.input.ipset) end +function Config:print() + self.ipset:print() + print() + self.iptables:print() +end + function Config:dump(iptdir, ipsfile) self.ipset:dump(ipsfile or '/etc/ipset.d/awall') self.iptables:dump(iptdir or '/etc/iptables') diff --git a/awall/ipset.lua b/awall/ipset.lua index 68e7293..73dea04 100644 --- a/awall/ipset.lua +++ b/awall/ipset.lua @@ -14,7 +14,7 @@ IPSet = awall.object.class(awall.object.Object) function IPSet:init(config) self.config = config end function IPSet:commands() - local res = {} + local res = {'# ipset file generated by awall\n'} if self.config then for name, ipset in pairs(self.config) do if not ipset.type then ipset:error('Type not defined') end @@ -37,8 +37,13 @@ function IPSet:create() end end +function IPSet:print(file) + if not file then file = io.stdout end + for i, line in ipairs(self:commands()) do file:write(line) end +end + function IPSet:dump(ipsfile) local file = io.output(ipsfile) - for i, line in ipairs(self:commands()) do file:write(line) end + self:print(file) file:close() end diff --git a/awall/iptables.lua b/awall/iptables.lua index 4118ffe..78dc48d 100644 --- a/awall/iptables.lua +++ b/awall/iptables.lua @@ -34,6 +34,13 @@ local backupdir = '/var/run/awall' local BaseIPTables = class(awall.object.Object) +function BaseIPTables:print() + for family, tbls in pairs(families) do + self:dumpfile(family, io.stdout) + print() + end +end + function BaseIPTables:dump(dir) for family, tbls in pairs(families) do local file = io.output(dir..'/'..families[family].file) |