diff options
-rw-r--r-- | awall/modules/filter.lua | 12 |
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 |