X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=libs%2Fweb%2Fluasrc%2Fdispatcher.lua;h=d1fcdcd0fc017105eadf7ce859c0e3a70d1a2a0f;hp=14801c633505190cf4458b8ba878d82e6d1c2a9c;hb=3f5f89451e912039d70eeed9ed3373c72ab1e3f9;hpb=d8f5ce4759ac7077fadbcdc90842401b9fa69f2e diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index 14801c633..d1fcdcd0f 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -98,7 +98,7 @@ function dispatch() for i, s in ipairs(request) do c = c.nodes[s] - if not c then + if not c or c.leaf then break end @@ -282,6 +282,21 @@ function alias(...) 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