From 4bd5846d409f183e16301ee34f113ffb9f82967f Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 6 Oct 2017 13:15:47 +0200 Subject: [PATCH] More fix in mod_http_fileserver to log URLs with/out query elements (#2021) --- src/mod_http_fileserver.erl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/mod_http_fileserver.erl b/src/mod_http_fileserver.erl index 73423d6a7..f34936724 100644 --- a/src/mod_http_fileserver.erl +++ b/src/mod_http_fileserver.erl @@ -436,7 +436,7 @@ add_to_log(File, FileSize, Code, Request) -> IP = ip_to_string(element(1, Request#request.ip)), Path = join(Request#request.path, "/"), Query = case stringify_query(Request#request.q) of - [] -> + <<"">> -> ""; String -> [$? | String] @@ -456,11 +456,13 @@ add_to_log(File, FileSize, Code, Request) -> FileSize, Referer, UserAgent]). stringify_query(Q) -> - join( - lists:map(fun(E) -> - lists:concat([binary_to_list(element(1, E)), "=", binary_to_list(element(2, E))]) - end, Q), - "&"). + stringify_query(Q, []). +stringify_query([], Res) -> + join(lists:reverse(Res), "&"); +stringify_query([{nokey, _B} | Q], Res) -> + stringify_query(Q, Res); +stringify_query([{A, B} | Q], Res) -> + stringify_query(Q, [join([A,B], "=") | Res]). find_header(Header, Headers, Default) -> case lists:keysearch(Header, 1, Headers) of