diff libpurple/protocols/jabber/jabber.c @ 25039:9f8951284a2e

* small bugfix in jabber_ipc_add_feature()
author Tobias Markmann <tfar@soc.pidgin.im>
date Sun, 03 Aug 2008 22:21:49 +0000
parents 7768cad83127
children 1cbe5a9f6efb ba362a67278c
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c	Sun Aug 03 13:48:59 2008 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Sun Aug 03 22:21:49 2008 +0000
@@ -528,7 +528,7 @@
 	JabberStream *js = gc->proto_data;
 	int n;
 	
-	if (results > 0) {
+	if (results == 0) {
 		gchar *tmp;
 		tmp = g_strdup_printf(_("Could not find alternative XMPP connection methods after failing to connect directly.\n"));
 		purple_connection_error_reason (gc,
@@ -537,7 +537,15 @@
 	}
 	
 	for (n = 0; n < results; n++) {
-		purple_debug_info("dnssrv","TXT RDATA: %s\n", resp[n].content);	
+		gchar **token;
+		token = g_strsplit(resp[n].content, "=", 2);
+		if (!strcmp(token[0], "_xmpp-client-xbosh")) {
+			purple_debug_info("jabber","Found alternative connection method using %s at %s.\n", token[0], token[1]);
+			js->bosh.url = g_strdup(token[1]);
+			g_strfreev(token);
+			break;
+		}
+		g_strfreev(token);
 	}
 }
 
@@ -2484,7 +2492,7 @@
 	if (!caps_info) return FALSE;
 	capabilities = g_hash_table_lookup(capstable, caps_info);
 	
-	if (g_list_find(capabilities->features, feature) == NULL) return FALSE ;
+	if (g_list_find_custom(capabilities->features, feature, strcmp) == NULL) return FALSE ;
 	return TRUE;
 }