changeset 24226:21caa58da895

merge of '27f7d38af8dba617aba8109d82e27907cd7d8b41' and 'a712e9bb2bed4b456e81ad7236c65b4ad8eab69a'
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 21 Oct 2008 16:16:40 +0000
parents 9ee331d042c8 (diff) 1ccc28c2613a (current diff)
children a4a7084ee09d
files
diffstat 2 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/proxy.c	Tue Oct 21 02:47:17 2008 +0000
+++ b/libpurple/proxy.c	Tue Oct 21 16:16:40 2008 +0000
@@ -2152,6 +2152,8 @@
 			break;
 
 		default:
+			purple_debug_error("proxy", "Invalid Proxy type (%d) specified.\n",
+							   purple_proxy_info_get_type(connect_data->gpi));
 			purple_proxy_connect_data_destroy(connect_data);
 			return NULL;
 	}
@@ -2160,6 +2162,7 @@
 			connectport, connection_host_resolved, connect_data);
 	if (connect_data->query_data == NULL)
 	{
+		purple_debug_error("proxy", "dns query failed unexpectedly.\n");
 		purple_proxy_connect_data_destroy(connect_data);
 		return NULL;
 	}
--- a/libpurple/util.c	Tue Oct 21 02:47:17 2008 +0000
+++ b/libpurple/util.c	Tue Oct 21 16:16:40 2008 +0000
@@ -3979,6 +3979,13 @@
 					     callback, user_data);
 }
 
+static gboolean
+url_fetch_connect_failed(gpointer data)
+{
+	url_fetch_connect_cb(data, -1, "");
+	return FALSE;
+}
+
 PurpleUtilFetchUrlData *
 purple_util_fetch_url_request_len(const char *url, gboolean full,
 		const char *user_agent, gboolean http11,
@@ -4016,9 +4023,8 @@
 
 	if (gfud->connect_data == NULL)
 	{
-		purple_util_fetch_url_error(gfud, _("Unable to connect to %s"),
-				gfud->website.address);
-		return NULL;
+		/* Trigger the connect_cb asynchronously. */
+		purple_timeout_add(10, url_fetch_connect_failed, gfud);
 	}
 
 	return gfud;