mod_http_files: Strip path separator from end of paths, was broken on Windows (thanks...
authorKim Alvefur <zash@zash.se>
Sun, 9 Mar 2014 21:16:44 +0000 (22:16 +0100)
committerKim Alvefur <zash@zash.se>
Sun, 9 Mar 2014 21:16:44 +0000 (22:16 +0100)
plugins/mod_http_files.lua

index 6ab295acf3070c9d2312e72a1a2f15519fb56370..3a9368b9a65160a5b44c98c9be4fd25f77040905 100644 (file)
@@ -14,6 +14,7 @@ local os_date = os.date;
 local open = io.open;
 local stat = lfs.attributes;
 local build_path = require"socket.url".build_path;
+local path_sep = package.config:sub(1,1);
 
 local base_path = module:get_option_string("http_files_dir", module:get_option_string("http_path"));
 local dir_indices = module:get_option("http_index_files", { "index.html", "index.htm" });
@@ -61,7 +62,7 @@ function serve(opts)
                local request, response = event.request, event.response;
                local orig_path = request.path;
                local full_path = base_path .. (path and "/"..path or "");
-               local attr = stat(full_path);
+               local attr = stat((full_path:gsub('%'..path_sep..'+$','')));
                if not attr then
                        return 404;
                end