# HG changeset patch # User Elliott Sales de Andrade # Date 1222923158 0 # Node ID f54e7398f733b92bed090c1e841ec482c3ee58ba # Parent 9340e1db0f46b839cecbe690e0f054e1cb19380b Use the MSN passport in more places instead of the Contact ID if it's not available. References #7274. diff -r 9340e1db0f46 -r f54e7398f733 libpurple/protocols/msn/contact.c --- a/libpurple/protocols/msn/contact.c Tue Sep 30 00:49:53 2008 +0000 +++ b/libpurple/protocols/msn/contact.c Thu Oct 02 04:52:38 2008 +0000 @@ -1111,20 +1111,24 @@ /*delete a Contact*/ void -msn_delete_contact(MsnSession *session, const char *contactId) +msn_delete_contact(MsnSession *session, MsnUser *user) { gchar *body = NULL; gchar *contact_id_xml = NULL ; MsnCallbackState *state; - g_return_if_fail(contactId != NULL); - contact_id_xml = g_strdup_printf(MSN_CONTACT_ID_XML, contactId); + if (user->uid != NULL) { + contact_id_xml = g_strdup_printf(MSN_CONTACT_ID_XML, user->uid); + purple_debug_info("msn", "Deleting contact with contactId: %s\n", user->uid); + } else { + contact_id_xml = g_strdup_printf(MSN_CONTACT_XML, user->passport); + purple_debug_info("msn", "Deleting contact with passport: %s\n", user->passport); + } state = msn_callback_state_new(session); - msn_callback_state_set_uid(state, contactId); + msn_callback_state_set_uid(state, user->uid); /* build SOAP request */ - purple_debug_info("msn", "Deleting contact with contactId: %s\n", contactId); body = g_strdup_printf(MSN_DEL_CONTACT_TEMPLATE, contact_id_xml); state->body = xmlnode_from_str(body, -1); @@ -1191,7 +1195,10 @@ msn_callback_state_set_guid(state, groupId); msn_callback_state_set_old_group_name(state, group_name); - contact_id_xml = g_strdup_printf(MSN_CONTACT_ID_XML, user->uid); + if (user->uid != NULL) + contact_id_xml = g_strdup_printf(MSN_CONTACT_ID_XML, user->uid); + else + contact_id_xml = g_strdup_printf(MSN_CONTACT_XML, passport); body = g_strdup_printf(MSN_CONTACT_DEL_GROUP_TEMPLATE, contact_id_xml, groupId); state->body = xmlnode_from_str(body, -1); diff -r 9340e1db0f46 -r f54e7398f733 libpurple/protocols/msn/contact.h --- a/libpurple/protocols/msn/contact.h Tue Sep 30 00:49:53 2008 +0000 +++ b/libpurple/protocols/msn/contact.h Thu Oct 02 04:52:38 2008 +0000 @@ -654,7 +654,7 @@ void msn_add_contact(MsnSession *session, MsnCallbackState *state, const char *passport); -void msn_delete_contact(MsnSession *session, const char *contactId); +void msn_delete_contact(MsnSession *session, MsnUser *user); void msn_add_contact_to_group(MsnSession *session, MsnCallbackState *state, const char *passport, const char *groupId); diff -r 9340e1db0f46 -r f54e7398f733 libpurple/protocols/msn/userlist.c --- a/libpurple/protocols/msn/userlist.c Tue Sep 30 00:49:53 2008 +0000 +++ b/libpurple/protocols/msn/userlist.c Thu Oct 02 04:52:38 2008 +0000 @@ -652,7 +652,7 @@ NULL, ab, G_CALLBACK(userlist_ab_delete_cb), G_CALLBACK(userlist_ab_delete_cb)); } else - msn_delete_contact(userlist->session, user->uid); + msn_delete_contact(userlist->session, user); } }