aboutsummaryrefslogtreecommitdiffstats
path: root/src/cowboy_rest.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/cowboy_rest.erl')
-rw-r--r--src/cowboy_rest.erl15
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),