summaryrefslogtreecommitdiff
path: root/libpurple/proxy.c
diff options
context:
space:
mode:
authorMike Ruprecht <cmaiku@gmail.com>2016-08-27 18:37:48 -0500
committerMike Ruprecht <cmaiku@gmail.com>2016-08-27 18:37:48 -0500
commitb9a087a13f77fb5a1e85ac89c38e039b28842a87 (patch)
tree1a076a7b2f38a87c6478b4adf385ccf20114133e /libpurple/proxy.c
parent1962e83b27e9e4a911b15beffba27e1b9ef99910 (diff)
downloadpidgin-b9a087a13f77fb5a1e85ac89c38e039b28842a87.tar.gz
proxy: Use new purple_gio_socket_client_new() helper function
Diffstat (limited to 'libpurple/proxy.c')
-rw-r--r--libpurple/proxy.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/libpurple/proxy.c b/libpurple/proxy.c
index 722fac5a16..9c52da296f 100644
--- a/libpurple/proxy.c
+++ b/libpurple/proxy.c
@@ -34,6 +34,7 @@
#include "ntlm.h"
#include "prefs.h"
#include "proxy.h"
+#include "purple-gio.h"
#include "util.h"
#include <gio/gio.h>
@@ -759,8 +760,8 @@ purple_proxy_connect(void *handle, PurpleAccount *account,
PurpleProxyConnectFunction connect_cb, gpointer data)
{
PurpleProxyConnectData *connect_data;
- GProxyResolver *resolver;
GSocketClient *client;
+ GError *error = NULL;
g_return_val_if_fail(host != NULL, NULL);
g_return_val_if_fail(port > 0, NULL);
@@ -775,20 +776,21 @@ purple_proxy_connect(void *handle, PurpleAccount *account,
connect_data->port = port;
connect_data->gpi = purple_proxy_get_setup(account);
- resolver = purple_proxy_get_proxy_resolver(account);
+ client = purple_gio_socket_client_new(account, &error);
+
+ if (client == NULL) {
+ /* Assume it's a proxy error */
+ purple_notify_error(NULL, NULL, _("Invalid proxy settings"),
+ error->message,
+ purple_request_cpar_from_account(account));
+ g_clear_error(&error);
- if (resolver == NULL) {
- /* purple_proxy_get_proxy_resolver already has debug output */
purple_proxy_connect_data_destroy(connect_data);
return NULL;
}
connect_data->cancellable = g_cancellable_new();
- client = g_socket_client_new();
- g_socket_client_set_proxy_resolver(client, resolver);
- g_object_unref(resolver);
-
purple_debug_info("proxy", "Attempting connection to %s:%u\n",
host, port);
@@ -951,8 +953,8 @@ purple_proxy_connect_socks5_account(void *handle, PurpleAccount *account,
gpointer data)
{
PurpleProxyConnectData *connect_data;
- GProxyResolver *resolver;
GSocketClient *client;
+ GError *error = NULL;
g_return_val_if_fail(host != NULL, NULL);
g_return_val_if_fail(port >= 0, NULL);
@@ -967,23 +969,21 @@ purple_proxy_connect_socks5_account(void *handle, PurpleAccount *account,
connect_data->port = port;
connect_data->gpi = gpi;
- /* If there is an account proxy, use it to connect to the desired SOCKS5
- * proxy.
- */
- resolver = purple_proxy_get_proxy_resolver(account);
+ client = purple_gio_socket_client_new(account, &error);
+
+ if (client == NULL) {
+ /* Assume it's a proxy error */
+ purple_notify_error(NULL, NULL, _("Invalid proxy settings"),
+ error->message,
+ purple_request_cpar_from_account(account));
+ g_clear_error(&error);
- if (resolver == NULL) {
- /* purple_proxy_get_proxy_resolver already has debug output */
purple_proxy_connect_data_destroy(connect_data);
return NULL;
}
connect_data->cancellable = g_cancellable_new();
- client = g_socket_client_new();
- g_socket_client_set_proxy_resolver(client, resolver);
- g_object_unref(resolver);
-
purple_debug_info("proxy",
"Connecting to %s:%d via %s:%d using SOCKS5\n",
connect_data->host, connect_data->port,