[Xfce4-commits] <midori:master> Only update expiry of cookies if higher than maximum
Christian Dywan
noreply at xfce.org
Sun Oct 3 07:18:02 CEST 2010
Updating branch refs/heads/master
to 28eb039ec053687b56dbea83aefc556556980d02 (commit)
from 3c7d4800bc84530955ac0d4c35455661b690bbfb (commit)
commit 28eb039ec053687b56dbea83aefc556556980d02
Author: Christian Dywan <christian at twotoasts.de>
Date: Sun Oct 3 06:13:55 2010 +0200
Only update expiry of cookies if higher than maximum
Also assume 0 days to really mean 1 hour, and set the
maximum age accordingly. Otherwise SoupCookie thinks
that these cookies expire immediately.
katze/katze-http-cookies.c | 31 +++++++++++++++++++++----------
1 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/katze/katze-http-cookies.c b/katze/katze-http-cookies.c
index dc33efc..9a38d74 100644
--- a/katze/katze-http-cookies.c
+++ b/katze/katze-http-cookies.c
@@ -247,8 +247,6 @@ cookie_jar_changed_cb (SoupCookieJar* jar,
if (new_cookie)
{
- FILE *out;
-
settings = g_object_get_data (G_OBJECT (jar), "midori-settings");
accept_cookies = katze_object_get_enum (settings, "accept-cookies");
if (accept_cookies == 2 /* MIDORI_ACCEPT_COOKIES_NONE */)
@@ -263,14 +261,27 @@ cookie_jar_changed_cb (SoupCookieJar* jar,
else if (new_cookie->expires)
{
gint age = katze_object_get_int (settings, "maximum-cookie-age");
- soup_cookie_set_max_age (new_cookie,
- age * SOUP_COOKIE_MAX_AGE_ONE_DAY);
-
- if (!(out = fopen (filename, "a")))
- return;
- write_cookie (out, new_cookie);
- if (fclose (out) != 0)
- return;
+ if (age > 0)
+ {
+ FILE *out;
+ SoupDate* max_date = soup_date_new_from_now (
+ age * SOUP_COOKIE_MAX_AGE_ONE_DAY);
+ if (soup_date_to_time_t (new_cookie->expires)
+ > soup_date_to_time_t (max_date))
+ soup_cookie_set_expires (new_cookie, max_date);
+
+ if (!(out = fopen (filename, "a")))
+ return;
+ write_cookie (out, new_cookie);
+ if (fclose (out) != 0)
+ return;
+ }
+ else
+ {
+ /* An age of 0 to SoupCookie means already-expired
+ A user choosing 0 days probably expects 1 hour. */
+ soup_cookie_set_max_age (new_cookie, SOUP_COOKIE_MAX_AGE_ONE_HOUR);
+ }
}
}
}
More information about the Xfce4-commits
mailing list