Mercurial > pidgin
diff libpurple/protocols/silc/ops.c @ 26994:1fcd09c34fee
Use purple_find_buddies() instead of iterating the buddy list.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Mon, 01 Jun 2009 04:02:10 +0000 |
parents | 8d562557ed6f |
children | f541583e31bd |
line wrap: on
line diff
--- a/libpurple/protocols/silc/ops.c Mon Jun 01 03:34:02 2009 +0000 +++ b/libpurple/protocols/silc/ops.c Mon Jun 01 04:02:10 2009 +0000 @@ -839,7 +839,7 @@ b = NULL; if (public_key) { - PurpleBlistNode *gnode, *cnode, *bnode; + GSList *buddies; const char *f; pk = silc_pkcs_public_key_encode(public_key, &pk_len); @@ -857,29 +857,13 @@ silc_free(pk); /* Find buddy by associated public key */ - for (gnode = purple_blist_get_root(); gnode; - gnode = purple_blist_node_get_sibling_next(gnode)) { - if (!PURPLE_BLIST_NODE_IS_GROUP(gnode)) - continue; - for (cnode = purple_blist_node_get_first_child(gnode); - cnode; - cnode = purple_blist_node_get_sibling_next(cnode)) { - if( !PURPLE_BLIST_NODE_IS_CONTACT(cnode)) - continue; - for (bnode = purple_blist_node_get_first_child(cnode); - bnode; - bnode = purple_blist_node_get_sibling_next(bnode)) { - if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode)) - continue; - b = (PurpleBuddy *)bnode; - if (purple_buddy_get_account(b) != account) - continue; - f = purple_blist_node_get_string(bnode, "public-key"); - if (f && !strcmp(f, buf)) - goto cont; - b = NULL; - } - } + for (buddies = purple_find_buddies(account, NULL); buddies; + buddies = g_slist_delete_link(buddies, buddies)) { + b = buddies->data; + f = purple_blist_node_get_string(PURPLE_BLIST_NODE(b), "public-key"); + if (purple_strequal(f, buf)) + goto cont; + b = NULL; } } cont: