Remove some async lookups that accidentally got left in from my first run at this use-gresolver

Sun, 20 Dec 2015 13:54:34 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Sun, 20 Dec 2015 13:54:34 -0600
branch
use-gresolver
changeset 37464
8785324c1740
parent 37463
cb6655acabec
child 37465
2b3189543b1f

Remove some async lookups that accidentally got left in from my first run at this

libpurple/network.c file | annotate | diff | comparison | revisions
--- a/libpurple/network.c	Fri Dec 18 22:44:26 2015 -0600
+++ b/libpurple/network.c	Sun Dec 20 13:54:34 2015 -0600
@@ -977,38 +977,27 @@
 
 #endif
 
-static GInetAddress *
-purple_network_ip_lookup(const gchar *hostname) {
+static void
+purple_network_ip_lookup_cb(GObject *sender, GAsyncResult *result, gpointer data) {
 	GError *error = NULL;
-	GList *addresses =NULL, *l = NULL;
+	GList *addresses = NULL;
 	GInetAddress *address = NULL;
+	const gchar **ip_address = (const gchar **)data;
 
-	addresses = g_resolver_lookup_by_name(g_resolver_get_default(), hostname, NULL, &error);
-
-	if(addresses == NULL) {
+	addresses = g_resolver_lookup_by_name_finish(g_resolver_get_default(), result, &error);
+	if(error) {
 		purple_debug_info("network", "lookup of IP address failed: %s\n", error->message);
 
 		g_error_free(error);
 
-		return NULL;
+		return;
 	}
 
-	for(l = addresses; l; l = l->next) {
-		address = G_INET_ADDRESS(l->data);
+	address = G_INET_ADDRESS(addresses->data);
 
-		if(!g_inet_address_get_is_loopback(address) && !g_inet_address_get_is_link_local(address)) {
-			break;
-		}
-
-		address = NULL;
-	}
-
-	if(address != NULL)
-		g_object_ref(G_OBJECT(address));
+	*ip_address = g_inet_address_to_string(address);
 
 	g_resolver_free_addresses(addresses);
-
-	return address;
 }
 
 void
@@ -1016,17 +1005,11 @@
 {
 	if (stun_server && stun_server[0] != '\0') {
 		if (purple_network_is_available()) {
-			GInetAddress *address = NULL;
-
-			purple_debug_info("network", "running DNS query for STUN server\n");
-
-			address = purple_network_ip_lookup(stun_server);
-
-			if(address != NULL) {
-				stun_ip = g_inet_address_to_string(address);
-
-				g_object_unref(G_OBJECT(address));
-			}
+			g_resolver_lookup_by_name_async(g_resolver_get_default(),
+			                                stun_server,
+			                                NULL,
+			                                purple_network_ip_lookup_cb,
+			                                &stun_ip);
 		} else {
 			purple_debug_info("network",
 				"network is unavailable, don't try to update STUN IP");
@@ -1042,17 +1025,11 @@
 {
 	if (turn_server && turn_server[0] != '\0') {
 		if (purple_network_is_available()) {
-			GInetAddress *address = NULL;
-
-			purple_debug_info("network", "running DNS query for TURN server\n");
-
-			address = purple_network_ip_lookup(turn_server);
-
-			if(address != NULL) {
-				turn_ip = g_inet_address_to_string(address);
-
-				g_object_unref(G_OBJECT(address));
-			}
+			g_resolver_lookup_by_name_async(g_resolver_get_default(),
+			                                turn_server,
+			                                NULL,
+			                                purple_network_ip_lookup_cb,
+			                                &turn_server);
 		} else {
 			purple_debug_info("network",
 				"network is unavailable, don't try to update TURN IP");

mercurial