aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-09-18 16:04:34 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-09-18 18:55:48 +0300
commit4c8cce74664723532fcab170b8b025db016df562 (patch)
tree9968fc93e7ee2db051eb6cc63af27c0b15e0cb99
parent52f2c103ca72dcdd5ff321a1ca9b391e0bf1c80d (diff)
downloadawall-4c8cce74664723532fcab170b8b025db016df562.tar.bz2
awall-4c8cce74664723532fcab170b8b025db016df562.tar.xz
Limit: deterministic ordering for outputv1.2.2
-rw-r--r--awall/model.lua13
1 files changed, 9 insertions, 4 deletions
diff --git a/awall/model.lua b/awall/model.lua
index 4001ce2..14024ed 100644
--- a/awall/model.lua
+++ b/awall/model.lua
@@ -580,10 +580,14 @@ function M.Limit:init(...)
if type(setdefault(self, 'mask', {})) == 'number' then
self.mask = {src=self.mask}
end
- for family, len in pairs{inet=32, inet6=128} do
+ for _, family in ipairs{'inet', 'inet6'} do
setdefault(self.mask, family, util.copy(self.mask))
- for attr, default in pairs{src=len, dest=0} do
- local mask = setdefault(self.mask[family], attr, default)
+ for _, attr in ipairs{'src', 'dest'} do
+ local mask = setdefault(
+ self.mask[family],
+ attr,
+ ({src=({inet=32, inet6=128})[family], dest=0})[attr]
+ )
if mask > 0 then
self.mask[family].mode =
self.mask[family].mode and true or {attr, mask}
@@ -601,9 +605,10 @@ function M.Limit:limitofrags(name)
for _, family in ipairs{'inet', 'inet6'} do
local keys = {}
local maskopts = ''
- for attr, opt in pairs{src='src', dest='dst'} do
+ for _, attr in ipairs{'src', 'dest'} do
local mask = self.mask[family][attr]
if mask > 0 then
+ local opt = ({src='src', dest='dst'})[attr]
table.insert(keys, opt..'ip')
maskopts = maskopts..' --hashlimit-'..opt..'mask '..mask
end