diff libpurple/protocols/jabber/jabber.c @ 27794:eb2d17945ce3

jabber: Store the "own JabberBuddy" in the JabberStream* struct. This simplifies the roster code a little (don't need to recalculate our own JID for string comparisons) and fixes a few FIXMEs in buddy.c.
author Paul Aurich <paul@darkrain42.org>
date Sat, 01 Aug 2009 22:12:30 +0000
parents 478a3866ea90
children 0af4b1fb0566 fb99a0067812
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c	Sat Aug 01 21:45:24 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Sat Aug 01 22:12:30 2009 +0000
@@ -132,7 +132,6 @@
 		xmlnode *jid;
 		char *full_jid;
 		if((jid = xmlnode_get_child(bind, "jid")) && (full_jid = xmlnode_get_data(jid))) {
-			JabberBuddy *my_jb;
 			jabber_id_free(js->user);
 
 			js->user = jabber_id_new(full_jid);
@@ -144,9 +143,8 @@
 				return;
 			}
 
-			my_jb = jabber_buddy_find(js, full_jid, TRUE);
-			if (my_jb)
-				my_jb->subscription |= JABBER_SUB_BOTH;
+			js->user_jb = jabber_buddy_find(js, full_jid, TRUE);
+			js->user_jb->subscription |= JABBER_SUB_BOTH;
 
 			purple_connection_set_display_name(js->gc, full_jid);
 
@@ -781,7 +779,6 @@
 {
 	PurpleConnection *gc = purple_account_get_connection(account);
 	JabberStream *js;
-	JabberBuddy *my_jb;
 	PurplePresence *presence;
 	gchar *user;
 	gchar *slash;
@@ -816,9 +813,9 @@
 	js->buddies = g_hash_table_new_full(g_str_hash, g_str_equal,
 			g_free, (GDestroyNotify)jabber_buddy_free);
 
-	my_jb = jabber_buddy_find(js, user, TRUE);
+	js->user_jb = jabber_buddy_find(js, user, TRUE);
 	g_free(user);
-	if (!my_jb) {
+	if (!js->user_jb) {
 		/* This basically *can't* fail, but for good measure... */
 		purple_connection_error_reason(gc,
 			PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
@@ -827,7 +824,7 @@
 		g_return_val_if_reached(NULL);
 	}
 
-	my_jb->subscription |= JABBER_SUB_BOTH;
+	js->user_jb->subscription |= JABBER_SUB_BOTH;
 
 	js->iq_callbacks = g_hash_table_new_full(g_str_hash, g_str_equal,
 			g_free, g_free);