aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--awall/policy.lua2
-rw-r--r--awall/util.lua4
2 files changed, 4 insertions, 2 deletions
diff --git a/awall/policy.lua b/awall/policy.lua
index b71cf3a..169768b 100644
--- a/awall/policy.lua
+++ b/awall/policy.lua
@@ -48,7 +48,7 @@ function PolicyConfig:expand()
local var = self.data.variable[name]
if var == nil then raise('Invalid variable reference: '..name) end
- if si == 1 and ei == value:len() then value = var
+ if si == 1 and ei == value:len() then value = util.copy(var)
elseif contains({'number', 'string'}, type(var)) then
value = value:sub(1, si - 1)..var..value:sub(ei + 1, -1)
else
diff --git a/awall/util.lua b/awall/util.lua
index a43da4a..df6579a 100644
--- a/awall/util.lua
+++ b/awall/util.lua
@@ -85,7 +85,9 @@ function M.setdefault(t, k, v)
return t[k]
end
-function M.copy(tbl) return M.update({}, tbl) end
+function M.copy(var)
+ return type(var) == 'table' and M.update({}, var) or var
+end
function M.compare(a, b)
local t = type(a)