net.http.server: Don't overwrite existing response.headers when returning a response object from a HTTP handler (waqas says it's wrong)
authorMatthew Wild <mwild1@gmail.com>
Sun, 31 Mar 2013 13:45:04 +0100
changeset 5404 ae9a47e579d7
parent 5403 d7ecf6cd584e
child 5405 4f98f2f60e22
net.http.server: Don't overwrite existing response.headers when returning a response object from a HTTP handler (waqas says it's wrong)
net/http/server.lua
--- a/net/http/server.lua	Sun Mar 31 13:43:12 2013 +0100
+++ b/net/http/server.lua	Sun Mar 31 13:45:04 2013 +0100
@@ -219,7 +219,13 @@
 				body = result;
 			elseif result_type == "table" then
 				for k, v in pairs(result) do
-					response[k] = v;
+					if k ~= "headers" then
+						response[k] = v;
+					else
+						for header_name, header_value in pairs(v) do
+							response.headers[header_name] = header_value;
+						end
+					end
 				end
 			end
 			response:send(body);