aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author0xAX <[email protected]>2013-02-14 18:56:52 +0600
committer0xAX <[email protected]>2013-02-14 18:56:52 +0600
commit1de2e1f2a45a82415a879910d7533498ecde8054 (patch)
treef0355bb912e716506c0362747799295dd0252a93
parent46cce4814390a2917563ce7af82e0e1bbfc81ed3 (diff)
downloadcowboy-1de2e1f2a45a82415a879910d7533498ecde8054.tar.gz
cowboy-1de2e1f2a45a82415a879910d7533498ecde8054.tar.bz2
cowboy-1de2e1f2a45a82415a879910d7533498ecde8054.zip
cowbot_req:has_body:/1 improved
-rw-r--r--src/cowboy_req.erl10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl
index 0c4969d..8c9a618 100644
--- a/src/cowboy_req.erl
+++ b/src/cowboy_req.erl
@@ -564,8 +564,14 @@ set_meta(Name, Value, Req=#http_req{meta=Meta}) ->
%% @doc Return whether the request message has a body.
-spec has_body(cowboy_req:req()) -> boolean().
has_body(Req) ->
- lists:keymember(<<"content-length">>, 1, Req#http_req.headers) orelse
- lists:keymember(<<"transfer-encoding">>, 1, Req#http_req.headers).
+ case lists:keyfind(<<"content-length">>, 1, Req#http_req.headers) of
+ {_, <<"0">>} ->
+ false;
+ {_, _} ->
+ true;
+ _ ->
+ lists:keymember(<<"transfer-encoding">>, 1, Req#http_req.headers)
+ end.
%% @doc Return the request message body length, if known.
%%