annotate src/protocols/msn/contact.c @ 19836:b821d5551c30

[gaim-migrate @ 17182] change to fix the process of Phone Member TODO: need to support Phone user later committed by MaYuan<mayuan2006@gmail.com> committer: Ethan Blanton <elb@pidgin.im>
author Ma Yuan <mayuan2006@gmail.com>
date Thu, 07 Sep 2006 17:32:25 +0000
parents 2fe6a673f12a
children 2b36697b05ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
1 /**
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
2 * @file contact.c
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
3 * get MSN contacts via SOAP request
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
4 * created by MaYuan<mayuan2006@gmail.com>
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
5 *
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
6 * gaim
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
7 *
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
8 * Gaim is the legal property of its developers, whose names are too numerous
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
10 * source distribution.
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
11 *
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
15 * (at your option) any later version.
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
16 *
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
20 * GNU General Public License for more details.
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
21 *
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
25 */
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
26
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
27 #include "msn.h"
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
28 #include "soap.h"
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
29 #include "contact.h"
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
30 #include "xmlnode.h"
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
31 #include "group.h"
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
32
19826
1d1e5163b0eb [gaim-migrate @ 17042]
Ma Yuan <mayuan2006@gmail.com>
parents: 19825
diff changeset
33 /*define This to debug the Contact Server*/
1d1e5163b0eb [gaim-migrate @ 17042]
Ma Yuan <mayuan2006@gmail.com>
parents: 19825
diff changeset
34 #undef MSN_CONTACT_SOAP_DEBUG
1d1e5163b0eb [gaim-migrate @ 17042]
Ma Yuan <mayuan2006@gmail.com>
parents: 19825
diff changeset
35
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
36 void msn_contact_connect_init(MsnSoapConn *soapconn);
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
37
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
38 /*new a contact*/
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
39 MsnContact *
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
40 msn_contact_new(MsnSession *session)
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
41 {
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
42 MsnContact *contact;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
43
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
44 contact = g_new0(MsnContact, 1);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
45 contact->session = session;
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
46 contact->soapconn = msn_soap_new(session,contact,1);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
47
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
48 return contact;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
49 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
50
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
51 /*destroy the contact*/
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
52 void
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
53 msn_contact_destroy(MsnContact *contact)
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
54 {
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
55 msn_soap_destroy(contact->soapconn);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
56 g_free(contact);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
57 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
58
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
59 /*contact SOAP server login error*/
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
60 static void
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
61 msn_contact_login_error_cb(GaimSslConnection *gsc, GaimSslErrorType error, void *data)
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
62 {
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
63 MsnSoapConn *soapconn = data;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
64 MsnSession *session;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
65
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
66 session = soapconn->session;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
67 g_return_if_fail(session != NULL);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
68
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
69 msn_session_set_error(session, MSN_ERROR_SERV_DOWN, _("Unable to connect to contact server"));
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
70 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
71
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
72 /*msn contact SOAP server connect process*/
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
73 static void
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
74 msn_contact_login_connect_cb(gpointer data, GaimSslConnection *gsc,
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
75 GaimInputCondition cond)
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
76 {
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
77 MsnSoapConn *soapconn = data;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
78 MsnSession * session;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
79 MsnContact *contact;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
80
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
81 contact = soapconn->parent;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
82 g_return_if_fail(contact != NULL);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
83
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
84 session = contact->session;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
85 g_return_if_fail(session != NULL);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
86
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
87 /*login ok!We can retrieve the contact list*/
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
88 // msn_get_contact_list(contact);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
89 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
90
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
91 /*get MSN member role utility*/
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
92 static int
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
93 msn_get_memberrole(char * role)
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
94 {
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
95 if(!strcmp(role,"Allow")){
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
96 return MSN_LIST_AL_OP;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
97 }else if(!strcmp(role,"Block")){
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
98 return MSN_LIST_BL_OP;
19799
88b0c434259a [gaim-migrate @ 16733]
Ma Yuan <mayuan2006@gmail.com>
parents: 19796
diff changeset
99 }else if(!strcmp(role,"Reverse")){
88b0c434259a [gaim-migrate @ 16733]
Ma Yuan <mayuan2006@gmail.com>
parents: 19796
diff changeset
100 return MSN_LIST_RL_OP;
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
101 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
102 return 0;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
103 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
104
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
105 /*get User Type*/
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
106 static int
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
107 msn_get_user_type(char * type)
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
108 {
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
109 if(!strcmp(type,"Regular")){
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
110 return 1;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
111 }
19825
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
112 if(!strcmp(type,"Live")){
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
113 return 1;
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
114 }
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
115 if(!strcmp(type,"LivePending")){
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
116 return 1;
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
117 }
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
118
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
119 return 0;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
120 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
121
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
122 /*parse contact list*/
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
123 static void
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
124 msn_parse_contact_list(MsnContact * contact)
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
125 {
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
126 MsnSession * session;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
127 int list_op =0;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
128 char * passport;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
129 xmlnode * node,*body,*response,*result,*services,*service,*memberships;
19834
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
130 xmlnode *LastChangeNode;
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
131 xmlnode *membershipnode,*members,*member,*passportNode;
19834
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
132 char *lastchange;
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
133
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
134 session = contact->session;
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
135 gaim_debug_misc("xml","parse contact list:{%s}\nsize:%d\n",contact->soapconn->body,contact->soapconn->body_len);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
136 node = xmlnode_from_str(contact->soapconn->body, contact->soapconn->body_len);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
137
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
138 if(node == NULL){
19836
b821d5551c30 [gaim-migrate @ 17182]
Ma Yuan <mayuan2006@gmail.com>
parents: 19834
diff changeset
139 gaim_debug_misc("xml","parse contact from str err!\n");
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
140 return;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
141 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
142 gaim_debug_misc("xml","node{%p},name:%s,child:%s,last:%s\n",node,node->name,node->child->name,node->lastchild->name);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
143 body = xmlnode_get_child(node,"Body");
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
144 gaim_debug_misc("xml","body{%p},name:%s\n",body,body->name);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
145 response = xmlnode_get_child(body,"FindMembershipResponse");
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
146 gaim_debug_misc("xml","response{%p},name:%s\n",response,response->name);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
147 result =xmlnode_get_child(response,"FindMembershipResult");
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
148 gaim_debug_misc("xml","result{%p},name:%s\n",result,result->name);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
149 services =xmlnode_get_child(result,"Services");
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
150 gaim_debug_misc("xml","services{%p},name:%s\n",services,services->name);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
151 service =xmlnode_get_child(services,"Service");
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
152 gaim_debug_misc("xml","service{%p},name:%s\n",service,service->name);
19834
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
153
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
154 /*Last Change Node*/
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
155 LastChangeNode = xmlnode_get_child(service,"LastChange");
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
156 lastchange = xmlnode_get_data(LastChangeNode);
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
157 gaim_debug_misc("MSNContact","LastChangeNode %s\n",lastchange);
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
158
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
159 memberships =xmlnode_get_child(service,"Memberships");
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
160 gaim_debug_misc("xml","memberships{%p},name:%s\n",memberships,memberships->name);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
161 for(membershipnode = xmlnode_get_child(memberships, "Membership"); membershipnode;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
162 membershipnode = xmlnode_get_next_twin(membershipnode)){
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
163 xmlnode *roleNode;
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
164 char *role;
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
165 roleNode = xmlnode_get_child(membershipnode,"MemberRole");
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
166 role=xmlnode_get_data(roleNode);
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
167 list_op = msn_get_memberrole(role);
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
168 gaim_debug_misc("memberrole","role:%s,list_op:%d\n",role,list_op);
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
169 g_free(role);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
170 members = xmlnode_get_child(membershipnode,"Members");
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
171 for(member = xmlnode_get_child(members, "Member"); member;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
172 member = xmlnode_get_next_twin(member)){
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
173 MsnUser *user;
19786
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
174 xmlnode * typeNode;
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
175 char * type;
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
176
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
177 gaim_debug_misc("MaYuan","type:%s\n",xmlnode_get_attrib(member,"type"));
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
178 if(!g_strcasecmp(xmlnode_get_attrib(member,"type"),"PassportMember")){
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
179 passportNode = xmlnode_get_child(member,"PassportName");
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
180 passport = xmlnode_get_data(passportNode);
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
181 typeNode = xmlnode_get_child(member,"Type");
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
182 type = xmlnode_get_data(typeNode);
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
183 gaim_debug_misc("Passport","name:%s,type:%s\n",passport,type);
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
184 g_free(type);
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
185
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
186 user = msn_userlist_find_add_user(session->userlist,passport,NULL);
19786
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
187 msn_got_lst_user(session, user, list_op, NULL);
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
188 g_free(passport);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
189 }
19786
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
190 if(!g_strcasecmp(xmlnode_get_attrib(member,"type"),"PhoneMember")){
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
191 }
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
192 if(!g_strcasecmp(xmlnode_get_attrib(member,"type"),"EmailMember")){
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
193 xmlnode *emailNode;
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
194
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
195 emailNode = xmlnode_get_child(member,"Email");
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
196 passport = xmlnode_get_data(emailNode);
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
197 gaim_debug_info("Email","name:%s,list_op:%d\n",passport,list_op);
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
198 user = msn_userlist_find_add_user(session->userlist,passport,NULL);
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
199 msn_got_lst_user(session,user,list_op,NULL);
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
200 g_free(passport);
19786
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
201 }
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
202 }
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
203 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
204
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
205 xmlnode_free(node);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
206 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
207
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
208 static void
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
209 msn_get_contact_list_cb(gpointer data, gint source, GaimInputCondition cond)
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
210 {
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
211 MsnSoapConn * soapconn = data;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
212 MsnContact *contact;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
213 MsnSession *session;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
214
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
215 contact = soapconn->parent;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
216 g_return_if_fail(contact != NULL);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
217 session = soapconn->session;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
218 g_return_if_fail(session != NULL);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
219
19826
1d1e5163b0eb [gaim-migrate @ 17042]
Ma Yuan <mayuan2006@gmail.com>
parents: 19825
diff changeset
220 #ifdef MSN_CONTACT_SOAP_DEBUG
1d1e5163b0eb [gaim-migrate @ 17042]
Ma Yuan <mayuan2006@gmail.com>
parents: 19825
diff changeset
221 gaim_debug_misc("msn", "soap contact server Reply: {%s}\n", soapconn->read_buf);
1d1e5163b0eb [gaim-migrate @ 17042]
Ma Yuan <mayuan2006@gmail.com>
parents: 19825
diff changeset
222 #endif
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
223 msn_parse_contact_list(contact);
19816
1aa5494587e8 [gaim-migrate @ 16973]
Ma Yuan <mayuan2006@gmail.com>
parents: 19810
diff changeset
224 /*free the read buffer*/
1aa5494587e8 [gaim-migrate @ 16973]
Ma Yuan <mayuan2006@gmail.com>
parents: 19810
diff changeset
225 msn_soap_free_read_buf(soapconn);
1aa5494587e8 [gaim-migrate @ 16973]
Ma Yuan <mayuan2006@gmail.com>
parents: 19810
diff changeset
226
1aa5494587e8 [gaim-migrate @ 16973]
Ma Yuan <mayuan2006@gmail.com>
parents: 19810
diff changeset
227 msn_get_address_book(contact);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
228 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
229
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
230 static void
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
231 msn_get_contact_written_cb(gpointer data, gint source, GaimInputCondition cond)
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
232 {
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
233 MsnSoapConn * soapconn = data;
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
234
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
235 gaim_debug_info("MaYuan","finish contact written\n");
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
236 soapconn->read_cb = msn_get_contact_list_cb;
19810
da1075366756 [gaim-migrate @ 16885]
Ma Yuan <mayuan2006@gmail.com>
parents: 19808
diff changeset
237 // msn_soap_read_cb(data,source,cond);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
238 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
239
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
240 void
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
241 msn_get_contact_list(MsnContact * contact)
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
242 {
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
243 MsnSoapReq *soap_request;
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
244
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
245 gaim_debug_info("MaYuan","Getting Contact List...\n");
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
246 soap_request = msn_soap_request_new(MSN_CONTACT_SERVER,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
247 MSN_GET_CONTACT_POST_URL,MSN_GET_CONTACT_SOAP_ACTION,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
248 MSN_GET_CONTACT_TEMPLATE,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
249 msn_get_contact_list_cb,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
250 msn_get_contact_written_cb);
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
251 msn_soap_post(contact->soapconn,soap_request,msn_contact_connect_init);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
252 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
253
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
254 static void
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
255 msn_parse_addressbook(MsnContact * contact)
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
256 {
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
257 MsnSession * session;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
258 xmlnode * node,*body,*response,*result;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
259 xmlnode *groups,*group,*groupname,*groupId,*groupInfo;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
260 xmlnode *contacts,*contactNode,*contactId,*contactInfo,*contactType,*passportName,*displayName,*groupIds,*guid;
19834
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
261 xmlnode *abNode,*LastChangeNode;
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
262 char *lastchange;
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
263 char *group_name,*group_id;
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
264
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
265 session = contact->session;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
266 gaim_debug_misc("xml","parse addressbook:{%s}\nsize:%d\n",contact->soapconn->body,contact->soapconn->body_len);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
267 node = xmlnode_from_str(contact->soapconn->body, contact->soapconn->body_len);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
268
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
269 if(node == NULL){
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
270 gaim_debug_misc("xml","parse from str err!\n");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
271 return;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
272 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
273 gaim_debug_misc("xml","node{%p},name:%s,child:%s,last:%s\n",node,node->name,node->child->name,node->lastchild->name);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
274 body = xmlnode_get_child(node,"Body");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
275 gaim_debug_misc("xml","body{%p},name:%s\n",body,body->name);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
276 response = xmlnode_get_child(body,"ABFindAllResponse");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
277 gaim_debug_misc("xml","response{%p},name:%s\n",response,response->name);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
278 result =xmlnode_get_child(response,"ABFindAllResult");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
279 gaim_debug_misc("xml","result{%p},name:%s\n",result,result->name);
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
280
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
281 /*Process Group List*/
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
282 groups =xmlnode_get_child(result,"groups");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
283 for(group = xmlnode_get_child(groups, "Group"); group;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
284 group = xmlnode_get_next_twin(group)){
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
285 groupId = xmlnode_get_child(group,"groupId");
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
286 group_id = xmlnode_get_data(groupId);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
287 groupInfo = xmlnode_get_child(group,"groupInfo");
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
288 groupname = xmlnode_get_child(groupInfo,"name");
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
289 group_name = xmlnode_get_data(groupname);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
290
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
291 msn_group_new(session->userlist, group_id, group_name);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
292
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
293 if (group_id == NULL){
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
294 /* Group of ungroupped buddies */
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
295 continue;
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
296 }
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
297
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
298 gaim_debug_misc("MsnAB","group_id:%s name:%s\n",group_id,group_name);
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
299 if ((gaim_find_group(group_name)) == NULL){
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
300 GaimGroup *g = gaim_group_new(group_name);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
301 gaim_blist_add_group(g, NULL);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
302 }
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
303 g_free(group_id);
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
304 g_free(group_name);
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
305 }
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
306 /*add a default No group to set up the no group Membership*/
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
307 group_id = g_strdup(MSN_INDIVIDUALS_GROUP_ID);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
308 group_name = g_strdup(MSN_INDIVIDUALS_GROUP_NAME);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
309 msn_group_new(session->userlist,group_id , group_name);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
310 if (group_id != NULL){
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
311 gaim_debug_misc("MsnAB","group_id:%s name:%s,value:%d\n",group_id,group_name,*group_name=='\0');
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
312 if ((gaim_find_group(group_name)) == NULL){
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
313 GaimGroup *g = gaim_group_new(group_name);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
314 gaim_blist_add_group(g, NULL);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
315 }
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
316 }
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
317 g_free(group_name);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
318 g_free(group_id);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
319
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
320 /*add a default No group to set up the no group Membership*/
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
321 group_id = g_strdup(MSN_NON_IM_GROUP_ID);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
322 group_name = g_strdup(MSN_NON_IM_GROUP_NAME);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
323 msn_group_new(session->userlist,group_id , group_name);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
324 if (group_id != NULL){
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
325 gaim_debug_misc("MsnAB","group_id:%s name:%s,value:%d\n",group_id,group_name,*group_name=='\0');
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
326 if ((gaim_find_group(group_name)) == NULL){
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
327 GaimGroup *g = gaim_group_new(group_name);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
328 gaim_blist_add_group(g, NULL);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
329 }
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
330 }
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
331 g_free(group_name);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
332 g_free(group_id);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
333
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
334 /*Process contact List*/
19836
b821d5551c30 [gaim-migrate @ 17182]
Ma Yuan <mayuan2006@gmail.com>
parents: 19834
diff changeset
335 gaim_debug_info("MSNAB","process contact list...\n");
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
336 contacts =xmlnode_get_child(result,"contacts");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
337 for(contactNode = xmlnode_get_child(contacts, "Contact"); contactNode;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
338 contactNode = xmlnode_get_next_twin(contactNode)){
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
339 MsnUser *user;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
340 char *passport,*Name,*uid,*type;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
341
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
342 passport = NULL;
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
343
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
344 contactId= xmlnode_get_child(contactNode,"contactId");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
345 uid = xmlnode_get_data(contactId);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
346
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
347 contactInfo = xmlnode_get_child(contactNode,"contactInfo");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
348 contactType = xmlnode_get_child(contactInfo,"contactType");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
349 type = xmlnode_get_data(contactType);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
350
19825
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
351 /*setup the Display Name*/
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
352 if (!strcmp(type, "Me")){
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
353 char *friendly;
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
354 friendly = xmlnode_get_data(xmlnode_get_child(contactInfo,"displayName"));
19825
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
355 gaim_connection_set_display_name(session->account->gc, gaim_url_decode(friendly));
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
356 g_free(friendly);
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
357 }
9cc3a3407816 [gaim-migrate @ 17041]
Ma Yuan <mayuan2006@gmail.com>
parents: 19824
diff changeset
358
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
359 passportName = xmlnode_get_child(contactInfo,"passportName");
19786
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
360 if(passportName == NULL){
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
361 xmlnode *emailsNode, *contactEmailNode, *emailNode;
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
362 xmlnode *messengerEnabledNode;
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
363 char *msnEnabled;
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
364
19786
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
365 /*TODO: add it to the none-instant Messenger group and recognize as email Membership*/
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
366 /*Yahoo User?*/
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
367 emailsNode = xmlnode_get_child(contactInfo,"emails");
19836
b821d5551c30 [gaim-migrate @ 17182]
Ma Yuan <mayuan2006@gmail.com>
parents: 19834
diff changeset
368 if(emailsNode == NULL){
b821d5551c30 [gaim-migrate @ 17182]
Ma Yuan <mayuan2006@gmail.com>
parents: 19834
diff changeset
369 /*TODO: need to support the Mobile type*/
b821d5551c30 [gaim-migrate @ 17182]
Ma Yuan <mayuan2006@gmail.com>
parents: 19834
diff changeset
370 continue;
b821d5551c30 [gaim-migrate @ 17182]
Ma Yuan <mayuan2006@gmail.com>
parents: 19834
diff changeset
371 }
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
372 for(contactEmailNode = xmlnode_get_child(emailsNode,"ContactEmail");contactEmailNode;
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
373 contactEmailNode = xmlnode_get_next_twin(contactEmailNode) ){
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
374 messengerEnabledNode = xmlnode_get_child(contactEmailNode,"isMessengerEnabled");
19808
75ecc42d3e8d [gaim-migrate @ 16882]
Ma Yuan <mayuan2006@gmail.com>
parents: 19806
diff changeset
375 if(messengerEnabledNode == NULL){
75ecc42d3e8d [gaim-migrate @ 16882]
Ma Yuan <mayuan2006@gmail.com>
parents: 19806
diff changeset
376 break;
75ecc42d3e8d [gaim-migrate @ 16882]
Ma Yuan <mayuan2006@gmail.com>
parents: 19806
diff changeset
377 }
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
378 msnEnabled = xmlnode_get_data(messengerEnabledNode);
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
379 if(!strcmp(msnEnabled,"true")){
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
380 /*Messenger enabled, Get the Passport*/
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
381 emailNode = xmlnode_get_child(contactEmailNode,"email");
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
382 passport = xmlnode_get_data(emailNode);
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
383 gaim_debug_info("MsnAB","Yahoo User %s\n",passport);
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
384 break;
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
385 }else{
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
386 /*TODO maybe we can just ignore it in Gaim?*/
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
387 emailNode = xmlnode_get_child(contactEmailNode,"email");
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
388 passport = xmlnode_get_data(emailNode);
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
389 gaim_debug_info("MSNAB","Other type user\n");
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
390 }
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
391 g_free(msnEnabled);
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
392 }
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
393 }else{
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
394 passport = xmlnode_get_data(passportName);
19786
23258253c7a0 [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 19785
diff changeset
395 }
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
396
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
397 if(passport == NULL){
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
398 continue;
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
399 }
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
400
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
401 displayName = xmlnode_get_child(contactInfo,"displayName");
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
402 if(displayName == NULL){
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
403 Name = g_strdup(passport);
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
404 }else{
19808
75ecc42d3e8d [gaim-migrate @ 16882]
Ma Yuan <mayuan2006@gmail.com>
parents: 19806
diff changeset
405 Name =xmlnode_get_data(displayName);
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
406 }
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
407
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
408 gaim_debug_misc("MsnAB","passport:{%s} uid:{%s} display:{%s}\n",
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
409 passport,uid,Name);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
410
19800
da3f8f7ec3ce [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 19799
diff changeset
411 user = msn_userlist_find_add_user(session->userlist, passport,Name);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
412 msn_user_set_uid(user,uid);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
413 msn_user_set_type(user,msn_get_user_type(type));
19799
88b0c434259a [gaim-migrate @ 16733]
Ma Yuan <mayuan2006@gmail.com>
parents: 19796
diff changeset
414 user->list_op |= MSN_LIST_FL_OP;
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
415 g_free(Name);
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
416 g_free(passport);
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
417 g_free(uid);
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
418 g_free(type);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
419
19836
b821d5551c30 [gaim-migrate @ 17182]
Ma Yuan <mayuan2006@gmail.com>
parents: 19834
diff changeset
420 gaim_debug_misc("MsnAB","parse guid...\n");
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
421 groupIds = xmlnode_get_child(contactInfo,"groupIds");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
422 if(groupIds){
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
423 for(guid = xmlnode_get_child(groupIds, "guid");guid;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
424 guid = xmlnode_get_next_twin(guid)){
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
425 group_id = xmlnode_get_data(guid);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
426 msn_user_add_group_id(user,group_id);
19823
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
427 gaim_debug_misc("MsnAB","guid:%s\n",group_id);
1b6c631012d9 [gaim-migrate @ 17034]
Ma Yuan <mayuan2006@gmail.com>
parents: 19816
diff changeset
428 g_free(group_id);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
429 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
430 }else{
19824
a8d00b8dae40 [gaim-migrate @ 17040]
Ma Yuan <mayuan2006@gmail.com>
parents: 19823
diff changeset
431 /*not in any group,Then set default group*/
19787
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
432 group_id = g_strdup(MSN_INDIVIDUALS_GROUP_ID);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
433 msn_user_add_group_id(user,group_id);
b99512bd6d85 [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 19786
diff changeset
434 g_free(group_id);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
435 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
436 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
437
19834
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
438 abNode =xmlnode_get_child(result,"ab");
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
439 if(abNode != NULL){
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
440 LastChangeNode = xmlnode_get_child(abNode,"lastChange");
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
441 lastchange = xmlnode_get_data(LastChangeNode);
19836
b821d5551c30 [gaim-migrate @ 17182]
Ma Yuan <mayuan2006@gmail.com>
parents: 19834
diff changeset
442 gaim_debug_info("MsnAB"," lastchanged Time:{%s}\n",lastchange);
19834
2fe6a673f12a [gaim-migrate @ 17139]
Ma Yuan <mayuan2006@gmail.com>
parents: 19831
diff changeset
443 }
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
444
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
445 xmlnode_free(node);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
446 msn_soap_free_read_buf(contact->soapconn);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
447 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
448
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
449 static void
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
450 msn_get_address_cb(gpointer data, gint source, GaimInputCondition cond)
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
451 {
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
452 MsnSoapConn * soapconn = data;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
453 MsnContact *contact;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
454 MsnSession *session;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
455
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
456 contact = soapconn->parent;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
457 g_return_if_fail(contact != NULL);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
458 session = soapconn->session;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
459 g_return_if_fail(session != NULL);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
460
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
461 // gaim_debug_misc("msn", "soap contact server Reply: {%s}\n", soapconn->read_buf);
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
462 msn_parse_addressbook(contact);
19828
e45fae8209c3 [gaim-migrate @ 17045]
Ma Yuan <mayuan2006@gmail.com>
parents: 19827
diff changeset
463
e45fae8209c3 [gaim-migrate @ 17045]
Ma Yuan <mayuan2006@gmail.com>
parents: 19827
diff changeset
464 msn_notification_dump_contact(session);
e45fae8209c3 [gaim-migrate @ 17045]
Ma Yuan <mayuan2006@gmail.com>
parents: 19827
diff changeset
465 msn_set_psm(session);
e45fae8209c3 [gaim-migrate @ 17045]
Ma Yuan <mayuan2006@gmail.com>
parents: 19827
diff changeset
466 msn_session_finish_login(session);
e45fae8209c3 [gaim-migrate @ 17045]
Ma Yuan <mayuan2006@gmail.com>
parents: 19827
diff changeset
467
19816
1aa5494587e8 [gaim-migrate @ 16973]
Ma Yuan <mayuan2006@gmail.com>
parents: 19810
diff changeset
468 /*free the read buffer*/
1aa5494587e8 [gaim-migrate @ 16973]
Ma Yuan <mayuan2006@gmail.com>
parents: 19810
diff changeset
469 msn_soap_free_read_buf(soapconn);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
470 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
471
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
472 /**/
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
473 static void
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
474 msn_address_written_cb(gpointer data, gint source, GaimInputCondition cond)
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
475 {
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
476 MsnSoapConn * soapconn = data;
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
477
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
478 gaim_debug_info("MaYuan","finish contact written\n");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
479 soapconn->read_cb = msn_get_address_cb;
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
480 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
481
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
482 /*get the address book*/
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
483 void
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
484 msn_get_address_book(MsnContact *contact)
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
485 {
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
486 MsnSoapReq *soap_request;
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
487
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
488 gaim_debug_info("MaYuan","msn_get_address_book()...\n");
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
489 /*build SOAP and POST it*/
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
490 soap_request = msn_soap_request_new(MSN_CONTACT_SERVER,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
491 MSN_ADDRESS_BOOK_POST_URL,MSN_GET_ADDRESS_SOAP_ACTION,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
492 MSN_GET_ADDRESS_TEMPLATE,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
493 msn_get_address_cb,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
494 msn_address_written_cb);
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
495 msn_soap_post(contact->soapconn,soap_request,msn_contact_connect_init);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
496 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
497
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
498 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
499 msn_add_contact_read_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
500 {
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
501 gaim_debug_info("MaYuan","add contact read done\n");
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
502 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
503
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
504 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
505 msn_add_contact_written_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
506 {
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
507 MsnSoapConn * soapconn = data;
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
508
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
509 gaim_debug_info("MaYuan","finish add contact written\n");
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
510 soapconn->read_cb = msn_add_contact_read_cb;
19810
da1075366756 [gaim-migrate @ 16885]
Ma Yuan <mayuan2006@gmail.com>
parents: 19808
diff changeset
511 // msn_soap_read_cb(data,source,cond);
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
512 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
513
19789
7e36832172a9 [gaim-migrate @ 16601]
Ma Yuan <mayuan2006@gmail.com>
parents: 19787
diff changeset
514 /*add a Contact */
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
515 void
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
516 msn_add_contact(MsnContact *contact,const char *passport,const char *groupId)
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
517 {
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
518 MsnSoapReq *soap_request;
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
519 char *body = NULL;
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
520 char *contact_xml = NULL;
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
521 char *soap_action;
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
522
19790
4f21c73a0c48 [gaim-migrate @ 16613]
Ma Yuan <mayuan2006@gmail.com>
parents: 19789
diff changeset
523 gaim_debug_info("MaYuan","msn add a contact...\n");
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
524 contact_xml = g_strdup_printf(MSN_CONTACT_XML,passport);
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
525 if(groupId == NULL){
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
526 body = g_strdup_printf(MSN_ADD_CONTACT_TEMPLATE,contact_xml);
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
527 g_free(contact_xml);
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
528 /*build SOAP and POST it*/
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
529 soap_action = g_strdup(MSN_CONTACT_ADD_SOAP_ACTION);
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
530 }else{
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
531 body = g_strdup_printf(MSN_ADD_CONTACT_GROUP_TEMPLATE,groupId,contact_xml);
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
532 g_free(contact_xml);
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
533 /*build SOAP and POST it*/
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
534 soap_action = g_strdup(MSN_ADD_CONTACT_GROUP_SOAP_ACTION);
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
535 }
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
536 soap_request = msn_soap_request_new(MSN_CONTACT_SERVER,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
537 MSN_ADDRESS_BOOK_POST_URL,soap_action,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
538 body,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
539 msn_add_contact_read_cb,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
540 msn_add_contact_written_cb);
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
541 msn_soap_post(contact->soapconn,soap_request,msn_contact_connect_init);
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
542
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
543 g_free(soap_action);
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
544 g_free(body);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
545 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
546
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
547 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
548 msn_delete_contact_read_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
549 {
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
550 gaim_debug_info("MaYuan","delete contact read done\n");
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
551 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
552
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
553 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
554 msn_delete_contact_written_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
555 {
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
556 MsnSoapConn * soapconn = data;
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
557
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
558 gaim_debug_info("MaYuan","delete contact written\n");
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
559 soapconn->read_cb = msn_delete_contact_read_cb;
19810
da1075366756 [gaim-migrate @ 16885]
Ma Yuan <mayuan2006@gmail.com>
parents: 19808
diff changeset
560 // msn_soap_read_cb(data,source,cond);
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
561 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
562
19789
7e36832172a9 [gaim-migrate @ 16601]
Ma Yuan <mayuan2006@gmail.com>
parents: 19787
diff changeset
563 /*delete a Contact*/
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
564 void
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
565 msn_delete_contact(MsnContact *contact,const char *contactId)
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
566 {
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
567 char *body = NULL;
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
568 char *contact_xml = NULL ;
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
569 MsnSoapReq *soap_request;
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
570
19831
ea8b7028e8bb [gaim-migrate @ 17057]
Ma Yuan <mayuan2006@gmail.com>
parents: 19828
diff changeset
571 g_return_if_fail(contactId != NULL);
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
572 gaim_debug_info("MaYuan","msn delete a contact,contactId:{%s}...\n",contactId);
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
573 contact_xml = g_strdup_printf(MSN_CONTACTS_DEL_XML,contactId);
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
574 body = g_strdup_printf(MSN_DEL_CONTACT_TEMPLATE,contact_xml);
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
575 g_free(contact_xml);
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
576 /*build SOAP and POST it*/
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
577 soap_request = msn_soap_request_new(MSN_CONTACT_SERVER,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
578 MSN_ADDRESS_BOOK_POST_URL,MSN_CONTACT_DEL_SOAP_ACTION,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
579 body,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
580 msn_delete_contact_read_cb,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
581 msn_delete_contact_written_cb);
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
582 msn_soap_post(contact->soapconn,soap_request,msn_contact_connect_init);
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
583
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
584 g_free(body);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
585 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
586
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
587 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
588 msn_block_read_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
589 {
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
590 gaim_debug_info("MaYuan","block read done\n");
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
591 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
592
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
593 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
594 msn_block_written_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
595 {
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
596 MsnSoapConn * soapconn = data;
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
597
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
598 gaim_debug_info("MaYuan","finish unblock written\n");
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
599 soapconn->read_cb = msn_block_read_cb;
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
600 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
601
19789
7e36832172a9 [gaim-migrate @ 16601]
Ma Yuan <mayuan2006@gmail.com>
parents: 19787
diff changeset
602 /*block a Contact*/
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
603 void
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
604 msn_block_contact(MsnContact *contact,const char* membership_id)
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
605 {
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
606 MsnSoapReq *soap_request;
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
607 char *body = NULL;
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
608
19790
4f21c73a0c48 [gaim-migrate @ 16613]
Ma Yuan <mayuan2006@gmail.com>
parents: 19789
diff changeset
609 gaim_debug_info("MaYuan","msn block a contact...\n");
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
610 body = g_strdup_printf(MSN_CONTACT_DELECT_FROM_ALLOW_TEMPLATE,membership_id);
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
611 /*build SOAP and POST it*/
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
612 soap_request = msn_soap_request_new(MSN_CONTACT_SERVER,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
613 MSN_SHARE_POST_URL,MSN_CONTACT_BLOCK_SOAP_ACTION,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
614 body,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
615 msn_block_read_cb,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
616 msn_block_written_cb);
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
617 msn_soap_post(contact->soapconn,soap_request,msn_contact_connect_init);
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
618
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
619 g_free(body);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
620 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
621
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
622 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
623 msn_unblock_read_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
624 {
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
625 gaim_debug_info("MaYuan","unblock read done\n");
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
626 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
627
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
628 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
629 msn_unblock_written_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
630 {
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
631 MsnSoapConn * soapconn = data;
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
632
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
633 gaim_debug_info("MaYuan","finish unblock written\n");
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
634 soapconn->read_cb = msn_unblock_read_cb;
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
635 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
636
19789
7e36832172a9 [gaim-migrate @ 16601]
Ma Yuan <mayuan2006@gmail.com>
parents: 19787
diff changeset
637 /*unblock a contact*/
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
638 void
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
639 msn_unblock_contact(MsnContact *contact,const char* passport)
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
640 {
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
641 MsnSoapReq *soap_request;
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
642 char *body = NULL;
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
643
19790
4f21c73a0c48 [gaim-migrate @ 16613]
Ma Yuan <mayuan2006@gmail.com>
parents: 19789
diff changeset
644 gaim_debug_info("MaYuan","msn unblock a contact...\n");
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
645
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
646 body = g_strdup_printf(MSN_UNBLOCK_CONTACT_TEMPLATE,passport);
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
647 /*build SOAP and POST it*/
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
648 soap_request = msn_soap_request_new(MSN_CONTACT_SERVER,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
649 MSN_SHARE_POST_URL,MSN_CONTACT_UNBLOCK_SOAP_ACTION,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
650 body,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
651 msn_unblock_read_cb,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
652 msn_unblock_written_cb);
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
653 msn_soap_post(contact->soapconn,soap_request,msn_contact_connect_init);
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
654
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
655 g_free(body);
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
656 }
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
657
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
658 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
659 msn_gleams_read_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
660 {
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
661 gaim_debug_info("MaYuan","Gleams read done\n");
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
662 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
663
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
664 static void
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
665 msn_gleams_written_cb(gpointer data, gint source, GaimInputCondition cond)
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
666 {
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
667 MsnSoapConn * soapconn = data;
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
668
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
669 gaim_debug_info("MaYuan","finish Group written\n");
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
670 soapconn->read_cb = msn_gleams_read_cb;
19810
da1075366756 [gaim-migrate @ 16885]
Ma Yuan <mayuan2006@gmail.com>
parents: 19808
diff changeset
671 // msn_soap_read_cb(data,source,cond);
19796
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
672 }
3a15b4e5c336 [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 19795
diff changeset
673
19789
7e36832172a9 [gaim-migrate @ 16601]
Ma Yuan <mayuan2006@gmail.com>
parents: 19787
diff changeset
674 /*get the gleams info*/
19785
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
675 void
852b32710df0 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 19784
diff changeset
676 msn_get_gleams(MsnContact *contact)
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
677 {
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
678 MsnSoapReq *soap_request;
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
679
19790
4f21c73a0c48 [gaim-migrate @ 16613]
Ma Yuan <mayuan2006@gmail.com>
parents: 19789
diff changeset
680 gaim_debug_info("MaYuan","msn get gleams info...\n");
4f21c73a0c48 [gaim-migrate @ 16613]
Ma Yuan <mayuan2006@gmail.com>
parents: 19789
diff changeset
681 /*build SOAP and POST it*/
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
682 soap_request = msn_soap_request_new(MSN_CONTACT_SERVER,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
683 MSN_ADDRESS_BOOK_POST_URL,MSN_GET_GLEAMS_SOAP_ACTION,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
684 MSN_GLEAMS_TEMPLATE,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
685 msn_gleams_read_cb,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
686 msn_gleams_written_cb);
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
687 msn_soap_post(contact->soapconn,soap_request,msn_contact_connect_init);
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
688 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
689
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
690 /***************************************************************
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
691 * Group Operation
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
692 ***************************************************************/
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
693 static void
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
694 msn_group_read_cb(gpointer data, gint source, GaimInputCondition cond)
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
695 {
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
696 gaim_debug_info("MaYuan","Group read \n");
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
697 }
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
698
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
699 static void
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
700 msn_group_written_cb(gpointer data, gint source, GaimInputCondition cond)
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
701 {
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
702 MsnSoapConn * soapconn = data;
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
703
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
704 gaim_debug_info("MaYuan","finish Group written\n");
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
705 soapconn->read_cb = msn_group_read_cb;
19810
da1075366756 [gaim-migrate @ 16885]
Ma Yuan <mayuan2006@gmail.com>
parents: 19808
diff changeset
706 // msn_soap_read_cb(data,source,cond);
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
707 }
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
708
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
709 /*add group*/
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
710 void msn_add_group(MsnSession *session,const char* group_name)
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
711 {
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
712 MsnSoapReq *soap_request;
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
713 MsnContact *contact ;
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
714 char *body = NULL;
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
715
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
716 g_return_if_fail(session != NULL);
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
717 contact = session->contact;
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
718 gaim_debug_info("MaYuan","msn add group...\n");
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
719
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
720 body = g_strdup_printf(MSN_GROUP_ADD_TEMPLATE,group_name);
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
721 /*build SOAP and POST it*/
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
722 soap_request = msn_soap_request_new(MSN_CONTACT_SERVER,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
723 MSN_ADDRESS_BOOK_POST_URL,MSN_GROUP_ADD_SOAP_ACTION,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
724 body,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
725 msn_group_read_cb,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
726 msn_group_written_cb);
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
727 msn_soap_post(contact->soapconn,soap_request,msn_contact_connect_init);
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
728 }
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
729
19794
b22d13f55232 [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 19793
diff changeset
730 /*delete a group*/
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
731 void msn_del_group(MsnSession *session,const char *guid)
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
732 {
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
733 MsnSoapReq *soap_request;
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
734 MsnContact *contact;
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
735 char *body = NULL;
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
736
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
737 g_return_if_fail(session != NULL);
19827
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
738 /*if group uid we need to del is NULL,
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
739 * we need to delete nothing
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
740 */
349b85feaefa [gaim-migrate @ 17043]
Ma Yuan <mayuan2006@gmail.com>
parents: 19826
diff changeset
741 g_return_if_fail(guid != NULL);
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
742 contact = session->contact;
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
743 gaim_debug_info("MaYuan","msn del group...\n");
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
744
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
745 body = g_strdup_printf(MSN_GROUP_DEL_TEMPLATE,guid);
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
746 /*build SOAP and POST it*/
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
747 soap_request = msn_soap_request_new(MSN_CONTACT_SERVER,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
748 MSN_ADDRESS_BOOK_POST_URL,MSN_GROUP_DEL_SOAP_ACTION,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
749 body,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
750 msn_group_read_cb,
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
751 msn_group_written_cb);
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
752 msn_soap_post(contact->soapconn,soap_request,msn_contact_connect_init);
19804
22eeb4882d77 [gaim-migrate @ 16790]
Ma Yuan <mayuan2006@gmail.com>
parents: 19800
diff changeset
753
19795
38e4a4b404e5 [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 19794
diff changeset
754 g_free(body);
19793
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
755 }
1b48fbbd0e61 [gaim-migrate @ 16655]
Ma Yuan <mayuan2006@gmail.com>
parents: 19790
diff changeset
756
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
757 void
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
758 msn_contact_connect_init(MsnSoapConn *soapconn)
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
759 {
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
760 /* Authenticate via Windows Live ID. */
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
761 gaim_debug_info("MaYuan","msn_contact_connect...\n");
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
762
19806
cabf9165c9ce [gaim-migrate @ 16873]
Ma Yuan <mayuan2006@gmail.com>
parents: 19804
diff changeset
763 msn_soap_init(soapconn,MSN_CONTACT_SERVER,1,
19784
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
764 msn_contact_login_connect_cb,
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
765 msn_contact_login_error_cb);
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
766 }
bc30c6270d9f [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents:
diff changeset
767