From 4e1d981a7c8a83cb951118b4398fe4135259335a Mon Sep 17 00:00:00 2001 From: "David N. Welton" Date: Wed, 27 Mar 2013 12:13:20 +0100 Subject: [PATCH] Fix header handling: Expires should be set elsewhere, and header values for files should not be discarded. --- .../mochiweb_response_bridge.erl | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/mochiweb_bridge_modules/mochiweb_response_bridge.erl b/src/mochiweb_bridge_modules/mochiweb_response_bridge.erl index 04f5f39..ba3f225 100644 --- a/src/mochiweb_bridge_modules/mochiweb_response_bridge.erl +++ b/src/mochiweb_bridge_modules/mochiweb_response_bridge.erl @@ -11,33 +11,33 @@ init({Req,DocRoot}) -> {Req,DocRoot}. -build_response({Req, DocRoot}, Res) -> +build_response({Req, DocRoot}, Res) -> % Some values... - Code = Res#response.statuscode, - case Res#response.data of - {data, Body} -> + Code = Res#response.statuscode, - % Assemble headers... - Headers = lists:flatten([ - [{X#header.name, X#header.value} || X <- Res#response.headers], - [create_cookie_header(X) || X <- Res#response.cookies] - ]), + %% Assemble headers... + Headers = lists:flatten([ + [{X#header.name, X#header.value} || X <- Res#response.headers], + [create_cookie_header(X) || X <- Res#response.cookies] + ]), - % Ensure content type... - F = fun(Key) -> lists:keymember(Key, 1, Headers) end, - HasContentType = lists:any(F, ["content-type", "Content-Type", "CONTENT-TYPE"]), - Headers2 = case HasContentType of - true -> Headers; - false -> [{"Content-Type", "text/html"}|Headers] - end, + %% Ensure content type... + F = fun(Key) -> + lists:keymember(Key, 1, Headers) + end, + HasContentType = lists:any(F, ["content-type", "Content-Type", "CONTENT-TYPE"]), + Headers2 = case HasContentType of + true -> Headers; + false -> [{"Content-Type", "text/html"}|Headers] + end, + case Res#response.data of + {data, Body} -> % Send the mochiweb response... Req:respond({Code, Headers2, Body}); {file, Path} -> - ExpireDate = simple_bridge_util:expires(years, 10), %% Create the response telling Mochiweb to serve the file... - Headers = [{"Expires", ExpireDate}], - Req:serve_file(tl(Path), DocRoot, Headers) + Req:serve_file(tl(Path), DocRoot, Headers2) end. create_cookie_header(Cookie) ->