0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 12:40:25 +00:00

update cowboy_http_rest:variances/2

Fix pattern in case statement that was intended
to strip away the first comma separating the
values in the variance header.

Update generation of variance list to use more
idiomatic erlang. Pattern match on list structure
over using erlang:length/1 to compute length.
This commit is contained in:
Magnus Klaar 2011-12-11 19:57:07 +01:00
parent 168405830d
commit 2644a6cacc

View file

@ -398,20 +398,20 @@ not_acceptable(Req, State) ->
%% @todo Does the order matter? %% @todo Does the order matter?
variances(Req, State=#state{content_types_p=CTP, variances(Req, State=#state{content_types_p=CTP,
languages_p=LP, charsets_p=CP}) -> languages_p=LP, charsets_p=CP}) ->
Variances = case length(CTP) of Variances = case CTP of
0 -> []; [] -> [];
1 -> []; [_] -> [];
_NCT -> [<<"Accept">>] [_|_] -> [<<"Accept">>]
end, end,
Variances2 = case length(LP) of Variances2 = case LP of
0 -> Variances; [] -> Variances;
1 -> Variances; [_] -> Variances;
_NL -> [<<"Accept-Language">>|Variances] [_|_] -> [<<"Accept-Language">>|Variances]
end, end,
Variances3 = case length(CP) of Variances3 = case CP of
0 -> Variances2; [] -> Variances2;
1 -> Variances2; [_] -> Variances2;
_NC -> [<<"Accept-Charset">>|Variances2] [_|_] -> [<<"Accept-Charset">>|Variances2]
end, end,
{Variances4, Req3, State2} = case call(Req, State, variances) of {Variances4, Req3, State2} = case call(Req, State, variances) of
no_call -> no_call ->
@ -420,12 +420,12 @@ variances(Req, State=#state{content_types_p=CTP,
{Variances3 ++ HandlerVariances, Req2, {Variances3 ++ HandlerVariances, Req2,
State#state{handler_state=HandlerState}} State#state{handler_state=HandlerState}}
end, end,
case lists:flatten([[<<", ">>, V] || V <- Variances4]) of case [[<<", ">>, V] || V <- Variances4] of
[] -> [] ->
resource_exists(Req3, State2); resource_exists(Req3, State2);
[<<", ">>, Variances5] -> [[<<", ">>, H]|Variances5] ->
{ok, Req4} = cowboy_http_req:set_resp_header( {ok, Req4} = cowboy_http_req:set_resp_header(
<<"Variances">>, Variances5, Req3), <<"Variances">>, [H|Variances5], Req3),
resource_exists(Req4, State2) resource_exists(Req4, State2)
end. end.