/pidgin/main: 33f8691a69df: proxy: don't use default resolver if...

Jakub Adam <[email protected]> Wed, 24 Aug 2016 11:55:22 -0400
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: 33f8691a69dfba6cc67d2cea660232763b729f4d
Author:	 Jakub Adam <[email protected]>
Date:	 2016-07-29 10:08 +0200
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/33f8691a69df

Description:

proxy: don't use default resolver if direct connection is wanted

It isn't guaranteed g_proxy_resolver_get_default() always returns
an object that resolves on a direct, proxyless, connection, which one
would expect from PURPLE_PROXY_NONE setting. In its effect the current
implementation makes impossible for the user to with certainty disable
proxy in libpurple.

Create a GSimpleProxyResolver with an empty default_proxy instead. Such
a resolver will always resolve on 'direct://' proxy.

diffstat:

 libpurple/proxy.c |  8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diffs (18 lines):

diff --git a/libpurple/proxy.c b/libpurple/proxy.c
--- a/libpurple/proxy.c
+++ b/libpurple/proxy.c
@@ -1038,11 +1038,9 @@ purple_proxy_get_proxy_resolver(PurpleAc
 	GProxyResolver *resolver;
 
 	if (purple_proxy_info_get_proxy_type(info) == PURPLE_PROXY_NONE) {
-		/* Return the default proxy which, if it doesn't support any
-		 * further system proxy settings than purple_proxy_get_setup()
-		 * detects, will end up as direct connections as intended.
-		 */
-		return g_object_ref(g_proxy_resolver_get_default());
+		/* Return an empty simple resolver, which will resolve on direct
+		 * connection. */
+		return g_simple_proxy_resolver_new(NULL, NULL);
 	}
 
 	switch (purple_proxy_info_get_proxy_type(info))

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits