Mercurial > pidgin
annotate libgaim/protocols/msn/notification.c @ 20389:e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
to branch 'im.pidgin.rlaager.merging.soc-msnp13-to-svn18164' (head 5b5cde92182d2a922a8e7e6c2308342a5490a8c9)
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Sun, 15 Apr 2007 02:10:37 +0000 |
parents | 7a8d6f5566cd |
children | 0b0ecee55091 |
rev | line source |
---|---|
14192 | 1 /** |
2 * @file notification.c Notification server functions | |
3 * | |
4 * gaim | |
5 * | |
6 * Gaim is the legal property of its developers, whose names are too numerous | |
7 * to list here. Please refer to the COPYRIGHT file distributed with this | |
8 * source distribution. | |
9 * | |
10 * This program is free software; you can redistribute it and/or modify | |
11 * it under the terms of the GNU General Public License as published by | |
12 * the Free Software Foundation; either version 2 of the License, or | |
13 * (at your option) any later version. | |
14 * | |
15 * This program is distributed in the hope that it will be useful, | |
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 * GNU General Public License for more details. | |
19 * | |
20 * You should have received a copy of the GNU General Public License | |
21 * along with this program; if not, write to the Free Software | |
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 */ | |
24 #include "msn.h" | |
25 #include "notification.h" | |
26 #include "state.h" | |
27 #include "error.h" | |
28 #include "msn-utils.h" | |
29 #include "page.h" | |
30 | |
31 #include "userlist.h" | |
32 #include "sync.h" | |
33 #include "slplink.h" | |
34 | |
35 static MsnTable *cbs_table; | |
36 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
37 /**************************************************************************** |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
38 * Local Function Prototype |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
39 ****************************************************************************/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
40 void msn_notification_post_adl(MsnCmdProc *cmdproc,char *payload ,int payload_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
41 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
42 void msn_add_contact_xml(xmlnode *mlNode,const char *passport,int list_op,int type); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
43 |
14192 | 44 /************************************************************************** |
45 * Main | |
46 **************************************************************************/ | |
47 | |
48 static void | |
49 destroy_cb(MsnServConn *servconn) | |
50 { | |
51 MsnNotification *notification; | |
52 | |
53 notification = servconn->cmdproc->data; | |
54 g_return_if_fail(notification != NULL); | |
55 | |
56 msn_notification_destroy(notification); | |
57 } | |
58 | |
59 MsnNotification * | |
60 msn_notification_new(MsnSession *session) | |
61 { | |
62 MsnNotification *notification; | |
63 MsnServConn *servconn; | |
64 | |
65 g_return_val_if_fail(session != NULL, NULL); | |
66 | |
67 notification = g_new0(MsnNotification, 1); | |
68 | |
69 notification->session = session; | |
70 notification->servconn = servconn = msn_servconn_new(session, MSN_SERVCONN_NS); | |
71 msn_servconn_set_destroy_cb(servconn, destroy_cb); | |
72 | |
73 notification->cmdproc = servconn->cmdproc; | |
74 notification->cmdproc->data = notification; | |
75 notification->cmdproc->cbs_table = cbs_table; | |
76 | |
77 return notification; | |
78 } | |
79 | |
80 void | |
81 msn_notification_destroy(MsnNotification *notification) | |
82 { | |
83 notification->cmdproc->data = NULL; | |
84 | |
85 msn_servconn_set_destroy_cb(notification->servconn, NULL); | |
86 | |
87 msn_servconn_destroy(notification->servconn); | |
88 | |
89 g_free(notification); | |
90 } | |
91 | |
92 /************************************************************************** | |
93 * Connect | |
94 **************************************************************************/ | |
95 | |
96 static void | |
97 connect_cb(MsnServConn *servconn) | |
98 { | |
99 MsnCmdProc *cmdproc; | |
100 MsnSession *session; | |
101 GaimAccount *account; | |
102 char **a, **c, *vers; | |
103 int i; | |
104 | |
105 g_return_if_fail(servconn != NULL); | |
106 | |
107 cmdproc = servconn->cmdproc; | |
108 session = servconn->session; | |
109 account = session->account; | |
110 | |
111 /* Allocate an array for CVR0, NULL, and all the versions */ | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
112 // a = c = g_new0(char *, session->protocol_ver - WLM_MIN_PROTOCOL + 3); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
113 a = c = g_new0(char *, WLM_MAX_PROTOCOL - WLM_MIN_PROTOCOL + 3); |
14192 | 114 |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
115 // for (i = session->protocol_ver; i >= WLM_MIN_PROTOCOL; i--) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
116 for (i = WLM_MAX_PROTOCOL; i >= WLM_MIN_PROTOCOL; i--) |
14192 | 117 *c++ = g_strdup_printf("MSNP%d", i); |
118 | |
119 *c++ = g_strdup("CVR0"); | |
120 | |
121 vers = g_strjoinv(" ", a); | |
122 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
123 if (session->login_step == MSN_LOGIN_STEP_START){ |
14192 | 124 msn_session_set_login_step(session, MSN_LOGIN_STEP_HANDSHAKE); |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
125 }else{ |
14192 | 126 msn_session_set_login_step(session, MSN_LOGIN_STEP_HANDSHAKE2); |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
127 } |
14192 | 128 |
129 msn_cmdproc_send(cmdproc, "VER", "%s", vers); | |
130 | |
131 g_strfreev(a); | |
132 g_free(vers); | |
133 } | |
134 | |
135 gboolean | |
136 msn_notification_connect(MsnNotification *notification, const char *host, int port) | |
137 { | |
138 MsnServConn *servconn; | |
139 | |
140 g_return_val_if_fail(notification != NULL, FALSE); | |
141 | |
142 servconn = notification->servconn; | |
143 | |
144 msn_servconn_set_connect_cb(servconn, connect_cb); | |
145 notification->in_use = msn_servconn_connect(servconn, host, port); | |
146 | |
147 return notification->in_use; | |
148 } | |
149 | |
150 void | |
151 msn_notification_disconnect(MsnNotification *notification) | |
152 { | |
153 g_return_if_fail(notification != NULL); | |
154 g_return_if_fail(notification->in_use); | |
155 | |
156 msn_servconn_disconnect(notification->servconn); | |
157 | |
158 notification->in_use = FALSE; | |
159 } | |
160 | |
161 /************************************************************************** | |
162 * Util | |
163 **************************************************************************/ | |
164 | |
165 static void | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
166 group_error_helper(MsnSession *session, const char *msg, const char *group_id, int error) |
14192 | 167 { |
168 GaimAccount *account; | |
169 GaimConnection *gc; | |
170 char *reason = NULL; | |
171 char *title = NULL; | |
172 | |
173 account = session->account; | |
174 gc = gaim_account_get_connection(account); | |
175 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
176 if (error == 224){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
177 if (group_id == 0){ |
14192 | 178 return; |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
179 }else{ |
14192 | 180 const char *group_name; |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
181 group_name = msn_userlist_find_group_name(session->userlist,group_id); |
14192 | 182 reason = g_strdup_printf(_("%s is not a valid group."), |
183 group_name); | |
184 } | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
185 }else{ |
14192 | 186 reason = g_strdup(_("Unknown error.")); |
187 } | |
188 | |
189 title = g_strdup_printf(_("%s on %s (%s)"), msg, | |
190 gaim_account_get_username(account), | |
191 gaim_account_get_protocol_name(account)); | |
192 gaim_notify_error(gc, NULL, title, reason); | |
193 g_free(title); | |
194 g_free(reason); | |
195 } | |
196 | |
197 /************************************************************************** | |
198 * Login | |
199 **************************************************************************/ | |
200 | |
201 void | |
202 msn_got_login_params(MsnSession *session, const char *login_params) | |
203 { | |
204 MsnCmdProc *cmdproc; | |
205 | |
206 cmdproc = session->notification->cmdproc; | |
207 | |
208 msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_END); | |
209 | |
210 msn_cmdproc_send(cmdproc, "USR", "TWN S %s", login_params); | |
211 } | |
212 | |
213 static void | |
214 cvr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
215 { | |
216 GaimAccount *account; | |
217 | |
218 account = cmdproc->session->account; | |
219 msn_cmdproc_send(cmdproc, "USR", "TWN I %s", | |
220 gaim_account_get_username(account)); | |
221 } | |
222 | |
223 static void | |
224 usr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
225 { | |
226 MsnSession *session; | |
227 GaimAccount *account; | |
228 GaimConnection *gc; | |
229 | |
230 session = cmdproc->session; | |
231 account = session->account; | |
232 gc = gaim_account_get_connection(account); | |
233 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
234 if (!g_ascii_strcasecmp(cmd->params[1], "OK")){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
235 /* authenticate OK */ |
14192 | 236 const char *friendly = gaim_url_decode(cmd->params[3]); |
237 | |
238 gaim_connection_set_display_name(gc, friendly); | |
239 | |
240 msn_session_set_login_step(session, MSN_LOGIN_STEP_SYN); | |
241 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
242 // msn_cmdproc_send(cmdproc, "SYN", "%s", "0"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
243 //TODO we should use SOAP contact to fetch contact list |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
244 }else if (!g_ascii_strcasecmp(cmd->params[1], "TWN")){ |
14192 | 245 /* Passport authentication */ |
246 char **elems, **cur, **tokens; | |
247 | |
248 session->nexus = msn_nexus_new(session); | |
249 | |
250 /* Parse the challenge data. */ | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
251 session->nexus->challenge_data_str = g_strdup(cmd->params[3]); |
14192 | 252 elems = g_strsplit(cmd->params[3], ",", 0); |
253 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
254 for (cur = elems; *cur != NULL; cur++){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
255 tokens = g_strsplit(*cur, "=", 2); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
256 if(tokens[0]&&tokens[1]){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
257 gaim_debug_info("MaYuan","challenge %p,key:%s,value:%s\n", |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
258 session->nexus->challenge_data,tokens[0],tokens[1]); |
14192 | 259 g_hash_table_insert(session->nexus->challenge_data, tokens[0], tokens[1]); |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
260 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
261 /* Don't free each of the tokens, only the array. */ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
262 g_free(tokens); |
14192 | 263 } |
264 | |
265 g_strfreev(elems); | |
266 | |
267 msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_START); | |
268 | |
269 msn_nexus_connect(session->nexus); | |
270 } | |
271 } | |
272 | |
273 static void | |
274 usr_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) | |
275 { | |
276 MsnErrorType msnerr = 0; | |
277 | |
278 switch (error) | |
279 { | |
280 case 500: | |
281 case 601: | |
282 case 910: | |
283 case 921: | |
284 msnerr = MSN_ERROR_SERV_UNAVAILABLE; | |
285 break; | |
286 case 911: | |
287 msnerr = MSN_ERROR_AUTH; | |
288 break; | |
289 default: | |
290 return; | |
291 break; | |
292 } | |
293 | |
294 msn_session_set_error(cmdproc->session, msnerr, NULL); | |
295 } | |
296 | |
297 static void | |
298 ver_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
299 { | |
300 MsnSession *session; | |
301 GaimAccount *account; | |
302 gboolean protocol_supported = FALSE; | |
303 char proto_str[8]; | |
304 size_t i; | |
305 | |
306 session = cmdproc->session; | |
307 account = session->account; | |
308 | |
309 g_snprintf(proto_str, sizeof(proto_str), "MSNP%d", session->protocol_ver); | |
310 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
311 for (i = 1; i < cmd->param_count -1; i++){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
312 gaim_debug_info("MaYuan","%s,proto_str:%s\n",cmd->params[i],proto_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
313 if (strcmp(cmd->params[i], proto_str) >= 0) { |
14192 | 314 protocol_supported = TRUE; |
315 break; | |
316 } | |
317 } | |
318 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
319 if (!protocol_supported){ |
14192 | 320 msn_session_set_error(session, MSN_ERROR_UNSUPPORTED_PROTOCOL, |
321 NULL); | |
322 return; | |
323 } | |
324 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
325 /* |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
326 * Windows Live Messenger 8.0 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
327 * Notice :CVR String discriminate! |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
328 * reference of http://www.microsoft.com/globaldev/reference/oslocversion.mspx |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
329 * to see the Local ID |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
330 */ |
14192 | 331 msn_cmdproc_send(cmdproc, "CVR", |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
332 // "0x0409 winnt 5.1 i386 MSG80BETA 8.0.0689 msmsgs %s", |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
333 "0x0804 winnt 5.1 i386 MSNMSGR 8.0.0792 msmsgs %s", |
14192 | 334 gaim_account_get_username(account)); |
335 } | |
336 | |
337 /************************************************************************** | |
338 * Log out | |
339 **************************************************************************/ | |
340 | |
341 static void | |
342 out_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
343 { | |
344 if (!g_ascii_strcasecmp(cmd->params[0], "OTH")) | |
345 msn_session_set_error(cmdproc->session, MSN_ERROR_SIGN_OTHER, | |
346 NULL); | |
347 else if (!g_ascii_strcasecmp(cmd->params[0], "SSD")) | |
348 msn_session_set_error(cmdproc->session, MSN_ERROR_SERV_DOWN, NULL); | |
349 } | |
350 | |
351 void | |
352 msn_notification_close(MsnNotification *notification) | |
353 { | |
354 g_return_if_fail(notification != NULL); | |
355 | |
356 if (!notification->in_use) | |
357 return; | |
358 | |
359 msn_cmdproc_send_quick(notification->cmdproc, "OUT", NULL, NULL); | |
360 | |
361 msn_notification_disconnect(notification); | |
362 } | |
363 | |
364 /************************************************************************** | |
365 * Messages | |
366 **************************************************************************/ | |
367 | |
368 static void | |
369 msg_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, | |
370 size_t len) | |
371 { | |
372 MsnMessage *msg; | |
373 | |
374 msg = msn_message_new_from_cmd(cmdproc->session, cmd); | |
375 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
376 msn_message_parse_payload(msg, payload, len,MSG_LINE_DEM,MSG_BODY_DEM); |
14192 | 377 #ifdef MSN_DEBUG_NS |
378 msn_message_show_readable(msg, "Notification", TRUE); | |
379 #endif | |
380 | |
381 msn_cmdproc_process_msg(cmdproc, msg); | |
382 | |
383 msn_message_destroy(msg); | |
384 } | |
385 | |
386 static void | |
387 msg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
388 { | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
389 gaim_debug_info("MaYuan","Processing MSG... \n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
390 if(cmd->payload_len == 0){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
391 return; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
392 } |
14192 | 393 /* NOTE: cmd is not always cmdproc->last_cmd, sometimes cmd is a queued |
394 * command and we are processing it */ | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
395 if (cmd->payload == NULL){ |
14192 | 396 cmdproc->last_cmd->payload_cb = msg_cmd_post; |
397 cmdproc->servconn->payload_len = atoi(cmd->params[2]); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
398 }else{ |
14192 | 399 g_return_if_fail(cmd->payload_cb != NULL); |
400 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
401 gaim_debug_info("MaYuan","MSG payload:{%s}\n",cmd->payload); |
14192 | 402 cmd->payload_cb(cmdproc, cmd, cmd->payload, cmd->payload_len); |
403 } | |
404 } | |
405 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
406 /*send Message to Yahoo Messenger*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
407 void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
408 uum_send_msg(MsnSession *session,MsnMessage *msg) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
409 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
410 MsnCmdProc *cmdproc; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
411 MsnTransaction *trans; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
412 char *payload; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
413 gsize payload_len; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
414 int type; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
415 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
416 cmdproc = session->notification->cmdproc; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
417 g_return_if_fail(msg != NULL); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
418 payload = msn_message_gen_payload(msg, &payload_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
419 gaim_debug_info("MaYuan","send UUM,payload{%s},strlen:%d,len:%d\n", |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
420 payload,strlen(payload),payload_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
421 type = msg->type; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
422 trans = msn_transaction_new(cmdproc, "UUM","%s 32 %d %d",msg->remote_user,type,payload_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
423 msn_transaction_set_payload(trans, payload, strlen(payload)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
424 msn_cmdproc_send_trans(cmdproc, trans); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
425 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
426 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
427 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
428 ubm_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
429 size_t len) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
430 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
431 MsnMessage *msg; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
432 GaimConnection *gc; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
433 const char *passport; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
434 const char *content_type; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
435 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
436 gaim_debug_info("MaYuan","Process UBM payload:%s\n",payload); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
437 msg = msn_message_new_from_cmd(cmdproc->session, cmd); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
438 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
439 msn_message_parse_payload(msg, payload, len,MSG_LINE_DEM,MSG_BODY_DEM); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
440 #ifdef MSN_DEBUG_NS |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
441 msn_message_show_readable(msg, "Notification", TRUE); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
442 #endif |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
443 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
444 gc = cmdproc->session->account->gc; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
445 passport = msg->remote_user; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
446 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
447 content_type = msn_message_get_content_type(msg); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
448 gaim_debug_info("MaYuan","type:%d\n",content_type); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
449 if(!strcmp(content_type,"text/plain")){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
450 const char *value; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
451 const char *body; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
452 char *body_str; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
453 char *body_enc; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
454 char *body_final = NULL; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
455 size_t body_len; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
456 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
457 body = msn_message_get_bin_data(msg, &body_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
458 body_str = g_strndup(body, body_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
459 body_enc = g_markup_escape_text(body_str, -1); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
460 g_free(body_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
461 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
462 if ((value = msn_message_get_attr(msg, "X-MMS-IM-Format")) != NULL) { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
463 char *pre, *post; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
464 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
465 msn_parse_format(value, &pre, &post); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
466 body_final = g_strdup_printf("%s%s%s", pre ? pre : "", |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
467 body_enc ? body_enc : "", post ? post : ""); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
468 g_free(pre); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
469 g_free(post); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
470 g_free(body_enc); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
471 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
472 serv_got_im(gc, passport, body_final, 0, time(NULL)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
473 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
474 if(!strcmp(content_type,"text/x-msmsgscontrol")){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
475 if(msn_message_get_attr(msg, "TypingUser") != NULL){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
476 serv_got_typing(gc, passport, MSN_TYPING_RECV_TIMEOUT, |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
477 GAIM_TYPING); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
478 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
479 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
480 if(!strcmp(content_type,"text/x-msnmsgr-datacast")){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
481 char *username, *str; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
482 GaimAccount *account; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
483 GaimBuddy *buddy; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
484 const char *user; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
485 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
486 account = cmdproc->session->account; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
487 user = msg->remote_user; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
488 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
489 if ((buddy = gaim_find_buddy(account, user)) != NULL){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
490 username = g_markup_escape_text(gaim_buddy_get_alias(buddy), -1); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
491 }else{ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
492 username = g_markup_escape_text(user, -1); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
493 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
494 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
495 str = g_strdup_printf(_("%s just sent you a Nudge!"), username); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
496 g_free(username); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
497 msn_session_report_user(cmdproc->session,user,str,GAIM_MESSAGE_SYSTEM); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
498 g_free(str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
499 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
500 msn_message_destroy(msg); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
501 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
502 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
503 /*Yahoo msg process*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
504 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
505 ubm_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
506 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
507 gaim_debug_info("MaYuan","Processing UBM... \n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
508 if(cmd->payload_len == 0){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
509 return; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
510 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
511 /* NOTE: cmd is not always cmdproc->last_cmd, sometimes cmd is a queued |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
512 * command and we are processing it */ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
513 if (cmd->payload == NULL){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
514 cmdproc->last_cmd->payload_cb = ubm_cmd_post; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
515 cmdproc->servconn->payload_len = atoi(cmd->params[2]); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
516 }else{ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
517 g_return_if_fail(cmd->payload_cb != NULL); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
518 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
519 gaim_debug_info("MaYuan","UBM payload:{%s}\n",cmd->payload); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
520 ubm_cmd_post(cmdproc, cmd, cmd->payload, cmd->payload_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
521 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
522 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
523 |
14192 | 524 /************************************************************************** |
525 * Challenges | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
526 * we use MD5 to caculate the Chanllenges |
14192 | 527 **************************************************************************/ |
528 static void | |
529 chl_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
530 { | |
531 MsnTransaction *trans; | |
532 char buf[33]; | |
533 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
534 #if 0 |
14192 | 535 cipher = gaim_ciphers_find_cipher("md5"); |
536 context = gaim_cipher_context_new(cipher, NULL); | |
537 gaim_cipher_context_append(context, (const guchar *)cmd->params[1], | |
538 strlen(cmd->params[1])); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
539 challenge_resp = MSNP13_WLM_PRODUCT_KEY; |
14192 | 540 |
541 gaim_cipher_context_append(context, (const guchar *)challenge_resp, | |
542 strlen(challenge_resp)); | |
543 gaim_cipher_context_digest(context, sizeof(digest), digest, NULL); | |
544 gaim_cipher_context_destroy(context); | |
545 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
546 for (i = 0; i < 16; i++){ |
14192 | 547 g_snprintf(buf + (i*2), 3, "%02x", digest[i]); |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
548 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
549 #else |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
550 msn_handle_chl(cmd->params[1], buf); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
551 #endif |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
552 // gaim_debug_info("MaYuan","<<challenge:{%s}:{%s}\n",cmd->params[1],buf); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
553 trans = msn_transaction_new(cmdproc, "QRY", "%s 32", MSNP13_WLM_PRODUCT_ID); |
14192 | 554 |
555 msn_transaction_set_payload(trans, buf, 32); | |
556 | |
557 msn_cmdproc_send_trans(cmdproc, trans); | |
558 } | |
559 | |
560 /************************************************************************** | |
561 * Buddy Lists | |
562 **************************************************************************/ | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
563 /* add contact to xmlnode */ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
564 void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
565 msn_add_contact_xml(xmlnode *mlNode,const char *passport,int list_op,int type) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
566 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
567 xmlnode *d_node,*c_node; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
568 char **tokens; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
569 char *email,*domain; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
570 char *list_op_str,*type_str; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
571 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
572 gaim_debug_info("MaYuan","passport:%s\n",passport); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
573 tokens = g_strsplit(passport, "@", 2); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
574 email = tokens[0]; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
575 domain = tokens[1]; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
576 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
577 /*find a domain Node*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
578 for(d_node = xmlnode_get_child(mlNode,"d"); d_node; d_node = xmlnode_get_next_twin(d_node)){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
579 const char * attr = NULL; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
580 gaim_debug_info("MaYuan","d_node:%s\n",d_node->name); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
581 attr = xmlnode_get_attrib(d_node,"n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
582 if(attr == NULL){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
583 continue; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
584 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
585 if(!strcmp(attr,domain)){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
586 break; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
587 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
588 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
589 if(d_node == NULL){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
590 /*domain not found, create a new domain Node*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
591 gaim_debug_info("MaYuan","get No d_node\n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
592 d_node = xmlnode_new("d"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
593 xmlnode_set_attrib(d_node,"n",domain); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
594 xmlnode_insert_child(mlNode,d_node); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
595 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
596 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
597 /*create contact node*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
598 c_node = xmlnode_new("c"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
599 xmlnode_set_attrib(c_node,"n",email); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
600 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
601 list_op_str = g_strdup_printf("%d",list_op); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
602 gaim_debug_info("MaYuan","list_op:%d\n",list_op_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
603 xmlnode_set_attrib(c_node,"l",list_op_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
604 g_free(list_op_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
605 #if 0 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
606 type_str = g_strdup_printf("%d",type); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
607 xmlnode_set_attrib(c_node,"t",type_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
608 #else |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
609 if(g_strrstr(domain,"yahoo") != NULL){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
610 type_str = g_strdup_printf("32"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
611 }else{ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
612 /*passport*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
613 type_str = g_strdup_printf("1"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
614 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
615 /*mobile*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
616 //type_str = g_strdup_printf("4"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
617 xmlnode_set_attrib(c_node,"t",type_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
618 g_free(type_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
619 #endif |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
620 xmlnode_insert_child(d_node, c_node); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
621 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
622 g_free(tokens); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
623 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
624 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
625 void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
626 msn_notification_post_adl(MsnCmdProc *cmdproc,char *payload, int payload_len) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
627 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
628 MsnTransaction *trans; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
629 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
630 gaim_debug_info("MaYuan","Send ADL{%s}\n",payload); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
631 trans = msn_transaction_new(cmdproc, "ADL","%d",strlen(payload)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
632 msn_transaction_set_payload(trans, payload, strlen(payload)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
633 msn_cmdproc_send_trans(cmdproc, trans); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
634 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
635 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
636 /*dump contact info to NS*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
637 void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
638 msn_notification_dump_contact(MsnSession *session) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
639 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
640 MsnUserList *userlist; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
641 MsnUser *user; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
642 GList *l; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
643 xmlnode *adl_node; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
644 char *payload; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
645 int payload_len; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
646 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
647 userlist = session->userlist; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
648 adl_node = xmlnode_new("ml"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
649 adl_node->child = NULL; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
650 xmlnode_set_attrib(adl_node, "l", "1"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
651 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
652 /*get the userlist*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
653 for (l = userlist->users; l != NULL; l = l->next){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
654 user = l->data; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
655 msn_add_contact_xml(adl_node,user->passport,user->list_op&MSN_LIST_OP_MASK,user->type); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
656 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
657 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
658 payload = xmlnode_to_str(adl_node,&payload_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
659 xmlnode_free(adl_node); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
660 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
661 msn_notification_post_adl(session->notification->cmdproc,payload,payload_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
662 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
663 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
664 /*Post FQY to NS,Inform add a Yahoo User*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
665 void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
666 msn_notification_fqy_yahoo(MsnSession *session,char *passport) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
667 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
668 MsnTransaction *trans; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
669 MsnCmdProc *cmdproc; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
670 char* email,*domain,*payload; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
671 char **tokens; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
672 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
673 cmdproc = session->notification->cmdproc; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
674 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
675 tokens = g_strsplit(passport, "@", 2); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
676 email = tokens[0]; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
677 domain = tokens[1]; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
678 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
679 payload = g_strdup_printf("<ml><d n=\"%s\"><c n=\"%s\"/></d></ml>",domain,email); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
680 trans = msn_transaction_new(cmdproc, "FQY","%d",strlen(payload)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
681 msn_transaction_set_payload(trans, payload, strlen(payload)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
682 msn_cmdproc_send_trans(cmdproc, trans); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
683 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
684 g_free(payload); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
685 g_free(tokens); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
686 } |
14192 | 687 |
688 static void | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
689 blp_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
690 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
691 gaim_debug_info("MaYuan","Process BLP\n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
692 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
693 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
694 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
695 adl_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
14192 | 696 { |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
697 gaim_debug_info("MaYuan","Process ADL\n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
698 } |
14192 | 699 |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
700 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
701 fqy_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
702 size_t len) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
703 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
704 gaim_debug_info("MaYuan","FQY payload{%s}\n",payload); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
705 msn_notification_post_adl(cmdproc,payload,len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
706 } |
14192 | 707 |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
708 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
709 fqy_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
710 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
711 gaim_debug_info("MaYuan","Process FQY\n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
712 cmdproc->last_cmd->payload_cb = fqy_cmd_post; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
713 } |
14192 | 714 |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
715 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
716 rml_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
717 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
718 MsnTransaction *trans; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
719 char * payload; |
14192 | 720 |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
721 gaim_debug_info("MaYuan","Process ADL\n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
722 #if 0 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
723 trans = msn_transaction_new(cmdproc, "RML",""); |
14192 | 724 |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
725 msn_transaction_set_payload(trans, payload, strlen(payload)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
726 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
727 msn_cmdproc_send_trans(cmdproc, trans); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
728 #endif |
14192 | 729 } |
730 | |
731 static void | |
732 add_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) | |
733 { | |
734 MsnSession *session; | |
735 GaimAccount *account; | |
736 GaimConnection *gc; | |
737 const char *list, *passport; | |
738 char *reason = NULL; | |
739 char *msg = NULL; | |
740 char **params; | |
741 | |
742 session = cmdproc->session; | |
743 account = session->account; | |
744 gc = gaim_account_get_connection(account); | |
745 params = g_strsplit(trans->params, " ", 0); | |
746 | |
747 list = params[0]; | |
748 passport = params[1]; | |
749 | |
750 if (!strcmp(list, "FL")) | |
751 msg = g_strdup_printf(_("Unable to add user on %s (%s)"), | |
752 gaim_account_get_username(account), | |
753 gaim_account_get_protocol_name(account)); | |
754 else if (!strcmp(list, "BL")) | |
755 msg = g_strdup_printf(_("Unable to block user on %s (%s)"), | |
756 gaim_account_get_username(account), | |
757 gaim_account_get_protocol_name(account)); | |
758 else if (!strcmp(list, "AL")) | |
759 msg = g_strdup_printf(_("Unable to permit user on %s (%s)"), | |
760 gaim_account_get_username(account), | |
761 gaim_account_get_protocol_name(account)); | |
762 | |
763 if (!strcmp(list, "FL")) | |
764 { | |
765 if (error == 210) | |
766 { | |
767 reason = g_strdup_printf(_("%s could not be added because " | |
768 "your buddy list is full."), passport); | |
769 } | |
770 } | |
771 | |
772 if (reason == NULL) | |
773 { | |
774 if (error == 208) | |
775 { | |
776 reason = g_strdup_printf(_("%s is not a valid passport account."), | |
777 passport); | |
778 } | |
779 else if (error == 500) | |
780 { | |
781 reason = g_strdup(_("Service Temporarily Unavailable.")); | |
782 } | |
783 else | |
784 { | |
785 reason = g_strdup(_("Unknown error.")); | |
786 } | |
787 } | |
788 | |
789 if (msg != NULL) | |
790 { | |
791 gaim_notify_error(gc, NULL, msg, reason); | |
792 g_free(msg); | |
793 } | |
794 | |
795 if (!strcmp(list, "FL")) | |
796 { | |
797 GaimBuddy *buddy; | |
798 | |
799 buddy = gaim_find_buddy(account, passport); | |
800 | |
801 if (buddy != NULL) | |
802 gaim_blist_remove_buddy(buddy); | |
803 } | |
804 | |
805 g_free(reason); | |
806 | |
807 g_strfreev(params); | |
808 } | |
809 | |
810 static void | |
811 adg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
812 { | |
813 MsnSession *session; | |
814 gint group_id; | |
815 const char *group_name; | |
816 | |
817 session = cmdproc->session; | |
818 | |
819 group_id = atoi(cmd->params[3]); | |
820 | |
821 group_name = gaim_url_decode(cmd->params[2]); | |
822 | |
823 msn_group_new(session->userlist, group_id, group_name); | |
824 | |
825 /* There is a user that must me moved to this group */ | |
826 if (cmd->trans->data) | |
827 { | |
828 /* msn_userlist_move_buddy(); */ | |
829 MsnUserList *userlist = cmdproc->session->userlist; | |
830 MsnMoveBuddy *data = cmd->trans->data; | |
831 | |
832 if (data->old_group_name != NULL) | |
833 { | |
834 msn_userlist_rem_buddy(userlist, data->who, MSN_LIST_FL, data->old_group_name); | |
835 g_free(data->old_group_name); | |
836 } | |
837 | |
838 msn_userlist_add_buddy(userlist, data->who, MSN_LIST_FL, group_name); | |
839 g_free(data->who); | |
840 | |
841 } | |
842 } | |
843 | |
844 static void | |
845 fln_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
846 { | |
847 MsnSlpLink *slplink; | |
848 MsnUser *user; | |
849 | |
850 user = msn_userlist_find_user(cmdproc->session->userlist, cmd->params[0]); | |
851 | |
852 user->status = "offline"; | |
853 msn_user_update(user); | |
854 | |
855 slplink = msn_session_find_slplink(cmdproc->session, cmd->params[0]); | |
856 | |
857 if (slplink != NULL) | |
858 msn_slplink_destroy(slplink); | |
859 | |
860 } | |
861 | |
862 static void | |
863 iln_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
864 { | |
865 MsnSession *session; | |
866 GaimAccount *account; | |
867 GaimConnection *gc; | |
868 MsnUser *user; | |
869 MsnObject *msnobj; | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
870 int wlmclient; |
14192 | 871 const char *state, *passport, *friendly; |
872 | |
873 session = cmdproc->session; | |
874 account = session->account; | |
875 gc = gaim_account_get_connection(account); | |
876 | |
877 state = cmd->params[1]; | |
878 passport = cmd->params[2]; | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
879 /*if a contact is actually on the WLM part or the yahoo part*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
880 wlmclient = atoi(cmd->params[3]); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
881 friendly = gaim_url_decode(cmd->params[4]); |
14192 | 882 |
883 user = msn_userlist_find_user(session->userlist, passport); | |
884 | |
885 serv_got_alias(gc, passport, friendly); | |
886 | |
887 msn_user_set_friendly_name(user, friendly); | |
888 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
889 if (session->protocol_ver >= 9 && cmd->param_count == 8){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
890 msnobj = msn_object_new_from_string(gaim_url_decode(cmd->params[6])); |
14192 | 891 msn_user_set_object(user, msnobj); |
892 } | |
893 | |
894 msn_user_set_state(user, state); | |
895 msn_user_update(user); | |
896 } | |
897 | |
898 static void | |
899 ipg_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len) | |
900 { | |
901 #if 0 | |
902 gaim_debug_misc("msn", "Incoming Page: {%s}\n", payload); | |
903 #endif | |
904 } | |
905 | |
906 static void | |
907 ipg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
908 { | |
909 cmdproc->servconn->payload_len = atoi(cmd->params[0]); | |
910 cmdproc->last_cmd->payload_cb = ipg_cmd_post; | |
911 } | |
912 | |
913 static void | |
914 nln_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
915 { | |
916 MsnSession *session; | |
917 GaimAccount *account; | |
918 GaimConnection *gc; | |
919 MsnUser *user; | |
920 MsnObject *msnobj; | |
921 int clientid; | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
922 int wlmclient; |
14484
1f81919515ae
[gaim-migrate @ 17203]
Richard Laager <rlaager@wiktel.com>
parents:
14192
diff
changeset
|
923 const char *state, *passport, *friendly, *old_friendly; |
14192 | 924 |
925 session = cmdproc->session; | |
926 account = session->account; | |
927 gc = gaim_account_get_connection(account); | |
928 | |
929 state = cmd->params[0]; | |
930 passport = cmd->params[1]; | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
931 wlmclient = atoi(cmd->params[2]); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
932 friendly = gaim_url_decode(cmd->params[3]); |
14192 | 933 |
934 user = msn_userlist_find_user(session->userlist, passport); | |
935 | |
14484
1f81919515ae
[gaim-migrate @ 17203]
Richard Laager <rlaager@wiktel.com>
parents:
14192
diff
changeset
|
936 old_friendly = msn_user_get_friendly_name(user); |
14494
0aa6adcdd819
[gaim-migrate @ 17213]
Richard Laager <rlaager@wiktel.com>
parents:
14484
diff
changeset
|
937 if (!old_friendly || (old_friendly && strcmp(old_friendly, friendly))) |
14484
1f81919515ae
[gaim-migrate @ 17203]
Richard Laager <rlaager@wiktel.com>
parents:
14192
diff
changeset
|
938 { |
1f81919515ae
[gaim-migrate @ 17203]
Richard Laager <rlaager@wiktel.com>
parents:
14192
diff
changeset
|
939 serv_got_alias(gc, passport, friendly); |
1f81919515ae
[gaim-migrate @ 17203]
Richard Laager <rlaager@wiktel.com>
parents:
14192
diff
changeset
|
940 msn_user_set_friendly_name(user, friendly); |
1f81919515ae
[gaim-migrate @ 17203]
Richard Laager <rlaager@wiktel.com>
parents:
14192
diff
changeset
|
941 } |
14192 | 942 |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
943 if (session->protocol_ver >= 9){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
944 if (cmd->param_count == 7){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
945 msnobj = msn_object_new_from_string(gaim_url_decode(cmd->params[5])); |
14192 | 946 msn_user_set_object(user, msnobj); |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
947 }else{ |
14192 | 948 msn_user_set_object(user, NULL); |
949 } | |
950 } | |
951 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
952 clientid = atoi(cmd->params[4]); |
14192 | 953 user->mobile = (clientid & MSN_CLIENT_CAP_MSNMOBILE); |
954 | |
955 msn_user_set_state(user, state); | |
956 msn_user_update(user); | |
957 } | |
958 | |
959 #if 0 | |
960 static void | |
961 chg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
962 { | |
963 char *state = cmd->params[1]; | |
964 int state_id = 0; | |
965 | |
966 if (!strcmp(state, "NLN")) | |
967 state_id = MSN_ONLINE; | |
968 else if (!strcmp(state, "BSY")) | |
969 state_id = MSN_BUSY; | |
970 else if (!strcmp(state, "IDL")) | |
971 state_id = MSN_IDLE; | |
972 else if (!strcmp(state, "BRB")) | |
973 state_id = MSN_BRB; | |
974 else if (!strcmp(state, "AWY")) | |
975 state_id = MSN_AWAY; | |
976 else if (!strcmp(state, "PHN")) | |
977 state_id = MSN_PHONE; | |
978 else if (!strcmp(state, "LUN")) | |
979 state_id = MSN_LUNCH; | |
980 else if (!strcmp(state, "HDN")) | |
981 state_id = MSN_HIDDEN; | |
982 | |
983 cmdproc->session->state = state_id; | |
984 } | |
985 #endif | |
986 | |
987 | |
988 static void | |
989 not_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len) | |
990 { | |
991 #if 0 | |
992 MSN_SET_PARAMS("NOT %d\r\n%s", cmdproc->servconn->payload, payload); | |
993 gaim_debug_misc("msn", "Notification: {%s}\n", payload); | |
994 #endif | |
995 } | |
996 | |
997 static void | |
998 not_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
999 { | |
1000 cmdproc->servconn->payload_len = atoi(cmd->params[0]); | |
1001 cmdproc->last_cmd->payload_cb = not_cmd_post; | |
1002 } | |
1003 | |
1004 static void | |
1005 rea_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
1006 { | |
1007 /* TODO: This might be for us too */ | |
1008 | |
1009 MsnSession *session; | |
1010 GaimConnection *gc; | |
1011 const char *friendly; | |
1012 | |
1013 session = cmdproc->session; | |
1014 gc = session->account->gc; | |
1015 friendly = gaim_url_decode(cmd->params[3]); | |
1016 | |
1017 gaim_connection_set_display_name(gc, friendly); | |
1018 } | |
1019 | |
1020 static void | |
1021 prp_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
1022 { | |
1023 MsnSession *session = cmdproc->session; | |
1024 const char *type, *value; | |
1025 | |
1026 g_return_if_fail(cmd->param_count >= 3); | |
1027 | |
1028 type = cmd->params[2]; | |
1029 | |
1030 if (cmd->param_count == 4) | |
1031 { | |
1032 value = cmd->params[3]; | |
1033 if (!strcmp(type, "PHH")) | |
1034 msn_user_set_home_phone(session->user, gaim_url_decode(value)); | |
1035 else if (!strcmp(type, "PHW")) | |
1036 msn_user_set_work_phone(session->user, gaim_url_decode(value)); | |
1037 else if (!strcmp(type, "PHM")) | |
1038 msn_user_set_mobile_phone(session->user, gaim_url_decode(value)); | |
1039 } | |
1040 else | |
1041 { | |
1042 if (!strcmp(type, "PHH")) | |
1043 msn_user_set_home_phone(session->user, NULL); | |
1044 else if (!strcmp(type, "PHW")) | |
1045 msn_user_set_work_phone(session->user, NULL); | |
1046 else if (!strcmp(type, "PHM")) | |
1047 msn_user_set_mobile_phone(session->user, NULL); | |
1048 } | |
1049 } | |
1050 | |
1051 static void | |
1052 reg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
1053 { | |
1054 MsnSession *session; | |
1055 int group_id; | |
1056 const char *group_name; | |
1057 | |
1058 session = cmdproc->session; | |
1059 group_id = atoi(cmd->params[2]); | |
1060 group_name = gaim_url_decode(cmd->params[3]); | |
1061 | |
1062 msn_userlist_rename_group_id(session->userlist, group_id, group_name); | |
1063 } | |
1064 | |
1065 static void | |
1066 reg_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) | |
1067 { | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1068 const char * group_id; |
14192 | 1069 char **params; |
1070 | |
1071 params = g_strsplit(trans->params, " ", 0); | |
1072 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1073 group_id = params[0]; |
14192 | 1074 |
1075 group_error_helper(cmdproc->session, _("Unable to rename group"), group_id, error); | |
1076 | |
1077 g_strfreev(params); | |
1078 } | |
1079 | |
1080 static void | |
1081 rem_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
1082 { | |
1083 MsnSession *session; | |
1084 MsnUser *user; | |
1085 const char *list; | |
1086 const char *passport; | |
1087 MsnListId list_id; | |
1088 int group_id; | |
1089 | |
1090 session = cmdproc->session; | |
1091 list = cmd->params[1]; | |
1092 passport = cmd->params[3]; | |
1093 user = msn_userlist_find_user(session->userlist, passport); | |
1094 | |
1095 g_return_if_fail(user != NULL); | |
1096 | |
1097 list_id = msn_get_list_id(list); | |
1098 | |
1099 if (cmd->param_count == 5) | |
1100 group_id = atoi(cmd->params[4]); | |
1101 else | |
1102 group_id = -1; | |
1103 | |
1104 msn_got_rem_user(session, user, list_id, group_id); | |
1105 msn_user_update(user); | |
1106 } | |
1107 | |
1108 static void | |
1109 rmg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
1110 { | |
1111 MsnSession *session; | |
1112 int group_id; | |
1113 | |
1114 session = cmdproc->session; | |
1115 group_id = atoi(cmd->params[2]); | |
1116 | |
1117 msn_userlist_remove_group_id(session->userlist, group_id); | |
1118 } | |
1119 | |
1120 static void | |
1121 rmg_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) | |
1122 { | |
1123 int group_id; | |
1124 char **params; | |
1125 | |
1126 params = g_strsplit(trans->params, " ", 0); | |
1127 | |
1128 group_id = atoi(params[0]); | |
1129 | |
1130 group_error_helper(cmdproc->session, _("Unable to delete group"), group_id, error); | |
1131 | |
1132 g_strfreev(params); | |
1133 } | |
1134 | |
1135 static void | |
1136 syn_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
1137 { | |
1138 MsnSession *session; | |
1139 int total_users; | |
1140 | |
1141 session = cmdproc->session; | |
1142 | |
1143 if (cmd->param_count == 2) | |
1144 { | |
1145 /* | |
1146 * This can happen if we sent a SYN with an up-to-date | |
1147 * buddy list revision, but we send 0 to get a full list. | |
1148 * So, error out. | |
1149 */ | |
1150 | |
1151 msn_session_set_error(cmdproc->session, MSN_ERROR_BAD_BLIST, NULL); | |
1152 return; | |
1153 } | |
1154 | |
1155 total_users = atoi(cmd->params[2]); | |
1156 | |
1157 if (total_users == 0) | |
1158 { | |
1159 msn_session_finish_login(session); | |
1160 } | |
1161 else | |
1162 { | |
1163 /* syn_table */ | |
1164 MsnSync *sync; | |
1165 | |
1166 sync = msn_sync_new(session); | |
1167 sync->total_users = total_users; | |
1168 sync->old_cbs_table = cmdproc->cbs_table; | |
1169 | |
1170 session->sync = sync; | |
1171 cmdproc->cbs_table = sync->cbs_table; | |
1172 } | |
1173 } | |
1174 | |
1175 /************************************************************************** | |
1176 * Misc commands | |
1177 **************************************************************************/ | |
1178 | |
1179 static void | |
1180 url_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
1181 { | |
1182 MsnSession *session; | |
1183 GaimAccount *account; | |
1184 const char *rru; | |
1185 const char *url; | |
1186 GaimCipher *cipher; | |
1187 GaimCipherContext *context; | |
1188 guchar digest[16]; | |
1189 FILE *fd; | |
1190 char *buf; | |
1191 char buf2[3]; | |
1192 char sendbuf[64]; | |
1193 int i; | |
1194 | |
1195 session = cmdproc->session; | |
1196 account = session->account; | |
1197 | |
1198 rru = cmd->params[1]; | |
1199 url = cmd->params[2]; | |
1200 | |
1201 buf = g_strdup_printf("%s%lu%s", | |
1202 session->passport_info.mspauth, | |
1203 time(NULL) - session->passport_info.sl, | |
1204 gaim_connection_get_password(account->gc)); | |
1205 | |
1206 cipher = gaim_ciphers_find_cipher("md5"); | |
1207 context = gaim_cipher_context_new(cipher, NULL); | |
1208 | |
1209 gaim_cipher_context_append(context, (const guchar *)buf, strlen(buf)); | |
1210 gaim_cipher_context_digest(context, sizeof(digest), digest, NULL); | |
1211 gaim_cipher_context_destroy(context); | |
1212 | |
1213 g_free(buf); | |
1214 | |
1215 memset(sendbuf, 0, sizeof(sendbuf)); | |
1216 | |
1217 for (i = 0; i < 16; i++) | |
1218 { | |
1219 g_snprintf(buf2, sizeof(buf2), "%02x", digest[i]); | |
1220 strcat(sendbuf, buf2); | |
1221 } | |
1222 | |
1223 if (session->passport_info.file != NULL) | |
1224 { | |
1225 g_unlink(session->passport_info.file); | |
1226 g_free(session->passport_info.file); | |
1227 } | |
1228 | |
1229 if ((fd = gaim_mkstemp(&session->passport_info.file, FALSE)) == NULL) | |
1230 { | |
1231 gaim_debug_error("msn", | |
1232 "Error opening temp passport file: %s\n", | |
1233 strerror(errno)); | |
1234 } | |
1235 else | |
1236 { | |
1237 fputs("<html>\n" | |
1238 "<head>\n" | |
1239 "<noscript>\n" | |
1240 "<meta http-equiv=\"Refresh\" content=\"0; " | |
1241 "url=http://www.hotmail.com\">\n" | |
1242 "</noscript>\n" | |
1243 "</head>\n\n", | |
1244 fd); | |
1245 | |
1246 fprintf(fd, "<body onload=\"document.pform.submit(); \">\n"); | |
1247 fprintf(fd, "<form name=\"pform\" action=\"%s\" method=\"POST\">\n\n", | |
1248 url); | |
1249 fprintf(fd, "<input type=\"hidden\" name=\"mode\" value=\"ttl\">\n"); | |
1250 fprintf(fd, "<input type=\"hidden\" name=\"login\" value=\"%s\">\n", | |
1251 gaim_account_get_username(account)); | |
1252 fprintf(fd, "<input type=\"hidden\" name=\"username\" value=\"%s\">\n", | |
1253 gaim_account_get_username(account)); | |
14602 | 1254 if (session->passport_info.sid != NULL) |
1255 fprintf(fd, "<input type=\"hidden\" name=\"sid\" value=\"%s\">\n", | |
1256 session->passport_info.sid); | |
1257 if (session->passport_info.kv != NULL) | |
1258 fprintf(fd, "<input type=\"hidden\" name=\"kv\" value=\"%s\">\n", | |
1259 session->passport_info.kv); | |
14192 | 1260 fprintf(fd, "<input type=\"hidden\" name=\"id\" value=\"2\">\n"); |
1261 fprintf(fd, "<input type=\"hidden\" name=\"sl\" value=\"%ld\">\n", | |
1262 time(NULL) - session->passport_info.sl); | |
1263 fprintf(fd, "<input type=\"hidden\" name=\"rru\" value=\"%s\">\n", | |
1264 rru); | |
14602 | 1265 if (session->passport_info.mspauth != NULL) |
1266 fprintf(fd, "<input type=\"hidden\" name=\"auth\" value=\"%s\">\n", | |
1267 session->passport_info.mspauth); | |
14192 | 1268 fprintf(fd, "<input type=\"hidden\" name=\"creds\" value=\"%s\">\n", |
1269 sendbuf); /* TODO Digest me (huh? -- ChipX86) */ | |
1270 fprintf(fd, "<input type=\"hidden\" name=\"svc\" value=\"mail\">\n"); | |
1271 fprintf(fd, "<input type=\"hidden\" name=\"js\" value=\"yes\">\n"); | |
1272 fprintf(fd, "</form></body>\n"); | |
1273 fprintf(fd, "</html>\n"); | |
1274 | |
1275 if (fclose(fd)) | |
1276 { | |
1277 gaim_debug_error("msn", | |
1278 "Error closing temp passport file: %s\n", | |
1279 strerror(errno)); | |
1280 | |
1281 g_unlink(session->passport_info.file); | |
1282 g_free(session->passport_info.file); | |
1283 session->passport_info.file = NULL; | |
1284 } | |
1285 #ifdef _WIN32 | |
1286 else | |
1287 { | |
1288 /* | |
1289 * Renaming file with .html extension, so that the | |
1290 * win32 open_url will work. | |
1291 */ | |
1292 char *tmp; | |
1293 | |
1294 if ((tmp = | |
1295 g_strdup_printf("%s.html", | |
1296 session->passport_info.file)) != NULL) | |
1297 { | |
1298 if (g_rename(session->passport_info.file, | |
1299 tmp) == 0) | |
1300 { | |
1301 g_free(session->passport_info.file); | |
1302 session->passport_info.file = tmp; | |
1303 } | |
1304 else | |
1305 g_free(tmp); | |
1306 } | |
1307 } | |
1308 #endif | |
1309 } | |
1310 } | |
1311 /************************************************************************** | |
1312 * Switchboards | |
1313 **************************************************************************/ | |
1314 | |
1315 static void | |
1316 rng_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
1317 { | |
1318 MsnSession *session; | |
1319 MsnSwitchBoard *swboard; | |
1320 const char *session_id; | |
1321 char *host; | |
1322 int port; | |
1323 | |
1324 session = cmdproc->session; | |
1325 session_id = cmd->params[0]; | |
1326 | |
1327 msn_parse_socket(cmd->params[1], &host, &port); | |
1328 | |
1329 if (session->http_method) | |
1330 port = 80; | |
1331 | |
1332 swboard = msn_switchboard_new(session); | |
1333 | |
1334 msn_switchboard_set_invited(swboard, TRUE); | |
1335 msn_switchboard_set_session_id(swboard, cmd->params[0]); | |
1336 msn_switchboard_set_auth_key(swboard, cmd->params[3]); | |
1337 swboard->im_user = g_strdup(cmd->params[4]); | |
1338 /* msn_switchboard_add_user(swboard, cmd->params[4]); */ | |
1339 | |
1340 if (!msn_switchboard_connect(swboard, host, port)) | |
1341 msn_switchboard_destroy(swboard); | |
1342 | |
1343 g_free(host); | |
1344 } | |
1345 | |
1346 static void | |
1347 xfr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) | |
1348 { | |
1349 char *host; | |
1350 int port; | |
1351 | |
1352 if (strcmp(cmd->params[1], "SB") && strcmp(cmd->params[1], "NS")) | |
1353 { | |
1354 /* Maybe we can have a generic bad command error. */ | |
1355 gaim_debug_error("msn", "Bad XFR command (%s)\n", cmd->params[1]); | |
1356 return; | |
1357 } | |
1358 | |
1359 msn_parse_socket(cmd->params[2], &host, &port); | |
1360 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1361 if (!strcmp(cmd->params[1], "SB")){ |
14192 | 1362 gaim_debug_error("msn", "This shouldn't be handled here.\n"); |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1363 }else if (!strcmp(cmd->params[1], "NS")){ |
14192 | 1364 MsnSession *session; |
1365 | |
1366 session = cmdproc->session; | |
1367 | |
1368 msn_session_set_login_step(session, MSN_LOGIN_STEP_TRANSFER); | |
1369 | |
1370 msn_notification_connect(session->notification, host, port); | |
1371 } | |
1372 | |
1373 g_free(host); | |
1374 } | |
1375 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1376 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1377 gcf_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1378 size_t len) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1379 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1380 /*get the payload content*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1381 gaim_debug_info("MaYuan","GCF{%s}\n",cmd->payload); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1382 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1383 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1384 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1385 gcf_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1386 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1387 gaim_debug_info("MaYuan","Processing GCF... \n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1388 cmdproc->last_cmd->payload_cb = gcf_cmd_post; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1389 return; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1390 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1391 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1392 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1393 sbs_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1394 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1395 gaim_debug_info("MaYuan","Processing SBS... \n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1396 if(cmd->payload_len == 0){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1397 return; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1398 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1399 /*get the payload content*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1400 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1401 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1402 /* |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1403 * Get the UBX's PSM info |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1404 * Post it to the User status |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1405 * Thanks for Chris <ukdrizzle@yahoo.co.uk>'s code |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1406 */ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1407 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1408 ubx_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1409 size_t len) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1410 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1411 MsnSession *session; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1412 GaimAccount *account; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1413 GaimConnection *gc; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1414 MsnUser *user; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1415 const char *passport, *psm_str; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1416 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1417 /*get the payload content*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1418 // gaim_debug_info("MaYuan","UBX {%s} payload{%s}\n",cmd->params[0], cmd->payload); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1419 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1420 session = cmdproc->session; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1421 account = session->account; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1422 gc = gaim_account_get_connection(account); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1423 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1424 passport = cmd->params[0]; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1425 user = msn_userlist_find_user(session->userlist, passport); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1426 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1427 psm_str = msn_get_psm(cmd->payload,len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1428 msn_user_set_statusline(user, psm_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1429 msn_user_update(user); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1430 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1431 g_free(psm_str); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1432 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1433 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1434 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1435 ubx_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1436 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1437 gaim_debug_info("MaYuan","UBX... \n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1438 if(cmd->payload_len == 0){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1439 return; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1440 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1441 cmdproc->last_cmd->payload_cb = ubx_cmd_post; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1442 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1443 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1444 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1445 uux_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1446 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1447 gaim_debug_info("MaYuan","UUX... \n"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1448 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1449 |
14192 | 1450 /************************************************************************** |
1451 * Message Types | |
1452 **************************************************************************/ | |
1453 | |
1454 static void | |
1455 profile_msg(MsnCmdProc *cmdproc, MsnMessage *msg) | |
1456 { | |
1457 MsnSession *session; | |
1458 const char *value; | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1459 const char *clLastChange; |
14192 | 1460 |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1461 gaim_debug_info("MaYuan","profile_msg... \n"); |
14192 | 1462 session = cmdproc->session; |
1463 | |
1464 if (strcmp(msg->remote_user, "Hotmail")) | |
1465 /* This isn't an official message. */ | |
1466 return; | |
1467 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1468 if ((value = msn_message_get_attr(msg, "kv")) != NULL){ |
14192 | 1469 if (session->passport_info.kv != NULL) |
1470 g_free(session->passport_info.kv); | |
1471 | |
1472 session->passport_info.kv = g_strdup(value); | |
1473 } | |
1474 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1475 if ((value = msn_message_get_attr(msg, "sid")) != NULL){ |
14192 | 1476 if (session->passport_info.sid != NULL) |
1477 g_free(session->passport_info.sid); | |
1478 | |
1479 session->passport_info.sid = g_strdup(value); | |
1480 } | |
1481 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1482 if ((value = msn_message_get_attr(msg, "MSPAuth")) != NULL){ |
14192 | 1483 if (session->passport_info.mspauth != NULL) |
1484 g_free(session->passport_info.mspauth); | |
1485 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1486 gaim_debug_info("MaYuan","MSPAuth:%s\n",value); |
14192 | 1487 session->passport_info.mspauth = g_strdup(value); |
1488 } | |
1489 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1490 if ((value = msn_message_get_attr(msg, "ClientIP")) != NULL){ |
14192 | 1491 if (session->passport_info.client_ip != NULL) |
1492 g_free(session->passport_info.client_ip); | |
1493 | |
1494 session->passport_info.client_ip = g_strdup(value); | |
1495 } | |
1496 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1497 if ((value = msn_message_get_attr(msg, "ClientPort")) != NULL){ |
14192 | 1498 session->passport_info.client_port = ntohs(atoi(value)); |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1499 } |
14192 | 1500 |
1501 if ((value = msn_message_get_attr(msg, "LoginTime")) != NULL) | |
1502 session->passport_info.sl = atol(value); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1503 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1504 /*starting retrieve the contact list*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1505 msn_userlist_load(session); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1506 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1507 msn_session_set_bnode(session); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1508 session->contact = msn_contact_new(session); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1509 clLastChange = gaim_blist_node_get_string(msn_session_get_bnode(session),"CLLastChange"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1510 msn_get_contact_list(session->contact,clLastChange); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1511 // msn_contact_connect(session->contact); |
14192 | 1512 } |
1513 | |
1514 static void | |
1515 initial_email_msg(MsnCmdProc *cmdproc, MsnMessage *msg) | |
1516 { | |
1517 MsnSession *session; | |
1518 GaimConnection *gc; | |
1519 GHashTable *table; | |
1520 const char *unread; | |
1521 | |
1522 session = cmdproc->session; | |
1523 gc = session->account->gc; | |
1524 | |
1525 if (strcmp(msg->remote_user, "Hotmail")) | |
1526 /* This isn't an official message. */ | |
1527 return; | |
1528 | |
1529 if (session->passport_info.file == NULL) | |
1530 { | |
1531 MsnTransaction *trans; | |
1532 trans = msn_transaction_new(cmdproc, "URL", "%s", "INBOX"); | |
1533 msn_transaction_queue_cmd(trans, msg->cmd); | |
1534 | |
1535 msn_cmdproc_send_trans(cmdproc, trans); | |
1536 | |
1537 return; | |
1538 } | |
1539 | |
1540 if (!gaim_account_get_check_mail(session->account)) | |
1541 return; | |
1542 | |
1543 table = msn_message_get_hashtable_from_body(msg); | |
1544 | |
1545 unread = g_hash_table_lookup(table, "Inbox-Unread"); | |
1546 | |
1547 if (unread != NULL) | |
1548 { | |
1549 int count = atoi(unread); | |
1550 | |
1551 if (count > 0) | |
1552 { | |
1553 const char *passport; | |
1554 const char *url; | |
1555 | |
1556 passport = msn_user_get_passport(session->user); | |
1557 url = session->passport_info.file; | |
1558 | |
1559 gaim_notify_emails(gc, atoi(unread), FALSE, NULL, NULL, | |
1560 &passport, &url, NULL, NULL); | |
1561 } | |
1562 } | |
1563 | |
1564 g_hash_table_destroy(table); | |
1565 } | |
1566 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1567 /*offline Message notification process*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1568 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1569 initial_mdata_msg(MsnCmdProc *cmdproc, MsnMessage *msg) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1570 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1571 MsnSession *session; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1572 char **elems, **cur, **tokens; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1573 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1574 // gaim_debug_info("MaYuan","mdata...{%s} \n",msg->body); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1575 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1576 // /*time debug*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1577 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1578 const char *timestr; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1579 time_t t; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1580 struct tm *tm; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1581 char datestr[]="2006-07-15T07:21:26+0700"; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1582 GDate *date; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1583 time(&t); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1584 tm = gmtime(&t); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1585 timestr = gaim_utf8_strftime("%a, %d %b %Y %T %Z", tm); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1586 // strftime(datestr,strlen(datestr),"%a",tm); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1587 date = g_date_new(); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1588 g_date_set_parse(date,datestr); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1589 gaim_debug_info("MaYuan","date is NULL?date valid%d\n",g_date_valid(date)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1590 g_date_free(date); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1591 gaim_debug_info("MaYuan","utf8 time:{%s}\n",timestr); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1592 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1593 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1594 /*new a oim session*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1595 session = cmdproc->session; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1596 session->oim = msn_oim_new(session); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1597 // msn_oim_connect(session->oim); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1598 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1599 /*parse offline message data*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1600 elems = g_strsplit(msg->body, "\r\n", 0); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1601 for (cur = elems; *cur != NULL; cur++){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1602 const char *key, *value; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1603 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1604 // gaim_debug_info("MaYuan","cur:{%s}\n",*cur); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1605 tokens = g_strsplit(*cur, ": ", 2); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1606 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1607 key = tokens[0]; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1608 value = tokens[1]; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1609 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1610 /*if not MIME content ,then return*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1611 if ((key != NULL) && (!strcmp(key, "Mail-Data")) ){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1612 // gaim_debug_info("MaYuan","data:{%s}\n",value); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1613 msn_parse_oim_msg(session->oim,value); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1614 g_strfreev(tokens); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1615 break; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1616 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1617 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1618 g_strfreev(tokens); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1619 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1620 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1621 g_strfreev(elems); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1622 /* test code for add group*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1623 // msn_add_group(session,"hello"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1624 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1625 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1626 /*offline Message Notification*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1627 static void |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1628 delete_oim_msg(MsnCmdProc *cmdproc, MsnMessage *msg) |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1629 { |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1630 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1631 |
14192 | 1632 static void |
1633 email_msg(MsnCmdProc *cmdproc, MsnMessage *msg) | |
1634 { | |
1635 MsnSession *session; | |
1636 GaimConnection *gc; | |
1637 GHashTable *table; | |
1638 char *from, *subject, *tmp; | |
1639 | |
1640 session = cmdproc->session; | |
1641 gc = session->account->gc; | |
1642 | |
1643 if (strcmp(msg->remote_user, "Hotmail")) | |
1644 /* This isn't an official message. */ | |
1645 return; | |
1646 | |
1647 if (session->passport_info.file == NULL) | |
1648 { | |
1649 MsnTransaction *trans; | |
1650 trans = msn_transaction_new(cmdproc, "URL", "%s", "INBOX"); | |
1651 msn_transaction_queue_cmd(trans, msg->cmd); | |
1652 | |
1653 msn_cmdproc_send_trans(cmdproc, trans); | |
1654 | |
1655 return; | |
1656 } | |
1657 | |
1658 if (!gaim_account_get_check_mail(session->account)) | |
1659 return; | |
1660 | |
1661 table = msn_message_get_hashtable_from_body(msg); | |
1662 | |
1663 from = subject = NULL; | |
1664 | |
1665 tmp = g_hash_table_lookup(table, "From"); | |
1666 if (tmp != NULL) | |
1667 from = gaim_mime_decode_field(tmp); | |
1668 | |
1669 tmp = g_hash_table_lookup(table, "Subject"); | |
1670 if (tmp != NULL) | |
1671 subject = gaim_mime_decode_field(tmp); | |
1672 | |
1673 gaim_notify_email(gc, | |
1674 (subject != NULL ? subject : ""), | |
1675 (from != NULL ? from : ""), | |
1676 msn_user_get_passport(session->user), | |
1677 session->passport_info.file, NULL, NULL); | |
1678 | |
1679 if (from != NULL) | |
1680 g_free(from); | |
1681 | |
1682 if (subject != NULL) | |
1683 g_free(subject); | |
1684 | |
1685 g_hash_table_destroy(table); | |
1686 } | |
1687 | |
1688 static void | |
1689 system_msg(MsnCmdProc *cmdproc, MsnMessage *msg) | |
1690 { | |
1691 GHashTable *table; | |
1692 const char *type_s; | |
1693 | |
1694 if (strcmp(msg->remote_user, "Hotmail")) | |
1695 /* This isn't an official message. */ | |
1696 return; | |
1697 | |
1698 table = msn_message_get_hashtable_from_body(msg); | |
1699 | |
1700 if ((type_s = g_hash_table_lookup(table, "Type")) != NULL) | |
1701 { | |
1702 int type = atoi(type_s); | |
1703 char buf[MSN_BUF_LEN]; | |
1704 int minutes; | |
1705 | |
1706 switch (type) | |
1707 { | |
1708 case 1: | |
1709 minutes = atoi(g_hash_table_lookup(table, "Arg1")); | |
1710 g_snprintf(buf, sizeof(buf), ngettext( | |
1711 "The MSN server will shut down for maintenance " | |
1712 "in %d minute. You will automatically be " | |
1713 "signed out at that time. Please finish any " | |
1714 "conversations in progress.\n\nAfter the " | |
1715 "maintenance has been completed, you will be " | |
1716 "able to successfully sign in.", | |
1717 "The MSN server will shut down for maintenance " | |
1718 "in %d minutes. You will automatically be " | |
1719 "signed out at that time. Please finish any " | |
1720 "conversations in progress.\n\nAfter the " | |
1721 "maintenance has been completed, you will be " | |
1722 "able to successfully sign in.", minutes), | |
1723 minutes); | |
1724 default: | |
1725 break; | |
1726 } | |
1727 | |
1728 if (*buf != '\0') | |
1729 gaim_notify_info(cmdproc->session->account->gc, NULL, buf, NULL); | |
1730 } | |
1731 | |
1732 g_hash_table_destroy(table); | |
1733 } | |
1734 | |
1735 void | |
1736 msn_notification_add_buddy(MsnNotification *notification, const char *list, | |
1737 const char *who, const char *store_name, | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1738 const char *group_id) |
14192 | 1739 { |
1740 MsnCmdProc *cmdproc; | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1741 MsnTransaction *trans; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1742 xmlnode *adl_node; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1743 char *payload; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1744 int payload_len; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1745 |
14192 | 1746 cmdproc = notification->servconn->cmdproc; |
1747 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1748 if (strcmp(list, "FL") != 0){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1749 } |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1750 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1751 adl_node = xmlnode_new("ml"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1752 adl_node->child = NULL; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1753 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1754 msn_add_contact_xml(adl_node,who,1,1); |
14192 | 1755 |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1756 payload = xmlnode_to_str(adl_node,&payload_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1757 xmlnode_free(adl_node); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1758 if(msn_user_is_yahoo(notification->session->account,who)){ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1759 msn_notification_fqy_yahoo(notification->session, who); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1760 }else{ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1761 msn_notification_post_adl(notification->servconn->cmdproc, |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1762 payload,payload_len); |
14192 | 1763 } |
1764 } | |
1765 | |
1766 void | |
1767 msn_notification_rem_buddy(MsnNotification *notification, const char *list, | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1768 const char *who, const char *group_id) |
14192 | 1769 { |
1770 MsnCmdProc *cmdproc; | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1771 MsnTransaction *trans; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1772 xmlnode *rml_node; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1773 char *payload; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1774 int payload_len; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1775 |
14192 | 1776 cmdproc = notification->servconn->cmdproc; |
1777 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1778 rml_node = xmlnode_new("ml"); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1779 rml_node->child = NULL; |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1780 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1781 msn_add_contact_xml(rml_node,who,1,1); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1782 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1783 payload = xmlnode_to_str(rml_node,&payload_len); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1784 xmlnode_free(rml_node); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1785 |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1786 gaim_debug_info("MaYuan","RML{%s}\n",payload); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1787 trans = msn_transaction_new(cmdproc, "RML","%d",strlen(payload)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1788 msn_transaction_set_payload(trans, payload, strlen(payload)); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1789 msn_cmdproc_send_trans(cmdproc, trans); |
14192 | 1790 } |
1791 | |
1792 /************************************************************************** | |
1793 * Init | |
1794 **************************************************************************/ | |
1795 void | |
1796 msn_notification_init(void) | |
1797 { | |
1798 /* TODO: check prp, blp */ | |
1799 | |
1800 cbs_table = msn_table_new(); | |
1801 | |
1802 /* Synchronous */ | |
1803 msn_table_add_cmd(cbs_table, "CHG", "CHG", NULL); | |
1804 msn_table_add_cmd(cbs_table, "CHG", "ILN", iln_cmd); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1805 msn_table_add_cmd(cbs_table, "ADL", "ILN", iln_cmd); |
14192 | 1806 msn_table_add_cmd(cbs_table, "REM", "REM", rem_cmd); |
1807 msn_table_add_cmd(cbs_table, "USR", "USR", usr_cmd); | |
1808 msn_table_add_cmd(cbs_table, "USR", "XFR", xfr_cmd); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1809 msn_table_add_cmd(cbs_table, "USR", "GCF", gcf_cmd); |
14192 | 1810 msn_table_add_cmd(cbs_table, "SYN", "SYN", syn_cmd); |
1811 msn_table_add_cmd(cbs_table, "CVR", "CVR", cvr_cmd); | |
1812 msn_table_add_cmd(cbs_table, "VER", "VER", ver_cmd); | |
1813 msn_table_add_cmd(cbs_table, "REA", "REA", rea_cmd); | |
1814 msn_table_add_cmd(cbs_table, "PRP", "PRP", prp_cmd); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1815 msn_table_add_cmd(cbs_table, "BLP", "BLP", blp_cmd); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1816 // msn_table_add_cmd(cbs_table, "BLP", "BLP", NULL); |
14192 | 1817 msn_table_add_cmd(cbs_table, "REG", "REG", reg_cmd); |
1818 msn_table_add_cmd(cbs_table, "ADG", "ADG", adg_cmd); | |
1819 msn_table_add_cmd(cbs_table, "RMG", "RMG", rmg_cmd); | |
1820 msn_table_add_cmd(cbs_table, "XFR", "XFR", xfr_cmd); | |
1821 | |
1822 /* Asynchronous */ | |
1823 msn_table_add_cmd(cbs_table, NULL, "IPG", ipg_cmd); | |
1824 msn_table_add_cmd(cbs_table, NULL, "MSG", msg_cmd); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1825 msn_table_add_cmd(cbs_table, NULL, "UBM", ubm_cmd); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1826 msn_table_add_cmd(cbs_table, NULL, "GCF", gcf_cmd); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1827 msn_table_add_cmd(cbs_table, NULL, "SBS", sbs_cmd); |
14192 | 1828 msn_table_add_cmd(cbs_table, NULL, "NOT", not_cmd); |
1829 | |
1830 msn_table_add_cmd(cbs_table, NULL, "CHL", chl_cmd); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1831 msn_table_add_cmd(cbs_table, NULL, "RML", rml_cmd); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1832 msn_table_add_cmd(cbs_table, NULL, "ADL", adl_cmd); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1833 msn_table_add_cmd(cbs_table, NULL, "FQY", fqy_cmd); |
14192 | 1834 |
1835 msn_table_add_cmd(cbs_table, NULL, "QRY", NULL); | |
1836 msn_table_add_cmd(cbs_table, NULL, "QNG", NULL); | |
1837 msn_table_add_cmd(cbs_table, NULL, "FLN", fln_cmd); | |
1838 msn_table_add_cmd(cbs_table, NULL, "NLN", nln_cmd); | |
1839 msn_table_add_cmd(cbs_table, NULL, "ILN", iln_cmd); | |
1840 msn_table_add_cmd(cbs_table, NULL, "OUT", out_cmd); | |
1841 msn_table_add_cmd(cbs_table, NULL, "RNG", rng_cmd); | |
1842 | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1843 msn_table_add_cmd(cbs_table, NULL, "UBX", ubx_cmd); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1844 msn_table_add_cmd(cbs_table, NULL, "UUX", uux_cmd); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1845 |
14192 | 1846 msn_table_add_cmd(cbs_table, NULL, "URL", url_cmd); |
1847 | |
1848 msn_table_add_cmd(cbs_table, "fallback", "XFR", xfr_cmd); | |
1849 | |
1850 msn_table_add_error(cbs_table, "ADD", add_error); | |
1851 msn_table_add_error(cbs_table, "REG", reg_error); | |
1852 msn_table_add_error(cbs_table, "RMG", rmg_error); | |
1853 /* msn_table_add_error(cbs_table, "REA", rea_error); */ | |
1854 msn_table_add_error(cbs_table, "USR", usr_error); | |
1855 | |
1856 msn_table_add_msg_type(cbs_table, | |
1857 "text/x-msmsgsprofile", | |
1858 profile_msg); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1859 /*initial OIM notification*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1860 msn_table_add_msg_type(cbs_table, |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1861 "text/x-msmsgsinitialmdatanotification", |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1862 initial_mdata_msg); |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1863 /*OIM notification when user online*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1864 msn_table_add_msg_type(cbs_table, |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1865 "text/x-msmsgsoimnotification", |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1866 initial_mdata_msg); |
14192 | 1867 msn_table_add_msg_type(cbs_table, |
1868 "text/x-msmsgsinitialemailnotification", | |
1869 initial_email_msg); | |
1870 msn_table_add_msg_type(cbs_table, | |
1871 "text/x-msmsgsemailnotification", | |
1872 email_msg); | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1873 /*delete an offline Message notification*/ |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1874 msn_table_add_msg_type(cbs_table, |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1875 "text/x-msmsgsactivemailnotification", |
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1876 delete_oim_msg); |
14192 | 1877 msn_table_add_msg_type(cbs_table, |
1878 "application/x-msmsgssystemmessage", | |
1879 system_msg); | |
1880 } | |
1881 | |
1882 void | |
1883 msn_notification_end(void) | |
1884 { | |
1885 msn_table_destroy(cbs_table); | |
1886 } | |
20389
e354528c4163
propagate from branch 'im.pidgin.gaim' (head 70ac931e4936c7916eec18a07fe46a0af0fd7403)
Richard Laager <rlaager@wiktel.com>
parents:
14602
diff
changeset
|
1887 |