Diff

plugins/mod_http.lua @ 5204:0b4f680ea116

mod_http: Fix pattern and slightly improve efficiency and memory usage of wildcard HTTP handlers
author Matthew Wild <mwild1@gmail.com>
date Thu, 29 Nov 2012 07:15:04 +0500
parent 5190:76c73bd3d483
child 5230:6f5640375358
line wrap: on
line diff
--- a/plugins/mod_http.lua	Sun Nov 25 05:12:13 2012 +0100
+++ b/plugins/mod_http.lua	Thu Nov 29 07:15:04 2012 +0500
@@ -88,10 +88,10 @@
 					local data = handler;
 					handler = function () return data; end
 				elseif event_name:sub(-2, -1) == "/*" then
-					local base_path = event_name:match("/(.+)/*$");
+					local base_path_len = #event_name:match("(/.+/)%*$")+1;
 					local _handler = handler;
 					handler = function (event)
-						local path = event.request.path:sub(#base_path+1);
+						local path = event.request.path:sub(base_path_len);
 						return _handler(event, path);
 					end;
 				end