local pathinfo = luci.http.env.PATH_INFO or ""
local c = tree
- for s in pathinfo:gmatch("([%w_]+)") do
+ for s in pathinfo:gmatch("([%w-]+)") do
table.insert(request, s)
end
for i, s in ipairs(request) do
c = c.nodes[s]
- if not c then
+ if not c or c.leaf then
break
end
if not built_index then
createindex()
end
+
+ require("luci.i18n")
for k, v in pairs(index) do
luci.util.updfenv(v, _M)
luci.util.extfenv(v, "_NAME", k)
- pcall(v)
+
+ local stat, err = pcall(v)
+ if not stat then
+ error500(err)
+ os.exit(1)
+ end
end
built_tree = true
end
end
+function rewrite(n, ...)
+ local req = arg
+ return function()
+ for i=1,n do
+ table.remove(request, 1)
+ end
+
+ for i,r in ipairs(req) do
+ table.insert(request, i, r)
+ end
+
+ dispatch()
+ end
+end
+
function call(name)
return function() getfenv()[name]() end
end