Просмотр исходного кода

Fix sending of final chunk in HTTP/1.1

I broke this when fixing stream handlers earlier.
Loïc Hoguin 7 лет назад
Родитель
Сommit
76f4db863e
1 измененных файлов с 7 добавлено и 1 удалено
  1. 7 1
      src/cowboy_http.erl

+ 7 - 1
src/cowboy_http.erl

@@ -846,7 +846,13 @@ commands(State0=#state{socket=Socket, transport=Transport, streams=Streams}, Str
 			%% @todo Same as above.
 			case lists:keyfind(StreamID, #stream.id, Streams) of
 				#stream{version='HTTP/1.1'} ->
-					Transport:send(Socket, [integer_to_binary(Size, 16), <<"\r\n">>, Data, <<"\r\n">>]);
+					Transport:send(Socket, [
+						integer_to_binary(Size, 16), <<"\r\n">>, Data,
+						case IsFin of
+							fin -> <<"\r\n0\r\n\r\n">>;
+							nofin -> <<"\r\n">>
+						end
+					]);
 				#stream{version='HTTP/1.0'} ->
 					Transport:send(Socket, Data)
 			end