Change XMPP http connection set to a SoupSession.

Wed, 09 Oct 2019 03:34:56 -0400

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Wed, 09 Oct 2019 03:34:56 -0400
changeset 40003
d1230b2f2a80
parent 40002
f08d87a438c2
child 40004
cad626ba45b2

Change XMPP http connection set to a SoupSession.

libpurple/protocols/jabber/jabber.c file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/jabber.h file | annotate | diff | comparison | revisions
libpurple/protocols/jabber/tests/meson.build file | annotate | diff | comparison | revisions
--- a/libpurple/protocols/jabber/jabber.c	Wed Oct 02 00:01:17 2019 -0400
+++ b/libpurple/protocols/jabber/jabber.c	Wed Oct 09 03:34:56 2019 -0400
@@ -954,16 +954,28 @@
 jabber_stream_new(PurpleAccount *account)
 {
 	PurpleConnection *gc = purple_account_get_connection(account);
+	GProxyResolver *resolver;
+	GError *error;
 	JabberStream *js;
 	PurplePresence *presence;
 	gchar *user;
 	gchar *slash;
 
+	resolver = purple_proxy_get_proxy_resolver(account, &error);
+	if (resolver == NULL) {
+		purple_debug_error("jabber", "Unable to get account proxy resolver: %s",
+		                   error->message);
+		g_error_free(error);
+		return NULL;
+	}
+
 	js = g_new0(JabberStream, 1);
 	purple_connection_set_protocol_data(gc, js);
 	js->gc = gc;
 	js->fd = -1;
-	js->http_conns = purple_http_connection_set_new();
+	js->http_conns = soup_session_new_with_options(SOUP_SESSION_PROXY_RESOLVER,
+	                                               resolver, NULL);
+	g_object_unref(resolver);
 
 	/* we might want to expose this at some point */
 	js->cancellable = g_cancellable_new();
@@ -1681,7 +1693,10 @@
 		js->bs_proxies = g_list_delete_link(js->bs_proxies, js->bs_proxies);
 	}
 
-	purple_http_connection_set_destroy(js->http_conns);
+	if (js->http_conns) {
+		soup_session_abort(js->http_conns);
+		g_object_unref(js->http_conns);
+	}
 
 	g_free(js->stream_id);
 	if(js->user)
--- a/libpurple/protocols/jabber/jabber.h	Wed Oct 02 00:01:17 2019 -0400
+++ b/libpurple/protocols/jabber/jabber.h	Wed Oct 09 03:34:56 2019 -0400
@@ -59,6 +59,7 @@
 #include <glib.h>
 #include <gmodule.h>
 #include <gio/gio.h>
+#include <libsoup/soup.h>
 
 #include "attention.h"
 #include "circularbuffer.h"
@@ -278,7 +279,7 @@
 
 	PurpleJabberBOSHConnection *bosh;
 
-	PurpleHttpConnectionSet *http_conns;
+	SoupSession *http_conns;
 
 	/* keep a hash table of JingleSessions */
 	GHashTable *sessions;
--- a/libpurple/protocols/jabber/tests/meson.build	Wed Oct 02 00:01:17 2019 -0400
+++ b/libpurple/protocols/jabber/tests/meson.build	Wed Oct 09 03:34:56 2019 -0400
@@ -2,7 +2,7 @@
 	e = executable(
 	    'test_jabber_' + prog, 'test_jabber_@0@.c'.format(prog),
 	    link_with : [jabber_prpl],
-	    dependencies : [libxml, libpurple_dep, glib])
+	    dependencies : [libxml, libpurple_dep, libsoup, glib])
 
 	test('jabber_' + prog, e)
 endforeach

mercurial