Changeset

6605:03a43bf3ecd2

Merge with merge
author Kim Alvefur <zash@zash.se>
date Fri, 27 Mar 2015 00:28:16 +0100
parents 6604:478308ee29dd (current diff) 6602:61b6a4fc65f1 (diff)
children 6606:96f4a325b534 6608:b6e558febb7a
files net/http/server.lua util-src/encodings.c
diffstat 1 files changed, 11 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/net/http/server.lua	Fri Mar 27 00:27:29 2015 +0100
+++ b/net/http/server.lua	Fri Mar 27 00:28:16 2015 +0100
@@ -189,7 +189,6 @@
 		persistent = persistent;
 		conn = conn;
 		send = _M.send_response;
-		done = _M.finish_response;
 		finish_cb = finish_cb;
 	};
 	conn._http_open_response = response;
@@ -209,7 +208,7 @@
 			err_code, err = 400, "Missing or invalid 'Host' header";
 		end
 	end
-
+	
 	if err then
 		response.status_code = err_code;
 		response:send(events.fire_event("http-error", { code = err_code, message = err }));
@@ -218,7 +217,7 @@
 
 	local event = request.method.." "..host..request.path:match("[^?]*");
 	local payload = { request = request, response = response };
-	log("debug", event);
+	log("debug", "Firing event: %s", event);
 	local result = events.fire_event(event, payload);
 	if result ~= nil then
 		if result ~= true then
@@ -251,30 +250,24 @@
 	response.status_code = 404;
 	response:send(events.fire_event("http-error", { code = 404 }));
 end
-local function prepare_header(response)
+function _M.send_response(response, body)
+	if response.finished then return; end
+	response.finished = true;
+	response.conn._http_open_response = nil;
+	
 	local status_line = "HTTP/"..response.request.httpversion.." "..(response.status or codes[response.status_code]);
 	local headers = response.headers;
+	body = body or response.body or "";
+	headers.content_length = #body;
+
 	local output = { status_line };
 	for k,v in pairs(headers) do
 		t_insert(output, headerfix[k]..v);
 	end
 	t_insert(output, "\r\n\r\n");
-	return output;
-end
-_M.prepare_header = prepare_header;
-function _M.send_response(response, body)
-	if response.finished then return; end
-	body = body or response.body or "";
-	response.headers.content_length = #body;
-	local output = prepare_header(response);
 	t_insert(output, body);
+
 	response.conn:write(t_concat(output));
-	response:done();
-end
-function _M.finish_response(response)
-	if response.finished then return; end
-	response.finished = true;
-	response.conn._http_open_response = nil;
 	if response.on_destroy then
 		response:on_destroy();
 		response.on_destroy = nil;