diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-09-18 16:04:34 +0300 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-09-18 18:55:48 +0300 |
commit | 4c8cce74664723532fcab170b8b025db016df562 (patch) | |
tree | 9968fc93e7ee2db051eb6cc63af27c0b15e0cb99 | |
parent | 52f2c103ca72dcdd5ff321a1ca9b391e0bf1c80d (diff) | |
download | awall-4c8cce74664723532fcab170b8b025db016df562.tar.bz2 awall-4c8cce74664723532fcab170b8b025db016df562.tar.xz |
Limit: deterministic ordering for outputv1.2.2
-rw-r--r-- | awall/model.lua | 13 |
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 |