Blame erlang-cowlib-0004-Fix-handling-of-default-values-in-cookie-options.patch

adeb5bb
From: Krzysztof Jurewicz <krzysztof.jurewicz@gmail.com>
adeb5bb
Date: Tue, 21 Jul 2015 11:10:47 +0200
adeb5bb
Subject: [PATCH] Fix handling of default values in cookie options
adeb5bb
MIME-Version: 1.0
adeb5bb
Content-Type: text/plain; charset=UTF-8
adeb5bb
Content-Transfer-Encoding: 8bit
adeb5bb
adeb5bb
Previously, an error would be raised when explicitly passing a default
adeb5bb
value for either “http_only” or “secure” option.
adeb5bb
adeb5bb
diff --git a/src/cow_cookie.erl b/src/cow_cookie.erl
adeb5bb
index 150efeb..b31a528 100644
adeb5bb
--- a/src/cow_cookie.erl
adeb5bb
+++ b/src/cow_cookie.erl
adeb5bb
@@ -197,10 +197,12 @@ setcookie(Name, Value, Opts) ->
adeb5bb
 	end,
adeb5bb
 	SecureBin = case lists:keyfind(secure, 1, Opts) of
adeb5bb
 		false -> <<>>;
adeb5bb
+		{_, false} -> <<>>;
adeb5bb
 		{_, true} -> <<"; Secure">>
adeb5bb
 	end,
adeb5bb
 	HttpOnlyBin = case lists:keyfind(http_only, 1, Opts) of
adeb5bb
 		false -> <<>>;
adeb5bb
+		{_, false} -> <<>>;
adeb5bb
 		{_, true} -> <<"; HttpOnly">>
adeb5bb
 	end,
adeb5bb
 	[Name, <<"=">>, Value, <<"; Version=1">>,
adeb5bb
@@ -218,6 +220,12 @@ setcookie_test_() ->
adeb5bb
 			[{path, <<"/acme">>}],
adeb5bb
 			<<"Customer=WILE_E_COYOTE; Version=1; Path=/acme">>},
adeb5bb
 		{<<"Customer">>, <<"WILE_E_COYOTE">>,
adeb5bb
+			[{secure, true}],
adeb5bb
+			<<"Customer=WILE_E_COYOTE; Version=1; Secure">>},
adeb5bb
+		{<<"Customer">>, <<"WILE_E_COYOTE">>,
adeb5bb
+			[{secure, false}, {http_only, false}],
adeb5bb
+			<<"Customer=WILE_E_COYOTE; Version=1">>},
adeb5bb
+		{<<"Customer">>, <<"WILE_E_COYOTE">>,
adeb5bb
 			[{path, <<"/acme">>}, {badoption, <<"negatory">>}],
adeb5bb
 			<<"Customer=WILE_E_COYOTE; Version=1; Path=/acme">>}
adeb5bb
 	],