mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-14 20:30:23 +00:00
Remove unneeded whitespaces according to the HTTP spec
This commit is contained in:
parent
77b3562257
commit
a118f53c74
1 changed files with 13 additions and 52 deletions
|
@ -70,22 +70,13 @@ list(Data, Fun, Acc) ->
|
|||
media_range(Data, Fun) ->
|
||||
token_ci(Data,
|
||||
fun (_Rest, <<>>) -> {error, badarg};
|
||||
(Rest, Type) -> whitespace(Rest,
|
||||
fun (<< $/, Rest2/bits >>) -> whitespace(Rest2,
|
||||
fun (<<>>) -> {error, badarg};
|
||||
(Rest3) -> media_range_subtype(Rest3, Fun, Type)
|
||||
end);
|
||||
(_Rest2) -> {error, badarg}
|
||||
(<< $/, Rest/bits >>, Type) -> token_ci(Rest,
|
||||
fun (_Rest2, <<>>) -> {error, badarg};
|
||||
(Rest2, SubType) ->
|
||||
media_range_params(Rest2, Fun, Type, SubType, [])
|
||||
end)
|
||||
end).
|
||||
|
||||
-spec media_range_subtype(binary(), fun(), binary()) -> any().
|
||||
media_range_subtype(Data, Fun, Type) ->
|
||||
token_ci(Data,
|
||||
fun (_Rest, <<>>) -> {error, badarg};
|
||||
(Rest, SubType) -> media_range_params(Rest, Fun, Type, SubType, [])
|
||||
end).
|
||||
|
||||
-spec media_range_params(binary(), fun(), binary(), binary(),
|
||||
[{binary(), binary()}]) -> any().
|
||||
media_range_params(Data, Fun, Type, SubType, Acc) ->
|
||||
|
@ -103,18 +94,8 @@ media_range_params(Data, Fun, Type, SubType, Acc) ->
|
|||
media_range_param_attr(Data, Fun, Type, SubType, Acc) ->
|
||||
token_ci(Data,
|
||||
fun (_Rest, <<>>) -> {error, badarg};
|
||||
(Rest, Attr) ->
|
||||
whitespace(Rest,
|
||||
fun (<< $=, Rest2/bits >>) ->
|
||||
whitespace(Rest2,
|
||||
fun (<<>>) -> {error, badarg};
|
||||
(Rest3) ->
|
||||
media_range_param_value(Rest3, Fun,
|
||||
Type, SubType, Acc, Attr)
|
||||
end);
|
||||
(_Rest2) ->
|
||||
{error, badarg}
|
||||
end)
|
||||
(<< $=, Rest/bits >>, Attr) ->
|
||||
media_range_param_value(Rest, Fun, Type, SubType, Acc, Attr)
|
||||
end).
|
||||
|
||||
-spec media_range_param_value(binary(), fun(), binary(), binary(),
|
||||
|
@ -161,21 +142,12 @@ accept_ext(Data, Fun, Type, SubType, Params, Quality, Acc) ->
|
|||
accept_ext_attr(Data, Fun, Type, SubType, Params, Quality, Acc) ->
|
||||
token_ci(Data,
|
||||
fun (_Rest, <<>>) -> {error, badarg};
|
||||
(<< $=, Rest/bits >>, Attr) ->
|
||||
accept_ext_value(Rest, Fun, Type, SubType, Params,
|
||||
Quality, Acc, Attr);
|
||||
(Rest, Attr) ->
|
||||
whitespace(Rest,
|
||||
fun (<< $=, Rest2/bits >>) ->
|
||||
whitespace(Rest2,
|
||||
fun (<<>>) -> {error, badarg};
|
||||
(Rest3) ->
|
||||
accept_ext_value(Rest3, Fun,
|
||||
Type, SubType, Params,
|
||||
Quality, Acc, Attr)
|
||||
end);
|
||||
(Rest2) ->
|
||||
accept_ext(Rest2, Fun,
|
||||
Type, SubType, Params,
|
||||
Quality, [Attr|Acc])
|
||||
end)
|
||||
accept_ext(Rest, Fun, Type, SubType, Params,
|
||||
Quality, [Attr|Acc])
|
||||
end).
|
||||
|
||||
-spec accept_ext_value(binary(), fun(), binary(), binary(),
|
||||
|
@ -219,19 +191,8 @@ conneg(Data, Fun) ->
|
|||
|
||||
%% Parse a quality parameter string (for example q=0.500).
|
||||
-spec qparam(binary(), fun()) -> any().
|
||||
qparam(<< $q, Rest/bits >>, Fun) ->
|
||||
whitespace(Rest,
|
||||
fun (<< $=, Rest2/bits >>) ->
|
||||
whitespace(Rest2,
|
||||
fun (Rest3) ->
|
||||
qvalue(Rest3,
|
||||
fun (Rest4, Quality) ->
|
||||
Fun(Rest4, Quality)
|
||||
end)
|
||||
end);
|
||||
(_Rest2) ->
|
||||
{error, badarg}
|
||||
end).
|
||||
qparam(<< Q, $=, Data/bits >>, Fun) when Q =:= $q; Q =:= $Q ->
|
||||
qvalue(Data, Fun).
|
||||
|
||||
%% @doc Skip whitespace.
|
||||
-spec whitespace(binary(), fun()) -> any().
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue