aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_req.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/cowboy_req.erl')
-rw-r--r--src/cowboy_req.erl12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/cowboy_req.erl b/src/cowboy_req.erl
index b5f7e2e..eec4e88 100644
--- a/src/cowboy_req.erl
+++ b/src/cowboy_req.erl
@@ -100,11 +100,7 @@
-> {ok, binary()}
| {error, atom()}).
-type transfer_decode_fun() :: fun((binary(), any())
- -> {ok, binary(), binary(), any()}
- | more | {more, non_neg_integer(), binary(), any()}
- | {done, non_neg_integer(), binary()}
- | {done, binary(), non_neg_integer(), binary()}
- | {error, atom()}).
+ -> cow_http_te:decode_ret()).
-type resp_body_fun() :: fun((any(), module()) -> ok).
-type send_chunk_fun() :: fun((iodata()) -> ok | {error, atom()}).
@@ -571,13 +567,13 @@ transfer_decode(Data, Req=#http_req{body_state={stream, _,
content_decode(ContentDecode, Data2,
Req#http_req{body_state={stream, 0,
TransferDecode, TransferState2, ContentDecode}});
- {more, Data2, Length, TransferState2} ->
+ {more, Data2, Length, TransferState2} when is_integer(Length) ->
content_decode(ContentDecode, Data2,
Req#http_req{body_state={stream, Length,
TransferDecode, TransferState2, ContentDecode}});
- {more, Data2, Length, Rest, TransferState2} ->
+ {more, Data2, Rest, TransferState2} ->
content_decode(ContentDecode, Data2,
- Req#http_req{buffer=Rest, body_state={stream, Length,
+ Req#http_req{buffer=Rest, body_state={stream, 0,
TransferDecode, TransferState2, ContentDecode}});
{done, Length, Rest} ->
Req2 = transfer_decode_done(Length, Rest, Req),