From: Steven Barth Date: Thu, 29 May 2008 19:18:49 +0000 (+0000) Subject: * libs/web: Added .leaf attribute to dispatching tree to stop dispatching at a certai... X-Git-Tag: 0.8.0~957 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=3f5f89451e912039d70eeed9ed3373c72ab1e3f9;hp=d8f5ce4759ac7077fadbcdc90842401b9fa69f2e;ds=sidebyside * libs/web: Added .leaf attribute to dispatching tree to stop dispatching at a certain node * libs/web: Added rewrite target for advanced aliasing --- 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