From cb0c7dce8ab8b9dea5567b82c3dbb242d1786ac3 Mon Sep 17 00:00:00 2001 From: Kaarle Ritvanen Date: Wed, 30 Jan 2013 11:46:33 +0200 Subject: [PATCH] support for all NFLOG and ULOG options fixes #1586 --- awall/model.lua | 2 +- awall/modules/filter.lua | 29 ++++++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/awall/model.lua b/awall/model.lua index 1746c7a..2e2e61a 100644 --- a/awall/model.lua +++ b/awall/model.lua @@ -23,7 +23,7 @@ class = awall.object.class require 'stringy' -local ConfigObject = class() +ConfigObject = class() function ConfigObject:init(context, location) if context then diff --git a/awall/modules/filter.lua b/awall/modules/filter.lua index eafb5ad..15d3629 100644 --- a/awall/modules/filter.lua +++ b/awall/modules/filter.lua @@ -17,14 +17,37 @@ local extend = util.extend local RECENT_MAX_COUNT = 20 -local Log = model.class() +local Log = model.class(model.ConfigObject) function Log:optfrag() + local optmap = { + log={level='level', prefix='prefix'}, + nflog={ + group='group', + prefix='prefix', + range='range', + threshold='threshold' + }, + ulog={ + group='nlgroup', + prefix='prefix', + range='cprange', + threshold='qthreshold' + } + } + local mode = self.mode or 'log' - local prefix = self.prefix and ' --'..mode..'-prefix '..self.prefix or '' + if not optmap[mode] then self:error('Invalid logging mode: '..mode) end + + local target = string.upper(mode) + + for s, t in pairs(optmap[mode]) do + if self[s] then target = target..' --'..mode..'-'..t..' '..self[s] end + end + return { opts=self.limit and '-m limit --limit '..self.limit..'/second', - target=string.upper(mode)..prefix + target=target } end -- GitLab