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

Cookie names are case sensitive

This should be more in line with what browsers are doing,
and will prevent errors due to failed expectations.
This commit is contained in:
Loïc Hoguin 2013-04-25 21:07:04 +02:00
parent a2f4703e5e
commit 61b3157ad1

View file

@ -157,8 +157,7 @@ cookie_name(Data = << C, _Rest/binary >>, Fun, Acc)
C =:= $\r; C =:= $\n; C =:= $\013; C =:= $\014 ->
Fun(Data, Acc);
cookie_name(<< C, Rest/binary >>, Fun, Acc) ->
C2 = cowboy_bstr:char_to_lower(C),
cookie_name(Rest, Fun, << Acc/binary, C2 >>).
cookie_name(Rest, Fun, << Acc/binary, C >>).
-spec cookie_value(binary(), fun()) -> any().
cookie_value(Data, Fun) ->
@ -1110,14 +1109,14 @@ cookie_list_test_() ->
{<<"name2">>, <<"value2">>}
]},
{<<"$Version=1; Customer=WILE_E_COYOTE; $Path=/acme">>, [
{<<"customer">>, <<"WILE_E_COYOTE">>}
{<<"Customer">>, <<"WILE_E_COYOTE">>}
]},
{<<"$Version=1; Customer=WILE_E_COYOTE; $Path=/acme; "
"Part_Number=Rocket_Launcher_0001; $Path=/acme; "
"Shipping=FedEx; $Path=/acme">>, [
{<<"customer">>, <<"WILE_E_COYOTE">>},
{<<"part_number">>, <<"Rocket_Launcher_0001">>},
{<<"shipping">>, <<"FedEx">>}
{<<"Customer">>, <<"WILE_E_COYOTE">>},
{<<"Part_Number">>, <<"Rocket_Launcher_0001">>},
{<<"Shipping">>, <<"FedEx">>}
]},
%% Potential edge cases (initially from Mochiweb).
{<<"foo=\\x">>, [{<<"foo">>, <<"\\x">>}]},