# Optional features
config_h.set('USE_OPENSSL', get_option('with-ssl'))
-config_h.set('USE_LIBPROXY', get_option('with-libproxy'))
config_h.set('USE_LIBCANBERRA', get_option('with-libcanberra'))
config_h.set('USE_DBUS', get_option('with-dbus'))
config_h.set('USE_PLUGIN', get_option('with-plugin'))
option('with-dbus', type: 'boolean',
description: 'Support used for single-instance and scripting interface, Unix only'
)
-option('with-libproxy', type: 'boolean',
- description: 'Support for getting proxy information, Unix only'
-)
option('with-libnotify', type: 'boolean',
description: 'Support for freedesktop notifications, Unix only'
)
#include <glib-object.h> /* for g_type_init() */
#endif
-#ifdef USE_LIBPROXY
-#include <proxy.h>
-#endif
-
GSList *popup_list = 0;
GSList *button_list = 0;
GSList *dlgbutton_list = 0;
struct session *current_sess = 0;
struct hexchatprefs prefs;
-#ifdef USE_LIBPROXY
-pxProxyFactory *libproxy_factory;
-#endif
-
/*
* Update the priority queue of the "interesting sessions"
* (sess_list_by_lastact).
hexchat_remote ();
#endif
-#ifdef USE_LIBPROXY
- libproxy_factory = px_proxy_factory_new ();
-#endif
-
#ifdef WIN32
coinit_result = CoInitializeEx (NULL, COINIT_APARTMENTTHREADED);
if (SUCCEEDED (coinit_result))
}
#endif
-#ifdef USE_LIBPROXY
- px_proxy_factory_free (libproxy_factory);
-#endif
-
#ifdef WIN32
WSACleanup ();
#endif
common_deps += libssl_dep
endif
-if get_option('with-libproxy')
- common_deps += dependency('libproxy-1.0')
-endif
-
if get_option('with-libcanberra')
common_deps += dependency('libcanberra', version: '>= 0.22')
endif
#include "ssl.h"
#endif
-#ifdef USE_LIBPROXY
-#include <proxy.h>
-#endif
-
#ifdef USE_OPENSSL
/* local variables */
static struct session *g_sess = NULL;
static int server_cleanup (server * serv);
static void server_connect (server *serv, char *hostname, int port, int no_login);
-#ifdef USE_LIBPROXY
-extern pxProxyFactory *libproxy_factory;
-#endif
+static void
+write_error (char *message, GError **error)
+{
+ if (error == NULL || *error == NULL) {
+ return;
+ }
+ g_printerr ("%s: %s\n", message, (*error)->message);
+ g_clear_error (error);
+}
/* actually send to the socket. This might do a character translation or
send via SSL. server/dcc both use this function. */
if (!serv->dont_use_proxy) /* blocked in serverlist? */
{
-#ifdef USE_LIBPROXY
if (prefs.hex_net_proxy_type == 5)
{
char **proxy_list;
char *url, *proxy;
+ GProxyResolver *resolver;
+ GError *error = NULL;
+ resolver = g_proxy_resolver_get_default ();
url = g_strdup_printf ("irc://%s:%d", hostname, port);
- proxy_list = px_proxy_factory_get_proxies (libproxy_factory, url);
+ proxy_list = g_proxy_resolver_lookup (resolver, url, NULL, &error);
if (proxy_list) {
/* can use only one */
proxy_type = 3;
else if (!strncmp (proxy, "socks", 5))
proxy_type = 2;
+ } else {
+ write_error ("Failed to lookup proxy", &error);
}
if (proxy_type) {
g_strfreev (proxy_list);
g_free (url);
}
-#endif
+
if (prefs.hex_net_proxy_host[0] &&
prefs.hex_net_proxy_type > 0 &&
prefs.hex_net_proxy_use != 2) /* proxy is NOT dcc-only */
N_("SOCKS4"),
N_("SOCKS5"),
N_("HTTP"),
-#ifdef USE_LIBPROXY
N_("Auto"),
-#endif
NULL
};