diff options
Diffstat (limited to 'libs/web/luasrc/dispatcher.lua')
-rw-r--r-- | libs/web/luasrc/dispatcher.lua | 14 |
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() |