From a3ccda57bcea0cfb23dd9229ca71672dcaca25a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Fri, 26 Dec 2014 12:05:57 +0100 Subject: Improve internal cow_http_hd function token_ci_list/2 We now ensure that the tokens are made of token characters only. --- src/cow_http_hd.erl | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/cow_http_hd.erl b/src/cow_http_hd.erl index d5f3803..b277292 100644 --- a/src/cow_http_hd.erl +++ b/src/cow_http_hd.erl @@ -2492,21 +2492,21 @@ token_ci_list(<<>>, Acc) -> lists:reverse(Acc); token_ci_list(<< $\s, R/bits >>, Acc) -> token_ci_list(R, Acc); token_ci_list(<< $\t, R/bits >>, Acc) -> token_ci_list(R, Acc); token_ci_list(<< $,, R/bits >>, Acc) -> token_ci_list(R, Acc); -token_ci_list(<< C, R/bits >>, Acc) -> +token_ci_list(<< C, R/bits >>, Acc) when ?IS_TOKEN(C) -> case C of - ?INLINE_LOWERCASE(token_ci_list, R, Acc, <<>>) + ?INLINE_LOWERCASE(token_ci, R, Acc, <<>>) end. -token_ci_list(<<>>, Acc, T) -> lists:reverse([T|Acc]); -token_ci_list(<< $\s, R/bits >>, Acc, T) -> token_ci_list_sep(R, Acc, T); -token_ci_list(<< $\t, R/bits >>, Acc, T) -> token_ci_list_sep(R, Acc, T); -token_ci_list(<< $,, R/bits >>, Acc, T) -> token_ci_list(R, [T|Acc]); -token_ci_list(<< C, R/bits >>, Acc, T) -> +token_ci(<<>>, Acc, T) -> lists:reverse([T|Acc]); +token_ci(<< $\s, R/bits >>, Acc, T) -> token_ci_list_sep(R, [T|Acc]); +token_ci(<< $\t, R/bits >>, Acc, T) -> token_ci_list_sep(R, [T|Acc]); +token_ci(<< $,, R/bits >>, Acc, T) -> token_ci_list(R, [T|Acc]); +token_ci(<< C, R/bits >>, Acc, T) when ?IS_TOKEN(C) -> case C of - ?INLINE_LOWERCASE(token_ci_list, R, Acc, T) + ?INLINE_LOWERCASE(token_ci, R, Acc, T) end. -token_ci_list_sep(<<>>, Acc, T) -> lists:reverse([T|Acc]); -token_ci_list_sep(<< $\s, R/bits >>, Acc, T) -> token_ci_list_sep(R, Acc, T); -token_ci_list_sep(<< $\t, R/bits >>, Acc, T) -> token_ci_list_sep(R, Acc, T); -token_ci_list_sep(<< $,, R/bits >>, Acc, T) -> token_ci_list(R, [T|Acc]). +token_ci_list_sep(<<>>, Acc) -> lists:reverse(Acc); +token_ci_list_sep(<< $\s, R/bits >>, Acc) -> token_ci_list_sep(R, Acc); +token_ci_list_sep(<< $\t, R/bits >>, Acc) -> token_ci_list_sep(R, Acc); +token_ci_list_sep(<< $,, R/bits >>, Acc) -> token_ci_list(R, Acc). -- cgit v1.2.3