diff options
author | Enno Boland (tox) <tox@s01.de> | 2009-10-17 12:41:40 +0200 |
---|---|---|
committer | Enno Boland (tox) <tox@s01.de> | 2009-10-17 12:41:40 +0200 |
commit | e9ee0940b7552f087dc3377f160f5c0800045a36 (patch) | |
tree | 6dbb5a18b3baf23eb5ad635cc5960947aec8c238 | |
parent | 8eb2392442450127a834ed01de05f9f5c3bcad9e (diff) | |
download | surf-e9ee0940b7552f087dc3377f160f5c0800045a36.tar.gz surf-e9ee0940b7552f087dc3377f160f5c0800045a36.tar.bz2 surf-e9ee0940b7552f087dc3377f160f5c0800045a36.zip |
Sessioncookies made persistant.
-rw-r--r-- | config.def.h | 4 | ||||
-rw-r--r-- | surf.c | 18 |
2 files changed, 19 insertions, 3 deletions
diff --git a/config.def.h b/config.def.h index 152300f..c51ae98 100644 --- a/config.def.h +++ b/config.def.h @@ -4,8 +4,10 @@ static char *progress = "#FF0000"; static char *progress_trust = "#00FF00"; static char *stylefile = ".surf/style.css"; static char *scriptfile = ".surf/script.js"; -static char *cookiefile = ".surf/cookie.txt"; +static char *cookiefile = ".surf/cookies.txt"; static char *dldir = ".surf/dl"; +static time_t sessiontime = 3600; + #define MODKEY GDK_CONTROL_MASK static Key keys[] = { /* modifier keyval function arg Focus */ @@ -630,8 +630,22 @@ reload(Client *c, const Arg *arg) { void reloadcookie(void) { + GSList *p, *l; + SoupCookie *c; SoupSession *s; - + SoupDate *e; + + e = soup_date_new_from_time_t(time(NULL) + sessiontime); + for(l = p = soup_cookie_jar_all_cookies(cookiejar); p; p = p->next) { + c = (SoupCookie *)l->data; + if(c->expires == NULL) { + soup_cookie_set_expires(c, e); + soup_cookie_jar_add_cookie(cookiejar, + soup_cookie_copy(c)); + } + } + soup_cookies_free(l); + soup_date_free(e); /* This forces the cookie to be written to hdd */ s = webkit_get_default_session(); soup_session_remove_feature(s, SOUP_SESSION_FEATURE(cookiejar)); @@ -670,7 +684,7 @@ setup(void) { dpy = GDK_DISPLAY(); session = webkit_get_default_session(); - uriprop = XInternAtom(dpy, "_SURF_uri", False); + uriprop = XInternAtom(dpy, "_SURF_URI", False); /* create dirs and files */ cookiefile = buildpath(cookiefile); |