summaryrefslogtreecommitdiff
path: root/libpurple/protocols/msn/contact.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpurple/protocols/msn/contact.c')
-rw-r--r--libpurple/protocols/msn/contact.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/libpurple/protocols/msn/contact.c b/libpurple/protocols/msn/contact.c
index c1a511c551..fd01527c3b 100644
--- a/libpurple/protocols/msn/contact.c
+++ b/libpurple/protocols/msn/contact.c
@@ -527,16 +527,20 @@ msn_get_contact_list_cb(MsnSoapMessage *req, MsnSoapMessage *resp,
g_return_if_fail(session != NULL);
if (resp != NULL) {
+#ifdef MSN_PARTIAL_LISTS
const char *abLastChange;
const char *dynamicItemLastChange;
+#endif
purple_debug_misc("msn", "Got the contact list!\n");
msn_parse_contact_list(session, resp->xml);
+#ifdef MSN_PARTIAL_LISTS
abLastChange = purple_account_get_string(session->account,
"ablastChange", NULL);
dynamicItemLastChange = purple_account_get_string(session->account,
- "dynamicItemLastChange", NULL);
+ "DynamicItemLastChanged", NULL);
+#endif
if (state->partner_scenario == MSN_PS_INITIAL) {
#ifdef MSN_PARTIAL_LISTS
@@ -684,20 +688,20 @@ msn_parse_addressbook_contacts(MsnSession *session, xmlnode *node)
xmlnode *annotation;
MsnUser *user;
- if (!(contactId = xmlnode_get_child(contactNode,"contactId"))
- || !(contactInfo = xmlnode_get_child(contactNode, "contactInfo"))
- || !(contactType = xmlnode_get_child(contactInfo, "contactType")))
- continue;
-
g_free(passport);
g_free(Name);
- g_free(alias);
g_free(uid);
g_free(type);
g_free(mobile_number);
+ g_free(alias);
passport = Name = uid = type = mobile_number = alias = NULL;
mobile = FALSE;
+ if (!(contactId = xmlnode_get_child(contactNode,"contactId"))
+ || !(contactInfo = xmlnode_get_child(contactNode, "contactInfo"))
+ || !(contactType = xmlnode_get_child(contactInfo, "contactType")))
+ continue;
+
uid = xmlnode_get_data(contactId);
type = xmlnode_get_data(contactType);
@@ -836,6 +840,7 @@ msn_parse_addressbook_contacts(MsnSession *session, xmlnode *node)
g_free(uid);
g_free(type);
g_free(mobile_number);
+ g_free(alias);
}
static gboolean
@@ -885,7 +890,7 @@ msn_parse_addressbook(MsnSession *session, xmlnode *node)
msn_parse_addressbook_groups(session, groups);
}
- /*add a default No group to set up the no group Membership*/
+ /* Add an "Other Contacts" group for buddies who aren't in a group */
msn_group_new(session->userlist, MSN_INDIVIDUALS_GROUP_ID,
MSN_INDIVIDUALS_GROUP_NAME);
purple_debug_misc("msn", "AB group_id:%s name:%s\n",
@@ -895,7 +900,7 @@ msn_parse_addressbook(MsnSession *session, xmlnode *node)
purple_blist_add_group(g, NULL);
}
- /*add a default No group to set up the no group Membership*/
+ /* Add a "Non-IM Contacts" group */
msn_group_new(session->userlist, MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME);
purple_debug_misc("msn", "AB group_id:%s name:%s\n", MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME);
if ((purple_find_group(MSN_NON_IM_GROUP_NAME)) == NULL) {
@@ -1564,7 +1569,7 @@ msn_del_contact_from_list(MsnSession *session, MsnCallbackState *state,
if (list == MSN_LIST_PL) {
partner_scenario = MSN_PS_CONTACT_API;
- if (user && user->networkid != MSN_NETWORK_PASSPORT)
+ if (user->networkid != MSN_NETWORK_PASSPORT)
member = g_strdup_printf(MSN_MEMBER_MEMBERSHIPID_XML,
"EmailMember", "Email",
user->member_id_on_pending_list);