0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 20:30:23 +00:00

Rename cowboy_http:charset/2 to conneg/2 and use it for Accept-Encoding

Sorry I apparently used an outdated RFC when I was doing this.
This commit is contained in:
Loïc Hoguin 2011-11-04 10:38:04 +01:00
parent 68c1d886e5
commit 77b3562257
2 changed files with 11 additions and 10 deletions

View file

@ -17,7 +17,7 @@
%% Parsing. %% Parsing.
-export([list/2, nonempty_list/2, -export([list/2, nonempty_list/2,
media_range/2, charset/2, media_range/2, conneg/2,
token/2, token_ci/2, quoted_string/2]). token/2, token_ci/2, quoted_string/2]).
%% Interpretation. %% Interpretation.
@ -196,23 +196,24 @@ accept_ext_value(Data, Fun, Type, SubType, Params, Quality, Acc, Attr) ->
Type, SubType, Params, Quality, [{Attr, Value}|Acc]) Type, SubType, Params, Quality, [{Attr, Value}|Acc])
end). end).
%% @doc Parse a charset, followed by an optional quality value. %% @doc Parse a conneg header (Accept-Charset, Accept-Encoding),
-spec charset(binary(), fun()) -> any(). %% followed by an optional quality value.
charset(Data, Fun) -> -spec conneg(binary(), fun()) -> any().
conneg(Data, Fun) ->
token_ci(Data, token_ci(Data,
fun (_Rest, <<>>) -> {error, badarg}; fun (_Rest, <<>>) -> {error, badarg};
(Rest, Charset) -> (Rest, Conneg) ->
whitespace(Rest, whitespace(Rest,
fun (<< $;, Rest2/bits >>) -> fun (<< $;, Rest2/bits >>) ->
whitespace(Rest2, whitespace(Rest2,
fun (Rest3) -> fun (Rest3) ->
qparam(Rest3, qparam(Rest3,
fun (Rest4, Quality) -> fun (Rest4, Quality) ->
Fun(Rest4, {Charset, Quality}) Fun(Rest4, {Conneg, Quality})
end) end)
end); end);
(Rest2) -> (Rest2) ->
Fun(Rest2, {Charset, 1000}) Fun(Rest2, {Conneg, 1000})
end) end)
end). end).
@ -339,7 +340,7 @@ nonempty_charset_list_test_() ->
{<<"unicode-1-1">>, 800} {<<"unicode-1-1">>, 800}
]} ]}
], ],
[{V, fun() -> R = nonempty_list(V, fun charset/2) end} || {V, R} <- Tests]. [{V, fun() -> R = nonempty_list(V, fun conneg/2) end} || {V, R} <- Tests].
nonempty_token_list_test_() -> nonempty_token_list_test_() ->
%% {Value, Result} %% {Value, Result}

View file

@ -219,12 +219,12 @@ parse_header(Name, Req, Default) when Name =:= 'Accept' ->
parse_header(Name, Req, Default) when Name =:= 'Accept-Charset' -> parse_header(Name, Req, Default) when Name =:= 'Accept-Charset' ->
parse_header(Name, Req, Default, parse_header(Name, Req, Default,
fun (Value) -> fun (Value) ->
cowboy_http:nonempty_list(Value, fun cowboy_http:charset/2) cowboy_http:nonempty_list(Value, fun cowboy_http:conneg/2)
end); end);
parse_header(Name, Req, Default) when Name =:= 'Accept-Encoding' -> parse_header(Name, Req, Default) when Name =:= 'Accept-Encoding' ->
parse_header(Name, Req, Default, parse_header(Name, Req, Default,
fun (Value) -> fun (Value) ->
cowboy_http:list(Value, fun cowboy_http:token_ci/2) cowboy_http:list(Value, fun cowboy_http:conneg/2)
end); end);
parse_header(Name, Req, Default) when Name =:= 'Connection' -> parse_header(Name, Req, Default) when Name =:= 'Connection' ->
parse_header(Name, Req, Default, parse_header(Name, Req, Default,