diff options
author | Evgeny Grablyk <evgeny.grablyk@gmail.com> | 2009-05-05 23:16:43 +0300 |
---|---|---|
committer | Evgeny Grablyk <evgeny.grablyk@gmail.com> | 2009-05-05 23:16:43 +0300 |
commit | 12b0591ed2b5c65574eda699cbf5396bf89e8940 (patch) | |
tree | cb2efcbc55a0e5d14beac5ce79a3eeb5f3eb9e3e /uzbl.c | |
parent | cc3a1419a12c01c2cabd87da99cc4464f715d196 (diff) |
Implement saving cookies
Diffstat (limited to 'uzbl.c')
-rw-r--r-- | uzbl.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -862,7 +862,8 @@ settings_init () { static void handle_cookies (SoupSession *session, SoupMessage *msg, gpointer user_data){ - soup_message_add_header_handler(msg, "got-headers", "Set-Cookie", G_CALLBACK(save_cookies)); + soup_message_add_header_handler(msg, "got-headers", "Set-Cookie", G_CALLBACK(save_cookies), NULL); + /* ask handler for cookies, if there are any, use soup_message_headers_replace (msg->request_headers, "Cookie", cookies); @@ -873,7 +874,17 @@ static void handle_cookies (SoupSession *session, static void save_cookies (SoupMessage *msg, gpointer user_data){ - /* give them to handler */ + GSList *ck; + char *req, *cookie; + for (ck = soup_cookies_from_response(msg); ck; ck = ck->next){ + cookie = soup_cookie_to_set_cookie_header(ck->data); + req = malloc(strlen(cookie) + 10); + sprintf(req, "PUT \"%s\"", cookie); + run_command_async(cookie_handler, req); + free(req); + free(cookie); + } + g_slist_free(ck); } int |