Sessioncookies made persistant.

This commit is contained in:
Enno Boland (tox) 2009-10-17 12:41:40 +02:00
parent 8eb2392442
commit e9ee0940b7
2 changed files with 18 additions and 2 deletions

View file

@ -4,8 +4,10 @@ static char *progress = "#FF0000";
static char *progress_trust = "#00FF00"; static char *progress_trust = "#00FF00";
static char *stylefile = ".surf/style.css"; static char *stylefile = ".surf/style.css";
static char *scriptfile = ".surf/script.js"; static char *scriptfile = ".surf/script.js";
static char *cookiefile = ".surf/cookie.txt"; static char *cookiefile = ".surf/cookies.txt";
static char *dldir = ".surf/dl"; static char *dldir = ".surf/dl";
static time_t sessiontime = 3600;
#define MODKEY GDK_CONTROL_MASK #define MODKEY GDK_CONTROL_MASK
static Key keys[] = { static Key keys[] = {
/* modifier keyval function arg Focus */ /* modifier keyval function arg Focus */

16
surf.c
View file

@ -630,8 +630,22 @@ reload(Client *c, const Arg *arg) {
void void
reloadcookie(void) { reloadcookie(void) {
GSList *p, *l;
SoupCookie *c;
SoupSession *s; 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 */ /* This forces the cookie to be written to hdd */
s = webkit_get_default_session(); s = webkit_get_default_session();
soup_session_remove_feature(s, SOUP_SESSION_FEATURE(cookiejar)); soup_session_remove_feature(s, SOUP_SESSION_FEATURE(cookiejar));
@ -670,7 +684,7 @@ setup(void) {
dpy = GDK_DISPLAY(); dpy = GDK_DISPLAY();
session = webkit_get_default_session(); session = webkit_get_default_session();
uriprop = XInternAtom(dpy, "_SURF_uri", False); uriprop = XInternAtom(dpy, "_SURF_URI", False);
/* create dirs and files */ /* create dirs and files */
cookiefile = buildpath(cookiefile); cookiefile = buildpath(cookiefile);