Software /
code /
prosody
Comparison
net/http/server.lua @ 11159:de76f566159e 0.11
net.http.server: Don't send Content-Length on 1xx/204 responses, per RFC (fixes #1596)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 13 Oct 2020 11:55:28 +0100 |
parent | 10951:f4215f8baa5d |
child | 11160:e9eeaefa09a7 |
comparison
equal
deleted
inserted
replaced
11157:413bd21ba449 | 11159:de76f566159e |
---|---|
293 end | 293 end |
294 _M.prepare_header = prepare_header; | 294 _M.prepare_header = prepare_header; |
295 function _M.send_response(response, body) | 295 function _M.send_response(response, body) |
296 if response.finished then return; end | 296 if response.finished then return; end |
297 body = body or response.body or ""; | 297 body = body or response.body or ""; |
298 response.headers.content_length = #body; | 298 -- Per RFC 7230, informational (1xx) and 204 (no content) should have no c-l header |
299 if response.status_code > 199 and response.status_code ~= 204 then | |
300 response.headers.content_length = #body; | |
301 end | |
299 local output = prepare_header(response); | 302 local output = prepare_header(response); |
300 t_insert(output, body); | 303 t_insert(output, body); |
301 response.conn:write(t_concat(output)); | 304 response.conn:write(t_concat(output)); |
302 response:done(); | 305 response:done(); |
303 end | 306 end |