aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--awall/init.lua12
1 files changed, 6 insertions, 6 deletions
diff --git a/awall/init.lua b/awall/init.lua
index 9fcbecd..0266c82 100644
--- a/awall/init.lua
+++ b/awall/init.lua
@@ -80,7 +80,7 @@ function M.Config:init(policyconfig)
self.objects = policyconfig:expand()
self.iptables = IPTables()
- local acfrags = {}
+ local actions = {}
local function insertrules(trules)
for i, trule in ipairs(trules) do
@@ -93,7 +93,11 @@ function M.Config:init(policyconfig)
table=trule.table,
chain=trule.target
}
- acfrags[optfrag.location(acfrag)] = acfrag
+ local key = optfrag.location(acfrag)
+ if not actions[key] then
+ actions[key] = true
+ insertrules(optfrag.combinations(achains, {acfrag}))
+ end
end
if trule.position == 'prepend' then
@@ -136,10 +140,6 @@ function M.Config:init(policyconfig)
end
end
- local ofrags = {}
- for k, v in pairs(acfrags) do table.insert(ofrags, v) end
- insertrules(optfrag.combinations(achains, ofrags))
-
self.ipset = IPSet(self.objects.ipset)
end