From b0519af42a4d3ee7e345967206bd1d0050e9061b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 29 Nov 2017 21:38:10 +0100 Subject: Don't include a content-length in 204 responses --- src/cowboy_req.erl | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/cowboy_req.erl') diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl index da3a0a4..e38b76c 100644 --- a/src/cowboy_req.erl +++ b/src/cowboy_req.erl @@ -725,6 +725,11 @@ reply(Status, Headers, SendFile = {sendfile, _, Len, _}, Req) do_reply(Status, Headers#{ <<"content-length">> => integer_to_binary(Len) }, SendFile, Req); +%% 204 responses must not include content-length. (RFC7230 3.3.1, RFC7230 3.3.2) +reply(Status=204, Headers, Body, Req) -> + do_reply(Status, Headers, Body, Req); +reply(Status= <<"204",_/bits>>, Headers, Body, Req) -> + do_reply(Status, Headers, Body, Req); reply(Status, Headers, Body, Req) when is_integer(Status); is_binary(Status) -> do_reply(Status, Headers#{ -- cgit v1.2.3