diff options
Diffstat (limited to 'src/cowboy_rest.erl')
-rw-r--r-- | src/cowboy_rest.erl | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/cowboy_rest.erl b/src/cowboy_rest.erl index 0913b26..ecbe7bc 100644 --- a/src/cowboy_rest.erl +++ b/src/cowboy_rest.erl @@ -45,7 +45,7 @@ language_a :: undefined | binary(), %% Charset. - charsets_p = [] :: [{binary(), integer()}], + charsets_p = [] :: [binary()], charset_a :: undefined | binary(), %% Whether the resource exists. @@ -412,8 +412,7 @@ charsets_provided(Req, State) -> cowboy_req:parse_header(<<"accept-charset">>, Req2), case AcceptCharset of undefined -> - set_content_type(Req3, State2#state{ - charset_a=element(1, hd(CP))}); + set_content_type(Req3, State2#state{charset_a=hd(CP)}); AcceptCharset -> AcceptCharset2 = prioritize_charsets(AcceptCharset), choose_charset(Req3, State2, AcceptCharset2) @@ -433,7 +432,11 @@ prioritize_charsets(AcceptCharsets) -> end, AcceptCharsets), case lists:keymember(<<"*">>, 1, AcceptCharsets2) of true -> AcceptCharsets2; - false -> [{<<"iso-8859-1">>, 1000}|AcceptCharsets2] + false -> + case lists:keymember(<<"iso-8859-1">>, 1, AcceptCharsets2) of + true -> AcceptCharsets2; + false -> [{<<"iso-8859-1">>, 1000}|AcceptCharsets2] + end end. choose_charset(Req, State, []) -> @@ -443,7 +446,7 @@ choose_charset(Req, State=#state{charsets_p=CP}, [Charset|Tail]) -> match_charset(Req, State, Accept, [], _Charset) -> choose_charset(Req, State, Accept); -match_charset(Req, State, _Accept, [{Provided, _}|_], {Provided, _}) -> +match_charset(Req, State, _Accept, [Provided|_], {Provided, _}) -> set_content_type(Req, State#state{charset_a=Provided}); match_charset(Req, State, Accept, [_|Tail], Charset) -> match_charset(Req, State, Accept, Tail, Charset). @@ -848,7 +851,7 @@ process_content_type(Req, State=#state{method=Method, {false, Req2, HandlerState2} -> State2 = State#state{handler_state=HandlerState2}, respond(Req2, State2, 422); - {ResURL, Req2, HandlerState2} when Method =:= <<"POST">> -> + {{true, ResURL}, Req2, HandlerState2} when Method =:= <<"POST">> -> State2 = State#state{handler_state=HandlerState2}, Req3 = cowboy_req:set_resp_header( <<"location">>, ResURL, Req2), |