diff options
author | Loïc Hoguin <[email protected]> | 2014-03-23 21:20:28 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2014-03-23 21:20:28 +0100 |
commit | bced7b68b7cd0832c809b82549c730cb40fb2da6 (patch) | |
tree | 827b4e48f6d93ec438bd404cc0bc68ddfd8e64f3 | |
parent | 3f0e98709fd10f22b62c49e7207484d568276caf (diff) | |
download | gun-bced7b68b7cd0832c809b82549c730cb40fb2da6.tar.gz gun-bced7b68b7cd0832c809b82549c730cb40fb2da6.tar.bz2 gun-bced7b68b7cd0832c809b82549c730cb40fb2da6.zip |
Fix a bug where the buffer was dropped in one chunked decoding case
-rw-r--r-- | src/gun_http.erl | 5 |
1 files changed, 3 insertions, 2 deletions
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}; |