aboutsummaryrefslogtreecommitdiff
path: root/bulkredirect.lua
diff options
context:
space:
mode:
Diffstat (limited to 'bulkredirect.lua')
-rw-r--r--bulkredirect.lua50
1 files changed, 24 insertions, 26 deletions
diff --git a/bulkredirect.lua b/bulkredirect.lua
index d047b65..f995a3c 100644
--- a/bulkredirect.lua
+++ b/bulkredirect.lua
@@ -301,6 +301,28 @@ local function www_complement (name)
return s
end
+local function populate_www_complements (rt, dup)
+ local crt = {}
+
+ for d,t in pairs(rt) do
+ local compl = www_complement(d)
+ if rt[compl] then
+ for k,v in pairs(t) do
+ -- FIXME: Error message if rt[compl][k] exists
+ crt[compl][k] = clone(v)
+ end
+ elseif dup then
+ crt[compl] = clone(t)
+ else
+ crt[compl] = d
+ end
+ end
+
+ for d,t in pairs(crt) do
+ rt[d] = t
+ end
+end
+
local function load_redirect_file (f, filename)
local domain
local ln = 1
@@ -364,17 +386,7 @@ local function load_redirect_file (f, filename)
if www == optab['www'] then
return
elseif www then
- for d,t in pairs(rt) do
- local compl = www_complement(d)
- if rt[compl] then
- for k,v in pairs(t) do
- -- FIXME: Error message if rt[compl][k] exists
- rt[compl][k] = clone(v)
- end
- else
- rt[compl] = clone(t)
- end
- end
+ populate_www_complements (rt, true)
www = nil
end
end
@@ -404,21 +416,7 @@ local function load_redirect_file (f, filename)
end
if www then
- crt = {}
- for d,t in pairs(rt) do
- local compl = www_complement(d)
- if rt[compl] then
- for k,v in pairs(t) do
- -- FIXME: Error message if rt[compl][k] exists
- crt[compl][k] = clone(v)
- end
- else
- crt[compl] = d
- end
- end
- for d,t in pairs(crt) do
- rt[d] = t
- end
+ populate_www_complements (rt, false)
www = nil
end

Return to:

Send suggestions and report system problems to the System administrator.