changeset 17886:7c79957207c3

Fixed a few bugs in the caps implementation, it should work properly now.
author Andreas Monitzer <pidgin@monitzer.com>
date Wed, 27 Jun 2007 03:56:30 +0000
parents b8de63d3bf89
children 233af7fe561c
files libpurple/protocols/jabber/caps.c
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/jabber/caps.c	Wed Jun 27 03:23:52 2007 +0000
+++ b/libpurple/protocols/jabber/caps.c	Wed Jun 27 03:56:30 2007 +0000
@@ -274,12 +274,13 @@
 	}
 	
 	for(iter = ext; iter; iter = g_list_next(iter)) {
-		const char *ext = iter->data;
-		JabberCapsValueExt *extinfo = g_hash_table_lookup(caps->ext,ext);
+		const char *extname = iter->data;
+		JabberCapsValueExt *extinfo = g_hash_table_lookup(caps->ext,extname);
 		
 		if(extinfo) {
-			for(iter = extinfo->identities; iter; iter = g_list_next(iter)) {
-				JabberCapsIdentity *id = iter->data;
+			GList *iter2;
+			for(iter2 = extinfo->identities; iter2; iter2 = g_list_next(iter2)) {
+				JabberCapsIdentity *id = iter2->data;
 				JabberCapsIdentity *newid = g_new0(JabberCapsIdentity, 1);
 				newid->category = g_strdup(id->category);
 				newid->type = g_strdup(id->type);
@@ -287,8 +288,8 @@
 				
 				result->identities = g_list_append(result->identities,newid);
 			}
-			for(iter = extinfo->features; iter; iter = g_list_next(iter)) {
-				const char *feat = iter->data;
+			for(iter2 = extinfo->features; iter2; iter2 = g_list_next(iter2)) {
+				const char *feat = iter2->data;
 				char *newfeat = g_strdup(feat);
 				
 				result->features = g_list_append(result->features,newfeat);
@@ -445,7 +446,7 @@
 	for(iter = userdata->ext; iter; iter = g_list_next(iter)) {
 		JabberIq *iq = jabber_iq_new_query(js,JABBER_IQ_GET,"http://jabber.org/protocol/disco#info");
 		xmlnode *query = xmlnode_get_child_with_namespace(iq->node,"query","http://jabber.org/protocol/disco#info");
-		char *node = g_strdup_printf("%s#%s", node, (const char*)iter->data);
+		char *node = g_strdup_printf("%s#%s", userdata->node, (const char*)iter->data);
 		xmlnode_set_attrib(query, "node", node);
 		g_free(node);
 		xmlnode_set_attrib(iq->node, "to", userdata->who);