aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2012-04-23 21:34:05 +0100
committerMatthew Wild <mwild1@gmail.com>2012-04-23 21:34:05 +0100
commita3ceb27baef9490381162c206e89b7d2f67ef3c7 (patch)
treed6062fe5287c2a27cf2392ae1f75a4bb47e88ae4 /plugins
parentf2b41269670e6947a2f43c3d793cac9b56bccf02 (diff)
downloadprosody-a3ceb27baef9490381162c206e89b7d2f67ef3c7.tar.gz
prosody-a3ceb27baef9490381162c206e89b7d2f67ef3c7.zip
mod_http: Pass portion of path that matched wildcard to wildcard handlers, as a second parameter
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mod_http.lua8
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/mod_http.lua b/plugins/mod_http.lua
index cd1984c0..3dcb14d7 100644
--- a/plugins/mod_http.lua
+++ b/plugins/mod_http.lua
@@ -46,6 +46,14 @@ function module.add_host(module)
for key, handler in pairs(event.item.route or {}) do
local event_name = get_http_event(host, app_path, key);
if event_name then
+ if event_name:sub(-2, -1) == "/*" then
+ local base_path = event_name:match("/(.+)/*$");
+ local _handler = handler;
+ handler = function (event)
+ local path = event.request.path:sub(#base_path+1);
+ return _handler(event, path);
+ end;
+ end
if not app_handlers[event_name] then
app_handlers[event_name] = handler;
server.add_handler(event_name, handler);