From 84aea5d24d9e3bdcfc336da02d906bd33dfe0b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 19 Nov 2018 12:15:40 +0100 Subject: Silence expected errors from the static_handler test suite --- src/cowboy_static.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/cowboy_static.erl') diff --git a/src/cowboy_static.erl b/src/cowboy_static.erl index 29ac809..19c15c2 100644 --- a/src/cowboy_static.erl +++ b/src/cowboy_static.erl @@ -120,7 +120,7 @@ init_dir(Req, Path, HowToAccess, Extra) when is_list(Path) -> init_dir(Req, Path, HowToAccess, Extra) -> Dir = fullpath(filename:absname(Path)), PathInfo = cowboy_req:path_info(Req), - Filepath = filename:join([Dir|[escape_reserved(P, <<>>) || P <- PathInfo]]), + Filepath = filename:join([Dir|escape_reserved(PathInfo)]), Len = byte_size(Dir), case fullpath(Filepath) of << Dir:Len/binary, $/, _/binary >> -> @@ -131,6 +131,9 @@ init_dir(Req, Path, HowToAccess, Extra) -> {cowboy_rest, Req, error} end. +escape_reserved([]) -> []; +escape_reserved([P|Tail]) -> [escape_reserved(P, <<>>)|escape_reserved(Tail)]. + %% We escape the slash found in path segments because %% a segment corresponds to a directory entry, and %% therefore those slashes are expected to be part of @@ -315,7 +318,7 @@ forbidden(Req, State) -> -spec content_types_provided(Req, State) -> {[{binary(), get_file}], Req, State} when State::state(). -content_types_provided(Req, State={Path, _, Extra}) -> +content_types_provided(Req, State={Path, _, Extra}) when is_list(Extra) -> case lists:keyfind(mimetypes, 1, Extra) of false -> {[{cow_mimetypes:web(Path), get_file}], Req, State}; -- cgit v1.2.3