summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Sales de Andrade <qulogic@pidgin.im>2019-10-10 02:38:04 -0400
committerElliott Sales de Andrade <qulogic@pidgin.im>2019-10-10 02:38:04 -0400
commit160920c37957bc30f3e5fca7bdb45a47d2553222 (patch)
treecd70510c11aad3b186d8b7fb8669a0aa25166cbe
parent4e359657ac68f526bdbaac277cee4a375942d1d6 (diff)
downloadpidgin-160920c37957bc30f3e5fca7bdb45a47d2553222.tar.gz
Pass correct proxy resolver to Facebook soup session.
-rw-r--r--libpurple/protocols/facebook/api.c6
-rw-r--r--libpurple/protocols/facebook/api.h4
-rw-r--r--libpurple/protocols/facebook/data.c7
-rw-r--r--libpurple/protocols/facebook/data.h4
-rw-r--r--libpurple/protocols/facebook/facebook.c12
5 files changed, 22 insertions, 11 deletions
diff --git a/libpurple/protocols/facebook/api.c b/libpurple/protocols/facebook/api.c
index c9e3d5ff29..1cb37a0fcc 100644
--- a/libpurple/protocols/facebook/api.c
+++ b/libpurple/protocols/facebook/api.c
@@ -522,10 +522,8 @@ static void
fb_api_init(FbApi *api)
{
FbApiPrivate *priv = fb_api_get_instance_private(api);
-
api->priv = priv;
- priv->cons = soup_session_new();
priv->msgs = g_queue_new();
priv->data = g_hash_table_new_full(g_direct_hash, g_direct_equal,
NULL, NULL);
@@ -1948,7 +1946,7 @@ fb_api_cb_mqtt_publish(FbMqtt *mqtt, const gchar *topic, GByteArray *pload,
}
FbApi *
-fb_api_new(PurpleConnection *gc)
+fb_api_new(PurpleConnection *gc, GProxyResolver *resolver)
{
FbApi *api;
FbApiPrivate *priv;
@@ -1957,6 +1955,8 @@ fb_api_new(PurpleConnection *gc)
priv = api->priv;
priv->gc = gc;
+ priv->cons = soup_session_new_with_options(SOUP_SESSION_PROXY_RESOLVER,
+ resolver, NULL);
priv->mqtt = fb_mqtt_new(gc);
g_signal_connect(priv->mqtt,
diff --git a/libpurple/protocols/facebook/api.h b/libpurple/protocols/facebook/api.h
index fd02053a9c..780c8f0489 100644
--- a/libpurple/protocols/facebook/api.h
+++ b/libpurple/protocols/facebook/api.h
@@ -551,14 +551,14 @@ fb_api_error_quark(void);
/**
* fb_api_new:
* @gc: The #PurpleConnection.
+ * @resolver: The proxy resolver to use from the account.
*
* Creates a new #FbApi. The returned #FbApi should be freed with
* #g_object_unref() when no longer needed.
*
* Returns: The new #FbApi.
*/
-FbApi *
-fb_api_new(PurpleConnection *gc);
+FbApi *fb_api_new(PurpleConnection *gc, GProxyResolver *resolver);
/**
* fb_api_rehash:
diff --git a/libpurple/protocols/facebook/data.c b/libpurple/protocols/facebook/data.c
index e8c12310cd..67d2c45291 100644
--- a/libpurple/protocols/facebook/data.c
+++ b/libpurple/protocols/facebook/data.c
@@ -125,7 +125,6 @@ fb_data_init(FbData *fata)
FbDataPrivate *priv = fb_data_get_instance_private(fata);
fata->priv = priv;
- priv->cons = soup_session_new();
priv->msgs = g_queue_new();
priv->imgs = g_hash_table_new_full(g_direct_hash, g_direct_equal,
@@ -167,7 +166,7 @@ fb_data_image_init(FbDataImage *img)
}
FbData *
-fb_data_new(PurpleConnection *gc)
+fb_data_new(PurpleConnection *gc, GProxyResolver *resolver)
{
FbData *fata;
FbDataPrivate *priv;
@@ -175,7 +174,9 @@ fb_data_new(PurpleConnection *gc)
fata = g_object_new(FB_TYPE_DATA, NULL);
priv = fata->priv;
- priv->api = fb_api_new(gc);
+ priv->cons = soup_session_new_with_options(SOUP_SESSION_PROXY_RESOLVER,
+ resolver, NULL);
+ priv->api = fb_api_new(gc, resolver);
priv->gc = gc;
return fata;
diff --git a/libpurple/protocols/facebook/data.h b/libpurple/protocols/facebook/data.h
index b93e9618ab..9a2a687a22 100644
--- a/libpurple/protocols/facebook/data.h
+++ b/libpurple/protocols/facebook/data.h
@@ -83,14 +83,14 @@ typedef void (*FbDataImageFunc) (FbDataImage *img, GError *error);
/**
* fb_data_new:
* @gc: The #PurpleConnection.
+ * @resolver: The proxy resolver to use from the account.
*
* Creates a new #FbData. The returned #FbData should be freed with
* #g_object_unref() when no longer needed.
*
* Returns: The new #FbData.
*/
-FbData *
-fb_data_new(PurpleConnection *gc);
+FbData *fb_data_new(PurpleConnection *gc, GProxyResolver *resolver);
/**
* fb_data_load:
diff --git a/libpurple/protocols/facebook/facebook.c b/libpurple/protocols/facebook/facebook.c
index 69c095546a..6889142091 100644
--- a/libpurple/protocols/facebook/facebook.c
+++ b/libpurple/protocols/facebook/facebook.c
@@ -994,10 +994,20 @@ fb_login(PurpleAccount *acct)
FbData *fata;
gpointer convh;
PurpleConnection *gc;
+ GProxyResolver *resolver;
+ GError *error = NULL;
gc = purple_account_get_connection(acct);
- fata = fb_data_new(gc);
+ resolver = purple_proxy_get_proxy_resolver(acct, &error);
+ if (resolver == NULL) {
+ fb_util_debug_error("Unable to get account proxy resolver: %s",
+ error->message);
+ purple_connection_g_error(gc, error);
+ return;
+ }
+
+ fata = fb_data_new(gc, resolver);
api = fb_data_get_api(fata);
convh = purple_conversations_get_handle();
purple_connection_set_protocol_data(gc, fata);