From bced7b68b7cd0832c809b82549c730cb40fb2da6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Sun, 23 Mar 2014 21:20:28 +0100 Subject: Fix a bug where the buffer was dropped in one chunked decoding case --- src/gun_http.erl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/gun_http.erl') diff --git a/src/gun_http.erl b/src/gun_http.erl index e05bcf8..846ca4c 100644 --- a/src/gun_http.erl +++ b/src/gun_http.erl @@ -60,9 +60,10 @@ handle(Data, State=#http_state{in=body_close}) -> State; handle(Data, State=#http_state{in=body_chunked, in_state=InState, buffer=Buffer, connection=Conn}) -> - case cow_http_te:stream_chunked(<< Buffer/binary, Data/binary >>, InState) of + Buffer2 = << Buffer/binary, Data/binary >>, + case cow_http_te:stream_chunked(Buffer2, InState) of more -> - State; + State#http_state{buffer=Buffer2}; {more, Data2, InState2} -> send_data_if_alive(Data2, State, nofin), State#http_state{buffer= <<>>, in_state=InState2}; -- cgit v1.2.3