mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 20:30:23 +00:00
Update Cowlib to 2.0.1 and fix OTP 20.1+ Websocket compression
Unfortunately compression will be disabled for 20.1, 20.1.1 and 20.1.2. In additiona I do not recommend 20.1.3 due to issues inflating some specific sizes.
This commit is contained in:
parent
83bd8bc935
commit
5e88a9b394
3 changed files with 9 additions and 5 deletions
|
@ -144,23 +144,27 @@ websocket_extensions(State=#state{extensions=Extensions}, Req=#{pid := Pid},
|
|||
[{<<"permessage-deflate">>, Params}|Tail], RespHeader) ->
|
||||
%% @todo Make deflate options configurable.
|
||||
Opts = #{level => best_compression, mem_level => 8, strategy => default},
|
||||
case cow_ws:negotiate_permessage_deflate(Params, Extensions, Opts#{owner => Pid}) of
|
||||
try cow_ws:negotiate_permessage_deflate(Params, Extensions, Opts#{owner => Pid}) of
|
||||
{ok, RespExt, Extensions2} ->
|
||||
websocket_extensions(State#state{extensions=Extensions2},
|
||||
Req, Tail, [<<", ">>, RespExt|RespHeader]);
|
||||
ignore ->
|
||||
websocket_extensions(State, Req, Tail, RespHeader)
|
||||
catch exit:{error, incompatible_zlib_version, _} ->
|
||||
websocket_extensions(State, Req, Tail, RespHeader)
|
||||
end;
|
||||
websocket_extensions(State=#state{extensions=Extensions}, Req=#{pid := Pid},
|
||||
[{<<"x-webkit-deflate-frame">>, Params}|Tail], RespHeader) ->
|
||||
%% @todo Make deflate options configurable.
|
||||
Opts = #{level => best_compression, mem_level => 8, strategy => default},
|
||||
case cow_ws:negotiate_x_webkit_deflate_frame(Params, Extensions, Opts#{owner => Pid}) of
|
||||
try cow_ws:negotiate_x_webkit_deflate_frame(Params, Extensions, Opts#{owner => Pid}) of
|
||||
{ok, RespExt, Extensions2} ->
|
||||
websocket_extensions(State#state{extensions=Extensions2},
|
||||
Req, Tail, [<<", ">>, RespExt|RespHeader]);
|
||||
ignore ->
|
||||
websocket_extensions(State, Req, Tail, RespHeader)
|
||||
catch exit:{error, incompatible_zlib_version, _} ->
|
||||
websocket_extensions(State, Req, Tail, RespHeader)
|
||||
end;
|
||||
websocket_extensions(State, Req, [_|Tail], RespHeader) ->
|
||||
websocket_extensions(State, Req, Tail, RespHeader).
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue