surf

surf browser, a WebKit based browser
git clone git://git.suckless.org/surf
Log | Files | Refs | README | LICENSE

commit e9ee0940b7552f087dc3377f160f5c0800045a36
parent 8eb2392442450127a834ed01de05f9f5c3bcad9e
Author: Enno Boland (tox) <tox@s01.de>
Date:   Sat, 17 Oct 2009 12:41:40 +0200

Sessioncookies made persistant.
Diffstat:
Mconfig.def.h | 4+++-
Msurf.c | 18++++++++++++++++--
2 files changed, 19 insertions(+), 3 deletions(-)

diff --git 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 */ diff --git a/surf.c b/surf.c @@ -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);