pidgin: e550112b: Fix DNS resolution. I think I broke thi...

markdoliner at markdoliner at
Tue Sep 16 19:40:52 EDT 2008

Revision: e550112b97817b0eafc647bd8c0adddf2a262a62
Ancestor: 7aaca1d66aee8c4f1b292b419d8527c11fe85072
Author: markdoliner at
Date: 2008-09-16T23:37:36
Branch: im.pidgin.pidgin

Modified files:


Fix DNS resolution.  I think I broke this this morning in my revision
3ffe6fd197f037185a0012875ef68c8f6d6c2f89.  I changed us to not
free the child DNS resolvers, but also to not re-use them.  So it would
do 4 dns requests then just sit around waiting forever.  Now resolvers
are added to the list of idle resolvers after they're done resolving.

-------------- next part --------------
--- libpurple/dnsquery.c	1eea218d0ea86bb61dffb89b1897d4f0f3cea8a4
+++ libpurple/dnsquery.c	e784d0240fbe55bc56419baf455cce1e160e4034
@@ -108,12 +108,14 @@ purple_dnsquery_resolved(PurpleDnsQueryD
-	 * Set the resolver to NULL so that it doesn't get killed so that
-	 * it sits around waiting for additional DNS requests for a few
-	 * seconds longer.
+	 * Add the resolver to the list of available resolvers, and set it
+	 * to NULL so that it doesn't get destroyed along with the query_data
+	free_dns_children = g_slist_prepend(free_dns_children, query_data->resolver);
 	query_data->resolver = NULL;

More information about the Commits mailing list