aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2018-01-24 11:44:03 +0100
committerLoïc Hoguin <[email protected]>2018-01-24 11:44:03 +0100
commit819a47a220dcee309093721ea3c28e20ebfe246a (patch)
treee267f884b0b063878ccc8a730fe6eb744c50bd83 /src
parentd329ca4b6041c6d47db3f64ce1cd2d1a343c4f5a (diff)
downloadcowboy-819a47a220dcee309093721ea3c28e20ebfe246a.tar.gz
cowboy-819a47a220dcee309093721ea3c28e20ebfe246a.tar.bz2
cowboy-819a47a220dcee309093721ea3c28e20ebfe246a.zip
Fix sending HTTP/2 bodies as iolists out of order
Diffstat (limited to 'src')
-rw-r--r--src/cowboy_iolists.erl5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cowboy_iolists.erl b/src/cowboy_iolists.erl
index d04d0ae..a49e7ed 100644
--- a/src/cowboy_iolists.erl
+++ b/src/cowboy_iolists.erl
@@ -51,7 +51,7 @@ split(N, [List|Tail], Acc0) ->
IolistSize = iolist_size(Before),
if
IolistSize < N ->
- split(N - IolistSize, [After|Tail], Before);
+ split(N - IolistSize, [After|Tail], lists:reverse(Before));
true ->
{ok, Before, [After|Tail]}
end;
@@ -71,7 +71,8 @@ split_test_() ->
{10, <<"Hello!">>, "Hello!", ""},
{10, ["He", [<<"ll">>], $o, [["!"]]], "Hello!", ""},
{10, ["Hel"|<<"lo!">>], "Hello!", ""},
- {10, [[<<>>|<<>>], [], <<"Hello world!">>], "Hello worl", "d!"}
+ {10, [[<<>>|<<>>], [], <<"Hello world!">>], "Hello worl", "d!"},
+ {10, [[<<"He">>|<<"llo">>], [$\s], <<"world!">>], "Hello worl", "d!"}
],
[{iolist_to_binary(V), fun() ->
{B, A} = split(N, V),