src/protocols/msn/contact.c

Sun, 27 Aug 2006 11:45:02 +0000

author
Ma Yuan <mayuan2006@gmail.com>
date
Sun, 27 Aug 2006 11:45:02 +0000
branch
soc.2006.msnp13
changeset 13901
d16c4f6cd30e
parent 13898
9bc455f616cb
child 13904
bf212b898744
permissions
-rw-r--r--

[gaim-migrate @ 17057]
fix contact delete bug:
when Send ADL,NS disconnect.<fix the add/delte XML format>
committed by MaYuan<mayuan2006@gmail.com>


committer: Ethan Blanton <elb@pidgin.im>

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

mercurial