--- a/libpurple/http.c Wed Dec 30 19:55:07 2015 -0600
+++ b/libpurple/http.c Thu Jan 21 20:54:54 2016 +1300
@@ -24,8 +24,10 @@
#include "purple-socket.h"
@@ -1990,7 +1992,7 @@
while (g_hash_table_iter_next(&it, (gpointer*)&key,
- if (cookie->expires != -1 && cookie->expires <= now)
+ if (cookie->expires != -1 && cookie->expires != 0 && cookie->expires <= now) g_string_append_printf(str, "%s=%s; ", key, cookie->value);
@@ -2003,7 +2005,17 @@
void purple_http_cookie_jar_set(PurpleHttpCookieJar *cookie_jar,
const gchar *name, const gchar *value)
- purple_http_cookie_jar_set_ext(cookie_jar, name, value, -1);
+ gchar *escaped_name = g_strdup(purple_url_encode(name)); + gchar *escaped_value = NULL; + escaped_value = g_strdup(purple_url_encode(value)); + purple_http_cookie_jar_set_ext(cookie_jar, escaped_name, escaped_value, -1); static void purple_http_cookie_jar_set_ext(PurpleHttpCookieJar *cookie_jar,
@@ -2012,7 +2024,7 @@
g_return_if_fail(cookie_jar != NULL);
g_return_if_fail(name != NULL);
- if (expires != -1 && time(NULL) >= expires)
+ if (expires != -1 && expires != 0 && time(NULL) >= expires) @@ -2023,7 +2035,7 @@
g_hash_table_remove(cookie_jar->tab, name);
-const gchar * purple_http_cookie_jar_get(PurpleHttpCookieJar *cookie_jar,
+gchar * purple_http_cookie_jar_get(PurpleHttpCookieJar *cookie_jar, PurpleHttpCookie *cookie;
@@ -2035,7 +2047,7 @@
+ return g_strdup(purple_url_decode(cookie->value)); gchar * purple_http_cookie_jar_dump(PurpleHttpCookieJar *cjar)
--- a/libpurple/http.h Wed Dec 30 19:55:07 2015 -0600
+++ b/libpurple/http.h Thu Jan 21 20:54:54 2016 +1300
@@ -463,9 +463,11 @@
+ * The result must be g_free'd. * Returns: Cookie contents, or NULL, if cookie doesn't exists.
-const gchar * purple_http_cookie_jar_get(PurpleHttpCookieJar *cookie_jar,
+gchar * purple_http_cookie_jar_get(PurpleHttpCookieJar *cookie_jar,