# HG changeset patch # User Matthew Wild # Date 1249438065 -3600 # Node ID 4a70cbb0fad78c2b3f53d91a55e44cf59a91bb7e # Parent 7f17d0d00fbbcf8e9d0e8acb5c1c5f45805c237f net.httpserver: Allow response.body to be a non-string diff -r 7f17d0d00fbb -r 4a70cbb0fad7 net/httpserver.lua --- a/net/httpserver.lua Mon Aug 03 21:48:51 2009 +0500 +++ b/net/httpserver.lua Wed Aug 05 03:07:45 2009 +0100 @@ -37,6 +37,7 @@ -- Write status line local resp; if response.body then + local body = tostring(response.body); log("debug", "Sending response to %s", request.id); resp = { "HTTP/1.0 ", response.status or "200 OK", "\r\n"}; local h = response.headers; @@ -48,15 +49,15 @@ t_insert(resp, "\r\n"); end end - if response.body and not (h and h["Content-Length"]) then + if not (h and h["Content-Length"]) then t_insert(resp, "Content-Length: "); - t_insert(resp, #response.body); + t_insert(resp, #body); t_insert(resp, "\r\n"); end t_insert(resp, "\r\n"); - if response.body and request.method ~= "HEAD" then - t_insert(resp, response.body); + if request.method ~= "HEAD" then + t_insert(resp, body); end else -- Response we have is just a string (the body)