aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/callbacks.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/callbacks.c')
-rw-r--r--src/callbacks.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/callbacks.c b/src/callbacks.c
index 97ee52a..b96f8bc 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -780,7 +780,7 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) {
}
void
-cookie_handler_cb(SoupCookieJar *jar, SoupCookie *old_cookie, SoupCookie *new_cookie, gpointer user_data) {
+save_cookies_js(SoupCookieJar *jar, SoupCookie *old_cookie, SoupCookie *new_cookie, gpointer user_data) {
(void) jar;
(void) user_data;
(void) old_cookie;
@@ -796,3 +796,22 @@ cookie_handler_cb(SoupCookieJar *jar, SoupCookie *old_cookie, SoupCookie *new_co
g_string_free(s, TRUE);
}
}
+
+void
+save_cookies_http(SoupMessage *msg, gpointer user_data) {
+ (void) user_data;
+ GSList *ck;
+ char *cookie;
+
+ for(ck = soup_cookies_from_response(msg); ck; ck = ck->next){
+ cookie = soup_cookie_to_set_cookie_header(ck->data);
+ SoupURI *soup_uri = soup_message_get_uri(msg);
+ GString *s = g_string_new("");
+ g_string_printf(s, "PUT '%s' '%s' '%s' '%s'", soup_uri->scheme, soup_uri->host, soup_uri->path, cookie);
+ run_handler(uzbl.behave.cookie_handler, s->str);
+ g_free (cookie);
+ g_string_free(s, TRUE);
+ }
+
+ g_slist_free(ck);
+}