changeset 27477:bbf5c43e269a

Fix a leak of the queued_requests from purple_dnsquery_a. Patch from Aman "tmm1" Gupta. committer: Paul Aurich <paul@darkrain42.org>
author aman@tmm1.net
date Sat, 11 Jul 2009 21:28:58 +0000
parents 50effcb66953
children 75ef7eab4978
files COPYRIGHT ChangeLog libpurple/dnsquery.c
diffstat 3 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Sat Jul 11 20:48:21 2009 +0000
+++ b/COPYRIGHT	Sat Jul 11 21:28:58 2009 +0000
@@ -171,6 +171,7 @@
 Christian Grothoff
 Vladislav Guberinić
 Gideon N. Guillen
+Aman Gupta
 Christian Hammond
 Erick Hamness
 Fred Hampton
--- a/ChangeLog	Sat Jul 11 20:48:21 2009 +0000
+++ b/ChangeLog	Sat Jul 11 21:28:58 2009 +0000
@@ -30,6 +30,8 @@
 	* Don't do IPv6 address lookups if the computer does not have an IPv6
 	  address configured.
 	* Add support for receiving audio clips on MSN.
+	* Fix a leak when the UI provides its own DNS resolving UI op.
+	  (Aman Gupta)
 
 	AIM and ICQ:
 	* Preliminary support for a new authentication scheme called
@@ -45,7 +47,7 @@
 	* Correctly show tooltip status for contacts with status messages.
 	  (Krzysztof "kkszysiu" Klinikowski)
 	* Support for fetching buddy icons.  (Krzysztof "kkszysiu" Klinikowski)
-	* Support connection progress steps in Gadu-Gadu (Krzysztof "kkszysiu"
+	* Support connection progress steps in Gadu-Gadu.  (Krzysztof "kkszysiu"
 	  Klinikowski)
 
 	XMPP:
--- a/libpurple/dnsquery.c	Sat Jul 11 20:48:21 2009 +0000
+++ b/libpurple/dnsquery.c	Sat Jul 11 21:28:58 2009 +0000
@@ -77,6 +77,7 @@
 };
 
 static GSList *free_dns_children = NULL;
+/* TODO: Make me a GQueue when we require >= glib 2.4 */
 static GSList *queued_requests = NULL;
 
 static int number_of_dns_children = 0;
@@ -621,6 +622,8 @@
 		return FALSE;
 	}
 
+	queued_requests = g_slist_append(queued_requests, query_data);
+
 	handle_next_queued_request();
 
 	return FALSE;
@@ -650,8 +653,6 @@
 		g_return_val_if_reached(NULL);
 	}
 
-	queued_requests = g_slist_append(queued_requests, query_data);
-
 	purple_debug_info("dns", "DNS query for '%s' queued\n", query_data->hostname);
 
 	query_data->timeout = purple_timeout_add(0, resolve_host, query_data);