Software /
code /
prosody
Changeset
5264:700ff21a0451
mod_http_files: Work with non-wildcard-routes. Key cache on the original HTTP path.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 21 Dec 2012 20:34:40 +0100 |
parents | 5263:736e7ec8cd2e |
children | 5265:cc2aed452a62 |
files | plugins/mod_http_files.lua |
diffstat | 1 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_http_files.lua Fri Dec 21 20:08:33 2012 +0100 +++ b/plugins/mod_http_files.lua Fri Dec 21 20:34:40 2012 +0100 @@ -78,11 +78,11 @@ return 304; end - local data = cache[path]; + local data = cache[orig_path]; if data and data.etag == etag then response_headers.content_type = data.content_type; data = data.data; - elseif attr.mode == "directory" then + elseif attr.mode == "directory" and path then if full_path:sub(-1) ~= "/" then local path = { is_absolute = true, is_directory = true }; for dir in orig_path:gmatch("[^/]+") do path[#path+1]=dir; end @@ -101,7 +101,7 @@ if not data then return 403; end - cache[path] = { data = data, content_type = mime_map.html; etag = etag; }; + cache[orig_path] = { data = data, content_type = mime_map.html; etag = etag; }; response_headers.content_type = mime_map.html; else @@ -114,9 +114,9 @@ module:log("debug", "Could not open or read %s. Error was %s", full_path, err); return 403; end - local ext = path:match("%.([^./]+)$"); + local ext = orig_path:match("%.([^./]+)$"); local content_type = ext and mime_map[ext]; - cache[path] = { data = data; content_type = content_type; etag = etag }; + cache[orig_path] = { data = data; content_type = content_type; etag = etag }; response_headers.content_type = content_type; end