diff options
author | Rob <rob.manea@gmail.com> | 2010-03-22 15:36:30 +0100 |
---|---|---|
committer | Rob <rob.manea@gmail.com> | 2010-03-22 15:36:30 +0100 |
commit | b8855c1490a95bb16463b8bf83302fafdf00d869 (patch) | |
tree | 5b6aa4ab5603cff9d06805b59e8b61f4b63bd0c6 /src/callbacks.c | |
parent | f406fcdfa4c9ace7fe01e29f6845c70e0fa195c9 (diff) | |
parent | b15176878a1779f8a603797bce5d379770e8fe32 (diff) |
Merge branch 'jscookies' of git://git.cssx.ch/forks/uzbl into experimental
Conflicts:
src/callbacks.c
src/callbacks.h
Diffstat (limited to 'src/callbacks.c')
-rw-r--r-- | src/callbacks.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/callbacks.c b/src/callbacks.c index 344740b..1f0dd73 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -823,3 +823,41 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) { } } } + +void +save_cookies_js(SoupCookieJar *jar, SoupCookie *old_cookie, SoupCookie *new_cookie, gpointer user_data) { + (void) jar; + (void) user_data; + (void) old_cookie; + char *scheme; + GString *s; + + if(new_cookie != NULL) { + scheme = (new_cookie->secure == TRUE) ? "https" : "http"; + + s = g_string_new(""); + g_string_printf(s, "PUT '%s' '%s' '%s' '%s=%s'", scheme, new_cookie->domain, new_cookie->path, new_cookie->name, new_cookie->value); + run_handler(uzbl.behave.cookie_handler, s->str); + 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); +} + |