aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-04-16 23:16:20 +0300
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-04-16 23:16:20 +0300
commit8e84eb17bd4b3c91f3c9607dcf6c4cbb2e3b9198 (patch)
tree6e8dd6f4ee0d8c2f62535ed33889d2d47071947d
parent96d74c77388013fd2bfdfcea77bc627f99147d94 (diff)
downloadawall-8e84eb17bd4b3c91f3c9607dcf6c4cbb2e3b9198.tar.bz2
awall-8e84eb17bd4b3c91f3c9607dcf6c4cbb2e3b9198.tar.xz
handle properly multiple explicit related rules
-rw-r--r--awall/modules/filter.lua12
1 files changed, 7 insertions, 5 deletions
diff --git a/awall/modules/filter.lua b/awall/modules/filter.lua
index b8434f6..9fd5b2a 100644
--- a/awall/modules/filter.lua
+++ b/awall/modules/filter.lua
@@ -115,13 +115,13 @@ end
function Filter:trules()
local res = {}
- local function extrarules(key, cls, options)
+ local function extrarules(label, cls, options)
+ options = options or {}
+ local key = label..(options.index or '')
local obj = self.extrarules[key]
if not obj then
- options = options or {}
-
- local params = {label=(self.label and self.label..'-' or '')..key}
+ local params = {label=(self.label and self.label..'-' or '')..label}
for i, attr in ipairs(
{'in', 'out', 'src', 'dest', 'dnat', 'ipset', 'ipsec', 'service'}
) do
@@ -185,7 +185,9 @@ function Filter:trules()
if self.related then
for i, rule in listpairs(self.related) do
extrarules(
- 'related', RelatedRule, {src=rule, update={service=self.service}}
+ 'related',
+ RelatedRule,
+ {index=i, src=rule, update={service=self.service}}
)
end
else