X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=net%2Fhttpserver.lua;h=6273bbb9ce690669f37a03848fdc85c2ad72e5d6;hb=6ee60620ce313f23f7d4e6facf27373e5a535db8;hp=aa4c7c0671b16a64237d87046990cb27c3cbd4bf;hpb=acd4a605931032964220f67fe0148b68d51b69eb;p=prosody.git diff --git a/net/httpserver.lua b/net/httpserver.lua index aa4c7c06..6273bbb9 100644 --- a/net/httpserver.lua +++ b/net/httpserver.lua @@ -23,9 +23,6 @@ local urlencode = function (s) return s and (s:gsub("%W", function (c) return st local log = require "util.logger".init("httpserver"); --- TODO: Should we read this from /etc/mime.types if it exists? (startup time...?) -local mime_map = { html = "text/html", txt = "plain/text; charset=utf-8", js = "text/javascript" }; - local http_servers = {}; module "httpserver" @@ -68,9 +65,7 @@ local function send_response(request, response) resp = { "HTTP/1.0 200 OK\r\n" }; t_insert(resp, "Connection: close\r\n"); - t_insert(resp, "Content-Type: "); - t_insert(resp, mime_map[request.url.path:match("%.(%w+)")] or "application/octet-stream"); - t_insert(resp, "\r\n"); + t_insert(resp, "Content-Type: text/html\r\n"); t_insert(resp, "Content-Length: "); t_insert(resp, #response); t_insert(resp, "\r\n\r\n"); @@ -188,7 +183,7 @@ local function request_reader(request, data, startpos) request.url = url_parse(request.path); - log("debug", method.." request for "..tostring(request.path) .. " on port "..request.handler.serverport()); + log("debug", method.." request for "..tostring(request.path) .. " on port "..request.handler:serverport()); if request.onlystatus then if not call_callback(request) then @@ -206,7 +201,7 @@ end -- The default handler for requests default_handler = function (method, body, request) - log("debug", method.." request for "..tostring(request.path) .. " on port "..request.handler.serverport()); + log("debug", method.." request for "..tostring(request.path) .. " on port "..request.handler:serverport()); return { status = "404 Not Found", headers = { ["Content-Type"] = "text/html" }, body = "Page Not FoundNot here :(" }; @@ -216,7 +211,7 @@ end function new_request(handler) return { handler = handler, conn = handler.socket, write = function (...) return handler:write(...); end, state = "request", - server = http_servers[handler.serverport()], + server = http_servers[handler:serverport()], send = send_response, destroy = destroy_request, id = tostring{}:match("%x+$") @@ -234,7 +229,7 @@ function destroy_request(request) else log("debug", "Request has no destroy callback"); end - request.handler.close() + request.handler:close() if request.conn then listener.ondisconnect(request.handler, "closed"); end @@ -282,6 +277,7 @@ function new_from_config(ports, handle_request, default_options) if ssl then ssl.mode = "server"; ssl.protocol = "sslv23"; + ssl.options = "no_sslv2"; end new{ port = port, interface = interface,