Mercurial > pidgin
comparison libpurple/protocols/msn/contact.c @ 30877:23be655cc688
propagate from branch 'im.pidgin.cpw.qulogic.msnp16' (head a27b68b2e6653e6b96aa0279bd649181c89b20ed)
to branch 'im.pidgin.soc.2010.msn-tlc' (head 20ad1c813e2b512df4a065dda88f3cfa732463a3)
author | masca@cpw.pidgin.im |
---|---|
date | Wed, 15 Sep 2010 17:34:21 +0000 |
parents | 230caecf5435 351d07aefb09 |
children | 5c2af6c30e52 |
comparison
equal
deleted
inserted
replaced
30873:4b1eecab50e8 | 30877:23be655cc688 |
---|---|
529 MsnSession *session = state->session; | 529 MsnSession *session = state->session; |
530 | 530 |
531 g_return_if_fail(session != NULL); | 531 g_return_if_fail(session != NULL); |
532 | 532 |
533 if (resp != NULL) { | 533 if (resp != NULL) { |
534 #ifdef MSN_PARTIAL_LISTS | |
534 const char *abLastChange; | 535 const char *abLastChange; |
535 const char *dynamicItemLastChange; | 536 const char *dynamicItemLastChange; |
537 #endif | |
536 | 538 |
537 purple_debug_misc("msn", "Got the contact list!\n"); | 539 purple_debug_misc("msn", "Got the contact list!\n"); |
538 | 540 |
539 msn_parse_contact_list(session, resp->xml); | 541 msn_parse_contact_list(session, resp->xml); |
542 #ifdef MSN_PARTIAL_LISTS | |
540 abLastChange = purple_account_get_string(session->account, | 543 abLastChange = purple_account_get_string(session->account, |
541 "ablastChange", NULL); | 544 "ablastChange", NULL); |
542 dynamicItemLastChange = purple_account_get_string(session->account, | 545 dynamicItemLastChange = purple_account_get_string(session->account, |
543 "dynamicItemLastChange", NULL); | 546 "DynamicItemLastChanged", NULL); |
547 #endif | |
544 | 548 |
545 if (state->partner_scenario == MSN_PS_INITIAL) { | 549 if (state->partner_scenario == MSN_PS_INITIAL) { |
546 #ifdef MSN_PARTIAL_LISTS | 550 #ifdef MSN_PARTIAL_LISTS |
547 /* XXX: this should be enabled when we can correctly do partial | 551 /* XXX: this should be enabled when we can correctly do partial |
548 syncs with the server. Currently we need to retrieve the whole | 552 syncs with the server. Currently we need to retrieve the whole |
686 contactNode = xmlnode_get_next_twin(contactNode)) { | 690 contactNode = xmlnode_get_next_twin(contactNode)) { |
687 xmlnode *contactId, *contactInfo, *contactType, *passportName, *displayName, *guid, *groupIds; | 691 xmlnode *contactId, *contactInfo, *contactType, *passportName, *displayName, *guid, *groupIds; |
688 xmlnode *annotation; | 692 xmlnode *annotation; |
689 MsnUser *user; | 693 MsnUser *user; |
690 | 694 |
695 g_free(passport); | |
696 g_free(Name); | |
697 g_free(uid); | |
698 g_free(type); | |
699 g_free(mobile_number); | |
700 g_free(alias); | |
701 passport = Name = uid = type = mobile_number = alias = NULL; | |
702 mobile = FALSE; | |
703 | |
691 if (!(contactId = xmlnode_get_child(contactNode,"contactId")) | 704 if (!(contactId = xmlnode_get_child(contactNode,"contactId")) |
692 || !(contactInfo = xmlnode_get_child(contactNode, "contactInfo")) | 705 || !(contactInfo = xmlnode_get_child(contactNode, "contactInfo")) |
693 || !(contactType = xmlnode_get_child(contactInfo, "contactType"))) | 706 || !(contactType = xmlnode_get_child(contactInfo, "contactType"))) |
694 continue; | 707 continue; |
695 | |
696 g_free(passport); | |
697 g_free(Name); | |
698 g_free(alias); | |
699 g_free(uid); | |
700 g_free(type); | |
701 g_free(mobile_number); | |
702 passport = Name = uid = type = mobile_number = alias = NULL; | |
703 mobile = FALSE; | |
704 | 708 |
705 uid = xmlnode_get_data(contactId); | 709 uid = xmlnode_get_data(contactId); |
706 type = xmlnode_get_data(contactType); | 710 type = xmlnode_get_data(contactType); |
707 | 711 |
708 /*setup the Display Name*/ | 712 /*setup the Display Name*/ |
838 g_free(passport); | 842 g_free(passport); |
839 g_free(Name); | 843 g_free(Name); |
840 g_free(uid); | 844 g_free(uid); |
841 g_free(type); | 845 g_free(type); |
842 g_free(mobile_number); | 846 g_free(mobile_number); |
847 g_free(alias); | |
843 } | 848 } |
844 | 849 |
845 static gboolean | 850 static gboolean |
846 msn_parse_addressbook(MsnSession *session, xmlnode *node) | 851 msn_parse_addressbook(MsnSession *session, xmlnode *node) |
847 { | 852 { |
887 groups = xmlnode_get_child(result, "groups"); | 892 groups = xmlnode_get_child(result, "groups"); |
888 if (groups != NULL) { | 893 if (groups != NULL) { |
889 msn_parse_addressbook_groups(session, groups); | 894 msn_parse_addressbook_groups(session, groups); |
890 } | 895 } |
891 | 896 |
892 /*add a default No group to set up the no group Membership*/ | 897 /* Add an "Other Contacts" group for buddies who aren't in a group */ |
893 msn_group_new(session->userlist, MSN_INDIVIDUALS_GROUP_ID, | 898 msn_group_new(session->userlist, MSN_INDIVIDUALS_GROUP_ID, |
894 MSN_INDIVIDUALS_GROUP_NAME); | 899 MSN_INDIVIDUALS_GROUP_NAME); |
895 purple_debug_misc("msn", "AB group_id:%s name:%s\n", | 900 purple_debug_misc("msn", "AB group_id:%s name:%s\n", |
896 MSN_INDIVIDUALS_GROUP_ID, MSN_INDIVIDUALS_GROUP_NAME); | 901 MSN_INDIVIDUALS_GROUP_ID, MSN_INDIVIDUALS_GROUP_NAME); |
897 if ((purple_find_group(MSN_INDIVIDUALS_GROUP_NAME)) == NULL){ | 902 if ((purple_find_group(MSN_INDIVIDUALS_GROUP_NAME)) == NULL){ |
898 PurpleGroup *g = purple_group_new(MSN_INDIVIDUALS_GROUP_NAME); | 903 PurpleGroup *g = purple_group_new(MSN_INDIVIDUALS_GROUP_NAME); |
899 purple_blist_add_group(g, NULL); | 904 purple_blist_add_group(g, NULL); |
900 } | 905 } |
901 | 906 |
902 /*add a default No group to set up the no group Membership*/ | 907 /* Add a "Non-IM Contacts" group */ |
903 msn_group_new(session->userlist, MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME); | 908 msn_group_new(session->userlist, MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME); |
904 purple_debug_misc("msn", "AB group_id:%s name:%s\n", MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME); | 909 purple_debug_misc("msn", "AB group_id:%s name:%s\n", MSN_NON_IM_GROUP_ID, MSN_NON_IM_GROUP_NAME); |
905 if ((purple_find_group(MSN_NON_IM_GROUP_NAME)) == NULL) { | 910 if ((purple_find_group(MSN_NON_IM_GROUP_NAME)) == NULL) { |
906 PurpleGroup *g = purple_group_new(MSN_NON_IM_GROUP_NAME); | 911 PurpleGroup *g = purple_group_new(MSN_NON_IM_GROUP_NAME); |
907 purple_blist_add_group(g, NULL); | 912 purple_blist_add_group(g, NULL); |
1566 | 1571 |
1567 user = msn_userlist_find_user(session->userlist, passport); | 1572 user = msn_userlist_find_user(session->userlist, passport); |
1568 | 1573 |
1569 if (list == MSN_LIST_PL) { | 1574 if (list == MSN_LIST_PL) { |
1570 partner_scenario = MSN_PS_CONTACT_API; | 1575 partner_scenario = MSN_PS_CONTACT_API; |
1571 if (user && user->networkid != MSN_NETWORK_PASSPORT) | 1576 if (user->networkid != MSN_NETWORK_PASSPORT) |
1572 member = g_strdup_printf(MSN_MEMBER_MEMBERSHIPID_XML, | 1577 member = g_strdup_printf(MSN_MEMBER_MEMBERSHIPID_XML, |
1573 "EmailMember", "Email", | 1578 "EmailMember", "Email", |
1574 user->member_id_on_pending_list); | 1579 user->member_id_on_pending_list); |
1575 else | 1580 else |
1576 member = g_strdup_printf(MSN_MEMBER_MEMBERSHIPID_XML, | 1581 member = g_strdup_printf(MSN_MEMBER_MEMBERSHIPID_XML, |