comparison libpurple/protocols/msn/session.c @ 20432:703fc3437ab5

Store account specific settings in the account, not in some random blist node that happens to be on this account (!!!)
author Stu Tomlinson <stu@nosnilmot.com>
date Sat, 26 May 2007 15:07:26 +0000
parents 0f6747c5dcc2
children df8f443ae65f
comparison
equal deleted inserted replaced
20431:67cda4e0dac8 20432:703fc3437ab5
257 } 257 }
258 258
259 swboard->flag |= flag; 259 swboard->flag |= flag;
260 260
261 return swboard; 261 return swboard;
262 }
263
264 /*setup the bnode, for MSN SOAP contact/address book op*/
265 void
266 msn_session_set_bnode(MsnSession *session)
267 {
268 PurpleBlistNode *gnode, *cnode, *bnode;
269 PurpleConnection *gc = purple_account_get_connection(session->account);
270
271 g_return_if_fail(gc != NULL);
272
273 /* The core used to use msn_add_buddy to add all buddies before
274 * being logged in. This no longer happens, so we manually iterate
275 * over the whole buddy list to identify sync issues. */
276 for (gnode = purple_get_blist()->root; gnode; gnode = gnode->next)
277 {
278 if(!PURPLE_BLIST_NODE_IS_GROUP(gnode))
279 continue;
280 for(cnode = gnode->child; cnode; cnode = cnode->next) {
281 if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode))
282 continue;
283 for(bnode = cnode->child; bnode; bnode = bnode->next) {
284 PurpleBuddy *b;
285 if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
286 continue;
287 b = (PurpleBuddy *)bnode;
288 if(b->account == gc->account){
289 session->bnode = bnode;
290 return;
291 }
292 }
293 }
294 }
295 session->bnode = NULL;
296 }
297
298 /*get bnode*/
299 PurpleBlistNode *
300 msn_session_get_bnode(MsnSession *session)
301 {
302 #if 1
303 return session->bnode;
304 #else
305 return purple_get_blist()->root;
306 #endif
307 } 262 }
308 263
309 static void 264 static void
310 msn_session_sync_users(MsnSession *session) 265 msn_session_sync_users(MsnSession *session)
311 { 266 {