diff options
author | Elliott Sales de Andrade <qulogic@pidgin.im> | 2019-10-10 02:38:04 -0400 |
---|---|---|
committer | Elliott Sales de Andrade <qulogic@pidgin.im> | 2019-10-10 02:38:04 -0400 |
commit | 160920c37957bc30f3e5fca7bdb45a47d2553222 (patch) | |
tree | cd70510c11aad3b186d8b7fb8669a0aa25166cbe | |
parent | 4e359657ac68f526bdbaac277cee4a375942d1d6 (diff) | |
download | pidgin-160920c37957bc30f3e5fca7bdb45a47d2553222.tar.gz |
Pass correct proxy resolver to Facebook soup session.
-rw-r--r-- | libpurple/protocols/facebook/api.c | 6 | ||||
-rw-r--r-- | libpurple/protocols/facebook/api.h | 4 | ||||
-rw-r--r-- | libpurple/protocols/facebook/data.c | 7 | ||||
-rw-r--r-- | libpurple/protocols/facebook/data.h | 4 | ||||
-rw-r--r-- | libpurple/protocols/facebook/facebook.c | 12 |
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); |