aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_compress_h.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/cowboy_compress_h.erl')
-rw-r--r--src/cowboy_compress_h.erl8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cowboy_compress_h.erl b/src/cowboy_compress_h.erl
index e9824ba..374cb6a 100644
--- a/src/cowboy_compress_h.erl
+++ b/src/cowboy_compress_h.erl
@@ -71,9 +71,10 @@ early_error(StreamID, Reason, PartialReq, Resp, Opts) ->
%% Internal.
%% Check if the client supports decoding of gzip responses.
+%%
+%% A malformed accept-encoding header is ignored (no compression).
check_req(Req) ->
- %% @todo Probably shouldn't unconditionally crash on failure.
- case cowboy_req:parse_header(<<"accept-encoding">>, Req) of
+ try cowboy_req:parse_header(<<"accept-encoding">>, Req) of
%% Client doesn't support any compression algorithm.
undefined ->
#state{compress=undefined};
@@ -87,6 +88,9 @@ check_req(Req) ->
_ ->
#state{compress=gzip}
end
+ catch
+ _:_ ->
+ #state{compress=undefined}
end.
%% Do not compress responses that contain the content-encoding header.