summaryrefslogtreecommitdiffhomepage
path: root/libs/web/luasrc/dispatcher.lua
diff options
context:
space:
mode:
Diffstat (limited to 'libs/web/luasrc/dispatcher.lua')
-rw-r--r--libs/web/luasrc/dispatcher.lua14
1 files changed, 11 insertions, 3 deletions
diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua
index 01cc10921..a375eecc8 100644
--- a/libs/web/luasrc/dispatcher.lua
+++ b/libs/web/luasrc/dispatcher.lua
@@ -108,13 +108,21 @@ end
--- Dispatch an HTTP request.
-- @param request LuCI HTTP Request object
-function httpdispatch(request)
+function httpdispatch(request, prefix)
luci.http.context.request = request
- context.request = {}
+
+ local r = {}
+ context.request = r
local pathinfo = http.urldecode(request:getenv("PATH_INFO") or "", true)
+ if prefix then
+ for _, node in ipairs(prefix) do
+ r[#r+1] = node
+ end
+ end
+
for node in pathinfo:gmatch("[^/]+") do
- table.insert(context.request, node)
+ r[#r+1] = node
end
local stat, err = util.coxpcall(function()