Software /
code /
prosody
Diff
net/http/server.lua @ 4688:8d275c86a04f
net.http.server: Remove legacy compatibility
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 25 Apr 2012 14:58:10 +0100 |
parent | 4683:c1374e083c97 |
child | 4689:e8c357259993 |
line wrap: on
line diff
--- a/net/http/server.lua Wed Apr 25 14:53:54 2012 +0200 +++ b/net/http/server.lua Wed Apr 25 14:58:10 2012 +0100 @@ -160,9 +160,6 @@ response.headers.content_type = "text/html"; response:send("<html><head>400 Bad Request</head><body>400 Bad Request: No Host header.</body></html>"); else - -- TODO call handler - --response.headers.content_type = "text/plain"; - --response:send("host="..(request.headers.host or "").."\npath="..request.path.."\n"..(request.body or "")); local host = request.headers.host; if host then host = host:match("[^:]*"):lower(); @@ -191,8 +188,10 @@ end end - -- if handler not called, fallback to legacy httpserver handlers - _M.legacy_handler(request, response); + -- if handler not called, return 404 + response.status_code = 404; + response.headers.content_type = "text/html"; + response:send("<html><head><title>404 Not Found</title></head><body>404 Not Found: No such page.</body></html>"); end end function _M.send_response(response, body) @@ -215,58 +214,6 @@ response.conn:close(); end end -function _M.legacy_handler(request, response) - log("debug", "Invoking legacy handler"); - local base = request.path:match("^/([^/?]+)"); - local legacy_server = legacy_httpserver and legacy_httpserver.new.http_servers[5280]; - local handler = legacy_server and legacy_server.handlers[base]; - if not handler then handler = legacy_httpserver and legacy_httpserver.set_default_handler.default_handler; end - if handler then - -- add legacy properties to request object - request.url = { path = request.path }; - request.handler = response.conn; - request.id = tostring{}:match("%x+$"); - local headers = {}; - for k,v in pairs(request.headers) do - headers[k:gsub("_", "-")] = v; - end - request.headers = headers; - function request:send(resp) - if self.destroyed then return; end - if resp.body or resp.headers then - if resp.headers then - for k,v in pairs(resp.headers) do response.headers[k] = v; end - end - response:send(resp.body) - else - response:send(resp) - end - self.sent = true; - self:destroy(); - end - function request:destroy() - if self.destroyed then return; end - if not self.sent then return self:send(""); end - self.destroyed = true; - if self.on_destroy then - log("debug", "Request has destroy callback"); - self:on_destroy(); - else - log("debug", "Request has no destroy callback"); - end - end - local r = handler(request.method, request.body, request); - if r ~= true then - request:send(r); - end - else - log("debug", "No handler found"); - response.status_code = 404; - response.headers.content_type = "text/html"; - response:send("<html><head><title>404 Not Found</title></head><body>404 Not Found: No such page.</body></html>"); - end -end - function _M.add_handler(event, handler, priority) events.add_handler(event, handler, priority); end