net.httpserver: Removed an unused function.
[prosody.git] / net / httpserver.lua
index 6d6408f76437e1e9e2043bd5d90f9c26f9f8906c..e0fd3f866a2785ebc573f43d96857236d4103705 100644 (file)
@@ -30,10 +30,6 @@ module "httpserver"
 
 local default_handler;
 
-local function expectbody(reqt)
-       return reqt.method == "POST";
-end
-
 local function send_response(request, response)
        -- Write status line
        local resp;
@@ -89,10 +85,20 @@ local function call_callback(request, err)
        end
        if callback then
                local _callback = callback;
-               function callback(a, b, c)
-                       local status, result = xpcall(function() _callback(a, b, c) end, debug_traceback);
-                       if status then return result; end
+               function callback(method, body, request)
+                       local ok, result = xpcall(function() return _callback(method, body, request) end, debug_traceback);
+                       if ok then return result; end
                        log("error", "Error in HTTP server handler: %s", result);
+                       -- TODO: When we support pipelining, request.destroyed
+                       -- won't be the right flag - we just want to see if there
+                       -- has been a response to this request yet.
+                       if not request.destroyed then
+                               return {
+                                       status = "500 Internal Server Error";
+                                       headers = { ["Content-Type"] = "text/plain" };
+                                       body = "There was an error processing your request. See the error log for more details.";
+                               };
+                       end
                end
                if err then
                        log("debug", "Request error: "..err);