libpurple/protocols/msn/notification.c

Thu, 06 Mar 2008 04:19:53 +0000

author
Ka-Hing Cheung <khc@pidgin.im>
date
Thu, 06 Mar 2008 04:19:53 +0000
branch
khc.msnp15
changeset 23770
71661c92c6fe
parent 23769
ba46235dc658
parent 22480
71b9bf3f70a2
child 23771
c98f7e879218
permissions
-rw-r--r--

propagate from branch 'im.pidgin.pidgin' (head 0aeea64fa1dc6f9f9e4de88dafd3888a1e6360da)
to branch 'im.pidgin.pidgin.khc.msnp15' (head ba46235dc65897ce54ee75eb1069afe36ee1bc82)

5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 /**
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2 * @file notification.c Notification server functions
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4 * purple
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
9198
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9197
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9197
diff changeset
8 * source distribution.
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
9 *
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 * (at your option) any later version.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 * GNU General Public License for more details.
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 *
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18805
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23 */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 #include "msn.h"
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25 #include "notification.h"
5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents: 5358
diff changeset
26 #include "state.h"
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27 #include "error.h"
20475
0b3826f0e687 The first msn-p13-merge-head.diff.gz from SF Patch #1621854 from Ka-Hing Cheung.
Richard Laager <rlaager@pidgin.im>
parents: 20474
diff changeset
28 #include "msnutils.h"
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
29 #include "page.h"
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
30
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
31 #include "userlist.h"
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
32 #include "sync.h"
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
33 #include "slplink.h"
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
35 static MsnTable *cbs_table;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
36
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
37 /****************************************************************************
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
38 * Local Function Prototype
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
39 ****************************************************************************/
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
40
20497
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
41 static void msn_notification_post_adl(MsnCmdProc *cmdproc, const char *payload, int payload_len);
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
42 static void
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
43 msn_add_contact_xml(MsnSession *session, xmlnode *mlNode,const char *passport,
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
44 MsnListOp list_op, MsnUserType type);
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
45
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
46 /**************************************************************************
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
47 * Main
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
48 **************************************************************************/
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
49
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
50 static void
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
51 destroy_cb(MsnServConn *servconn)
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
52 {
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
53 MsnNotification *notification;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
54
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
55 notification = servconn->cmdproc->data;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
56 g_return_if_fail(notification != NULL);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
57
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
58 msn_notification_destroy(notification);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
59 }
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
60
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
61 MsnNotification *
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
62 msn_notification_new(MsnSession *session)
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
63 {
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
64 MsnNotification *notification;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
65 MsnServConn *servconn;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
66
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
67 g_return_val_if_fail(session != NULL, NULL);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
68
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
69 notification = g_new0(MsnNotification, 1);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
70
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
71 notification->session = session;
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
72 notification->servconn = servconn = msn_servconn_new(session, MSN_SERVCONN_NS);
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
73 msn_servconn_set_destroy_cb(servconn, destroy_cb);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
74
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
75 notification->cmdproc = servconn->cmdproc;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
76 notification->cmdproc->data = notification;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
77 notification->cmdproc->cbs_table = cbs_table;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
78
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
79 return notification;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
80 }
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
81
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
82 void
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
83 msn_notification_destroy(MsnNotification *notification)
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
84 {
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
85 notification->cmdproc->data = NULL;
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
86
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
87 msn_servconn_set_destroy_cb(notification->servconn, NULL);
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
88
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
89 msn_servconn_destroy(notification->servconn);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
90
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
91 g_free(notification);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
92 }
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
93
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
94 /**************************************************************************
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
95 * Connect
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
96 **************************************************************************/
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
97
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
98 static void
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
99 connect_cb(MsnServConn *servconn)
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
100 {
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
101 MsnCmdProc *cmdproc;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
102 MsnSession *session;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
103 PurpleAccount *account;
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
104 GString *vers;
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
105 const char *ver_str;
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
106 int i;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
107
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
108 g_return_if_fail(servconn != NULL);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
109
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
110 cmdproc = servconn->cmdproc;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
111 session = servconn->session;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
112 account = session->account;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
113
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
114 vers = g_string_new("");
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
115
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
116 /* for (i = session->protocol_ver; i >= WLM_MIN_PROTOCOL; i--) */
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
117 for (i = WLM_MAX_PROTOCOL; i >= WLM_MIN_PROTOCOL; i--)
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
118 g_string_append_printf(vers, " MSNP%d", i);
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
119
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
120 g_string_append(vers, " CVR0");
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
121
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10514
diff changeset
122 if (session->login_step == MSN_LOGIN_STEP_START)
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10514
diff changeset
123 msn_session_set_login_step(session, MSN_LOGIN_STEP_HANDSHAKE);
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10514
diff changeset
124 else
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10514
diff changeset
125 msn_session_set_login_step(session, MSN_LOGIN_STEP_HANDSHAKE2);
10514
3d6cb5d53e97 [gaim-migrate @ 11814]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10504
diff changeset
126
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
127 /* Skip the initial space */
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
128 ver_str = (vers->str + 1);
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
129 msn_cmdproc_send(cmdproc, "VER", "%s", ver_str);
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
130
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
131 g_string_free(vers, TRUE);
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
132 }
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
133
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
134 gboolean
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
135 msn_notification_connect(MsnNotification *notification, const char *host, int port)
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
136 {
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
137 MsnServConn *servconn;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
138
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
139 g_return_val_if_fail(notification != NULL, FALSE);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
140
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
141 servconn = notification->servconn;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
142
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
143 msn_servconn_set_connect_cb(servconn, connect_cb);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
144 notification->in_use = msn_servconn_connect(servconn, host, port);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
145
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
146 return notification->in_use;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
147 }
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
148
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
149 void
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
150 msn_notification_disconnect(MsnNotification *notification)
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
151 {
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
152 g_return_if_fail(notification != NULL);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
153 g_return_if_fail(notification->in_use);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
154
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
155 msn_servconn_disconnect(notification->servconn);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
156
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
157 notification->in_use = FALSE;
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
158 }
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
159
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
160 /**************************************************************************
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
161 * Util
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
162 **************************************************************************/
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
163
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
164 static void
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
165 group_error_helper(MsnSession *session, const char *msg, const char *group_id, int error)
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
166 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
167 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
168 PurpleConnection *gc;
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
169 char *reason = NULL;
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
170 char *title = NULL;
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
171
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
172 account = session->account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
173 gc = purple_account_get_connection(account);
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
174
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
175 if (error == 224)
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
176 {
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
177 if (group_id == 0)
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
178 {
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
179 return;
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
180 }
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
181 else
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
182 {
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
183 const char *group_name;
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
184 group_name = msn_userlist_find_group_name(session->userlist,group_id);
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
185 reason = g_strdup_printf(_("%s is not a valid group."),
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
186 group_name ? group_name : "");
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
187 }
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
188 }
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
189 else
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
190 {
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
191 reason = g_strdup(_("Unknown error."));
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
192 }
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
193
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
194 title = g_strdup_printf(_("%s on %s (%s)"), msg,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
195 purple_account_get_username(account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
196 purple_account_get_protocol_name(account));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
197 purple_notify_error(gc, NULL, title, reason);
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
198 g_free(title);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
199 g_free(reason);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
200 }
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
201
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
202 /**************************************************************************
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
203 * Login
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
204 **************************************************************************/
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
205
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
206 void
23756
1569608cab71 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23755
diff changeset
207 msn_got_login_params(MsnSession *session, const char *ticket, const char *response)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
208 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
209 MsnCmdProc *cmdproc;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
210
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
211 cmdproc = session->notification->cmdproc;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
212
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10514
diff changeset
213 msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_END);
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
214
23756
1569608cab71 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23755
diff changeset
215 msn_cmdproc_send(cmdproc, "USR", "SSO S %s %s", ticket, response);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
216 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
217
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
218 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
219 cvr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
220 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
221 PurpleAccount *account;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
222
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
223 account = cmdproc->session->account;
23756
1569608cab71 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23755
diff changeset
224
1569608cab71 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23755
diff changeset
225 msn_cmdproc_send(cmdproc, "USR", "SSO I %s", purple_account_get_username(account));
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
226 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
227
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
228 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
229 usr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
230 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
231 MsnSession *session;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
232 PurpleAccount *account;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
233
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
234 session = cmdproc->session;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
235 account = session->account;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
236
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
237 if (!g_ascii_strcasecmp(cmd->params[1], "OK"))
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
238 {
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
239 /* authenticate OK */
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
240 /* friendly name part no longer true in msnp11 */
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
241 #if 0
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
242 const char *friendly = purple_url_decode(cmd->params[3]);
5508
d94c8a620384 [gaim-migrate @ 5907]
Christian Hammond <chipx86@chipx86.com>
parents: 5506
diff changeset
243
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
244 purple_connection_set_display_name(gc, friendly);
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
245 #endif
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10514
diff changeset
246 msn_session_set_login_step(session, MSN_LOGIN_STEP_SYN);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
247
13854
ab947cf0c2bb [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents: 13853
diff changeset
248 // msn_cmdproc_send(cmdproc, "SYN", "%s", "0");
ab947cf0c2bb [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents: 13853
diff changeset
249 //TODO we should use SOAP contact to fetch contact list
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
250 }
23756
1569608cab71 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23755
diff changeset
251 else if (!g_ascii_strcasecmp(cmd->params[1], "SSO"))
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
252 {
23756
1569608cab71 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23755
diff changeset
253 /* RPS authentication */
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
254
8171
c3c43a25caec [gaim-migrate @ 8884]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8029
diff changeset
255 session->nexus = msn_nexus_new(session);
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
256
23756
1569608cab71 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23755
diff changeset
257 session->nexus->policy = g_strdup(cmd->params[3]);
1569608cab71 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23755
diff changeset
258 session->nexus->nonce = g_strdup(cmd->params[4]);
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
259
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10514
diff changeset
260 msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_START);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
261
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
262 msn_nexus_connect(session->nexus);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
263 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
264 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
265
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
266 static void
10568
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
267 usr_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
268 {
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
269 MsnErrorType msnerr = 0;
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
270
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
271 switch (error)
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
272 {
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
273 case 500:
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
274 case 601:
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
275 case 910:
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
276 case 921:
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
277 msnerr = MSN_ERROR_SERV_UNAVAILABLE;
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
278 break;
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
279 case 911:
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
280 msnerr = MSN_ERROR_AUTH;
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
281 break;
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
282 default:
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
283 return;
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
284 break;
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
285 }
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
286
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
287 msn_session_set_error(cmdproc->session, msnerr, NULL);
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
288 }
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
289
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
290 static void
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
291 ver_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
292 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
293 MsnSession *session;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
294 PurpleAccount *account;
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
295 gboolean protocol_supported = FALSE;
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
296 char proto_str[8];
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
297 size_t i;
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
298
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
299 session = cmdproc->session;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
300 account = session->account;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
301
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
302 g_snprintf(proto_str, sizeof(proto_str), "MSNP%d", session->protocol_ver);
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
303
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
304 for (i = 1; i < cmd->param_count; i++)
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
305 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
306 if (!strcmp(cmd->params[i], proto_str))
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
307 {
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
308 protocol_supported = TRUE;
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
309 break;
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
310 }
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
311 }
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
312
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
313 if (!protocol_supported)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
314 {
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10514
diff changeset
315 msn_session_set_error(session, MSN_ERROR_UNSUPPORTED_PROTOCOL,
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
316 NULL);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
317 return;
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
318 }
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
319
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
320 /*
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
321 * Windows Live Messenger 8.0
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
322 * Notice :CVR String discriminate!
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
323 * reference of http://www.microsoft.com/globaldev/reference/oslocversion.mspx
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
324 * to see the Local ID
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
325 */
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
326 msn_cmdproc_send(cmdproc, "CVR",
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
327 // "0x0409 winnt 5.1 i386 MSG80BETA 8.0.0689 msmsgs %s",
23755
6b2413139fae Patch 1 from Qulogic, this one mostly updates the version sent by pidgin
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 21905
diff changeset
328 // "0x0804 winnt 5.1 i386 MSNMSGR 8.0.0792 msmsgs %s",
23764
a20c976bf63f References #4382, fixes getting offline messages in p15
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23756
diff changeset
329 "0x0409 winnt 5.1 i386 MSNMSGR 8.5.1288 msmsgs %s",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
330 purple_account_get_username(account));
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
331 }
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
332
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
333 /**************************************************************************
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
334 * Log out
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
335 **************************************************************************/
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
336
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
337 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
338 out_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
339 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
340 if (!g_ascii_strcasecmp(cmd->params[0], "OTH"))
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
341 msn_session_set_error(cmdproc->session, MSN_ERROR_SIGN_OTHER,
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
342 NULL);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
343 else if (!g_ascii_strcasecmp(cmd->params[0], "SSD"))
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
344 msn_session_set_error(cmdproc->session, MSN_ERROR_SERV_DOWN, NULL);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
345 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
346
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
347 void
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
348 msn_notification_close(MsnNotification *notification)
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
349 {
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
350 g_return_if_fail(notification != NULL);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
351
10568
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
352 if (!notification->in_use)
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
353 return;
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
354
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
355 msn_cmdproc_send_quick(notification->cmdproc, "OUT", NULL, NULL);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
356
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
357 msn_notification_disconnect(notification);
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
358 }
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
359
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
360 /**************************************************************************
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
361 * Messages
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
362 **************************************************************************/
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
363
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
364 static void
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
365 msg_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
366 size_t len)
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
367 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
368 MsnMessage *msg;
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
369
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
370 msg = msn_message_new_from_cmd(cmdproc->session, cmd);
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
371
13886
e1d21534ecff [gaim-migrate @ 16973]
Ma Yuan <mayuan2006@gmail.com>
parents: 13881
diff changeset
372 msn_message_parse_payload(msg, payload, len,MSG_LINE_DEM,MSG_BODY_DEM);
11321
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11183
diff changeset
373 #ifdef MSN_DEBUG_NS
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11183
diff changeset
374 msn_message_show_readable(msg, "Notification", TRUE);
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11183
diff changeset
375 #endif
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
376
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
377 msn_cmdproc_process_msg(cmdproc, msg);
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
378
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
379 msn_message_destroy(msg);
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
380 }
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
381
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
382 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
383 msg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
384 {
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
385 purple_debug_info("MSNP14","Processing MSG... \n");
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
386 if(cmd->payload_len == 0){
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
387 return;
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
388 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
389 /* NOTE: cmd is not always cmdproc->last_cmd, sometimes cmd is a queued
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
390 * command and we are processing it */
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
391 if (cmd->payload == NULL)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
392 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
393 cmdproc->last_cmd->payload_cb = msg_cmd_post;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
394 cmdproc->servconn->payload_len = atoi(cmd->params[2]);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
395 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
396 else
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
397 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
398 g_return_if_fail(cmd->payload_cb != NULL);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
399
21055
4b97df576dd0 Prevent strlen() on non-nul-terminated string.
Daniel Atallah <datallah@pidgin.im>
parents: 21010
diff changeset
400 purple_debug_info("MSNP14","MSG payload:{%.*s}\n",cmd->payload_len, cmd->payload);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
401 cmd->payload_cb(cmdproc, cmd, cmd->payload, cmd->payload_len);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
402 }
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
403 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
404
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
405 /*send Message to Yahoo Messenger*/
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
406 void
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
407 uum_send_msg(MsnSession *session,MsnMessage *msg)
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
408 {
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
409 MsnCmdProc *cmdproc;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
410 MsnTransaction *trans;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
411 char *payload;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
412 gsize payload_len;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
413 int type;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
414
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
415 cmdproc = session->notification->cmdproc;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
416 g_return_if_fail(msg != NULL);
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
417 payload = msn_message_gen_payload(msg, &payload_len);
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
418 purple_debug_info("MSNP14","send UUM,payload{%s},strlen:%d,len:%d\n",
13881
c7efb0903be4 [gaim-migrate @ 16887]
Ma Yuan <mayuan2006@gmail.com>
parents: 13878
diff changeset
419 payload,strlen(payload),payload_len);
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
420 type = msg->type;
13890
a3fa24a63d1b [gaim-migrate @ 17006]
Ma Yuan <mayuan2006@gmail.com>
parents: 13889
diff changeset
421 trans = msn_transaction_new(cmdproc, "UUM","%s 32 %d %d",msg->remote_user,type,payload_len);
13887
fa2dcbed264d [gaim-migrate @ 16979]
Ma Yuan <mayuan2006@gmail.com>
parents: 13886
diff changeset
422 msn_transaction_set_payload(trans, payload, strlen(payload));
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
423 msn_cmdproc_send_trans(cmdproc, trans);
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
424 }
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
425
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
426 static void
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
427 ubm_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
428 size_t len)
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
429 {
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
430 MsnMessage *msg;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
431 PurpleConnection *gc;
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
432 const char *passport;
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
433 const char *content_type;
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
434
20914
8c000941e106 Don't assume that the payload is nul delimited.
Daniel Atallah <datallah@pidgin.im>
parents: 20847
diff changeset
435 purple_debug_info("MSNP14","Process UBM payload:%.*s\n", len, payload);
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
436 msg = msn_message_new_from_cmd(cmdproc->session, cmd);
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
437
13886
e1d21534ecff [gaim-migrate @ 16973]
Ma Yuan <mayuan2006@gmail.com>
parents: 13881
diff changeset
438 msn_message_parse_payload(msg, payload, len,MSG_LINE_DEM,MSG_BODY_DEM);
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
439 #ifdef MSN_DEBUG_NS
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
440 msn_message_show_readable(msg, "Notification", TRUE);
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
441 #endif
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
442
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
443 gc = cmdproc->session->account->gc;
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
444 passport = msg->remote_user;
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
445
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
446 content_type = msn_message_get_content_type(msg);
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
447 purple_debug_info("MSNP14","type:%d\n",content_type);
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
448 if(!strcmp(content_type,"text/plain")){
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
449 const char *value;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
450 const char *body;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
451 char *body_enc;
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
452 char *body_final = NULL;
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
453 size_t body_len;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
454
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
455 body = msn_message_get_bin_data(msg, &body_len);
21065
8bbf0f6700ed Fix some leaks and prevent some unnecessary allocations and frees.
Daniel Atallah <datallah@pidgin.im>
parents: 21055
diff changeset
456 body_enc = g_markup_escape_text(body, body_len);
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
457
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
458 if ((value = msn_message_get_attr(msg, "X-MMS-IM-Format")) != NULL) {
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
459 char *pre, *post;
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
460
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
461 msn_parse_format(value, &pre, &post);
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
462 body_final = g_strdup_printf("%s%s%s", pre ? pre : "",
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
463 body_enc ? body_enc : "", post ? post : "");
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
464 g_free(pre);
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
465 g_free(post);
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
466 }
20577
f24d1c68f2a4 Plug memory leaks.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20571
diff changeset
467 g_free(body_enc);
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
468 serv_got_im(gc, passport, body_final, 0, time(NULL));
21065
8bbf0f6700ed Fix some leaks and prevent some unnecessary allocations and frees.
Daniel Atallah <datallah@pidgin.im>
parents: 21055
diff changeset
469 g_free(body_final);
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
470 }
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
471 if(!strcmp(content_type,"text/x-msmsgscontrol")){
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
472 if(msn_message_get_attr(msg, "TypingUser") != NULL){
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
473 serv_got_typing(gc, passport, MSN_TYPING_RECV_TIMEOUT,
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
474 PURPLE_TYPING);
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
475 }
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
476 }
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
477 if(!strcmp(content_type,"text/x-msnmsgr-datacast")){
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
478 char *username, *str;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
479 PurpleAccount *account;
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
480 PurpleBuddy *buddy;
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
481 const char *user;
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
482
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
483 account = cmdproc->session->account;
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
484 user = msg->remote_user;
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
485
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
486 if ((buddy = purple_find_buddy(account, user)) != NULL){
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
487 username = g_markup_escape_text(purple_buddy_get_alias(buddy), -1);
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
488 }else{
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
489 username = g_markup_escape_text(user, -1);
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
490 }
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
491
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
492 str = g_strdup_printf(_("%s just sent you a Nudge!"), username);
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
493 g_free(username);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
494 msn_session_report_user(cmdproc->session,user,str,PURPLE_MESSAGE_SYSTEM);
13871
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
495 g_free(str);
db7573a9b767 [gaim-migrate @ 16758]
Ma Yuan <mayuan2006@gmail.com>
parents: 13870
diff changeset
496 }
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
497 msn_message_destroy(msg);
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
498 }
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
499
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
500 /*Yahoo msg process*/
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
501 static void
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
502 ubm_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
503 {
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
504 purple_debug_info("MSNP14","Processing UBM... \n");
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
505 if(cmd->payload_len == 0){
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
506 return;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
507 }
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
508 /* NOTE: cmd is not always cmdproc->last_cmd, sometimes cmd is a queued
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
509 * command and we are processing it */
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
510 if (cmd->payload == NULL){
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
511 cmdproc->last_cmd->payload_cb = ubm_cmd_post;
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
512 cmdproc->servconn->payload_len = atoi(cmd->params[2]);
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
513 }else{
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
514 g_return_if_fail(cmd->payload_cb != NULL);
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
515
20914
8c000941e106 Don't assume that the payload is nul delimited.
Daniel Atallah <datallah@pidgin.im>
parents: 20847
diff changeset
516 purple_debug_info("MSNP14","UBM payload:{%.*s}\n", cmd->payload_len, cmd->payload);
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
517 ubm_cmd_post(cmdproc, cmd, cmd->payload, cmd->payload_len);
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
518 }
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
519 }
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
520
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
521 /**************************************************************************
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
522 * Challenges
20508
a8855578906a Revert a bunch of whitespace changes so reviewing a diff against
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20505
diff changeset
523 * we use MD5 to caculate the Challenges
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
524 **************************************************************************/
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
525 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
526 chl_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
527 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
528 MsnTransaction *trans;
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
529 char buf[33];
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
530
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
531 #if 0
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
532 cipher = purple_ciphers_find_cipher("md5");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
533 context = purple_cipher_context_new(cipher, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
534 purple_cipher_context_append(context, (const guchar *)cmd->params[1],
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents: 10647
diff changeset
535 strlen(cmd->params[1]));
23755
6b2413139fae Patch 1 from Qulogic, this one mostly updates the version sent by pidgin
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 21905
diff changeset
536 challenge_resp = MSNP15_WLM_PRODUCT_KEY;
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
537
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
538 purple_cipher_context_append(context, (const guchar *)challenge_resp,
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents: 10647
diff changeset
539 strlen(challenge_resp));
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
540 purple_cipher_context_digest(context, sizeof(digest), digest, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
541 purple_cipher_context_destroy(context);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
542
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
543 for (i = 0; i < 16; i++)
20508
a8855578906a Revert a bunch of whitespace changes so reviewing a diff against
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20505
diff changeset
544 {
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents: 10647
diff changeset
545 g_snprintf(buf + (i*2), 3, "%02x", digest[i]);
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
546 }
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
547 #else
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
548 msn_handle_chl(cmd->params[1], buf);
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
549 #endif
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
550 // purple_debug_info("MSNP14","<<challenge:{%s}:{%s}\n",cmd->params[1],buf);
23755
6b2413139fae Patch 1 from Qulogic, this one mostly updates the version sent by pidgin
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 21905
diff changeset
551 trans = msn_transaction_new(cmdproc, "QRY", "%s 32", MSNP15_WLM_PRODUCT_ID);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
552
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
553 msn_transaction_set_payload(trans, buf, 32);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
554
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
555 msn_cmdproc_send_trans(cmdproc, trans);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
556 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
557
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
558 /**************************************************************************
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
559 * Buddy Lists
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
560 **************************************************************************/
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
561 /* add contact to xmlnode */
20530
0178f0d66bf0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20529
diff changeset
562 static void
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
563 msn_add_contact_xml(MsnSession *session, xmlnode *mlNode,const char *passport, MsnListOp list_op, MsnUserType type)
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
564 {
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
565 xmlnode *d_node,*c_node;
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
566 char **tokens;
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
567 const char *email,*domain;
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
568 char fmt_str[3];
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
569
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
570 g_return_if_fail(passport != NULL);
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
571
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
572 purple_debug_info("MSNP14","Passport: %s, type: %d\n", passport, type);
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
573 tokens = g_strsplit(passport, "@", 2);
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
574 email = tokens[0];
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
575 domain = tokens[1];
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
576
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
577 if (email == NULL || domain == NULL) {
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
578 purple_debug_error("msn", "Invalid passport (%s) specified to add to contact xml.\n", passport);
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
579 g_strfreev(tokens);
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
580 g_return_if_reached();
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
581 }
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
582
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
583 /*find a domain Node*/
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
584 for(d_node = xmlnode_get_child(mlNode,"d"); d_node; d_node = xmlnode_get_next_twin(d_node))
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
585 {
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
586 const char *attr = xmlnode_get_attrib(d_node,"n");
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
587 if (attr == NULL)
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
588 continue;
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
589 if (!strcmp(attr,domain))
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
590 break;
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
591 }
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
592
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
593 if(d_node == NULL)
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
594 {
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
595 /*domain not found, create a new domain Node*/
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
596 purple_debug_info("msn", "Didn't find existing domain node, adding one.\n");
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
597 d_node = xmlnode_new("d");
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
598 xmlnode_set_attrib(d_node, "n", domain);
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
599 xmlnode_insert_child(mlNode, d_node);
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
600 }
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
601
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
602 /*create contact node*/
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
603 c_node = xmlnode_new("c");
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
604 xmlnode_set_attrib(c_node, "n", email);
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
605
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
606 purple_debug_info("MSNP14", "list_op: %d\n", list_op);
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
607 g_snprintf(fmt_str, sizeof(fmt_str), "%d", list_op);
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
608 xmlnode_set_attrib(c_node, "l", fmt_str);
20530
0178f0d66bf0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20529
diff changeset
609
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
610 if (type != MSN_USER_TYPE_UNKNOWN)
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
611 g_snprintf(fmt_str, sizeof(fmt_str), "%d", type);
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
612 else if (msn_user_is_yahoo(session->account, passport))
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
613 g_snprintf(fmt_str, sizeof(fmt_str), "%d", MSN_USER_TYPE_YAHOO);
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
614 else
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
615 g_snprintf(fmt_str, sizeof(fmt_str), "%d", MSN_USER_TYPE_PASSPORT);
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
616
13869
4c7168c14431 [gaim-migrate @ 16733]
Ma Yuan <mayuan2006@gmail.com>
parents: 13868
diff changeset
617 /*mobile*/
4c7168c14431 [gaim-migrate @ 16733]
Ma Yuan <mayuan2006@gmail.com>
parents: 13868
diff changeset
618 //type_str = g_strdup_printf("4");
20733
a179242f6bef Further cleanup of the msn prpl including preventing the authorization request callback from crashing if triggered after the account is disconnected. Also removal of some extraneous debuggery, there is more that needs to be removed.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
619 xmlnode_set_attrib(c_node, "t", fmt_str);
20530
0178f0d66bf0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20529
diff changeset
620
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
621 xmlnode_insert_child(d_node, c_node);
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
622
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
623 g_strfreev(tokens);
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
624 }
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
625
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
626 static void
20497
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
627 msn_notification_post_adl(MsnCmdProc *cmdproc, const char *payload, int payload_len)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
628 {
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
629 MsnTransaction *trans;
20567
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
630 purple_debug_info("MSN Notification","Sending ADL with payload: %s\n", payload);
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
631 trans = msn_transaction_new(cmdproc, "ADL","%d", strlen(payload));
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
632 msn_transaction_set_payload(trans, payload, strlen(payload));
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
633 msn_cmdproc_send_trans(cmdproc, trans);
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
634 }
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
635
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
636 /*dump contact info to NS*/
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
637 void
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
638 msn_notification_dump_contact(MsnSession *session)
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
639 {
5457
586285a6ff22 [gaim-migrate @ 5845]
Christian Hammond <chipx86@chipx86.com>
parents: 5456
diff changeset
640 MsnUser *user;
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
641 GList *l;
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
642 xmlnode *adl_node;
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
643 char *payload;
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
644 int payload_len;
20497
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
645 int adl_count = 0;
20476
198222e01a7d The second msn-p13-merge-head.diff.gz from SF Patch #162854 from Ka-Hing Cheung.
Richard Laager <rlaager@pidgin.im>
parents: 20475
diff changeset
646 const char *display_name;
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
647
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
648 adl_node = xmlnode_new("ml");
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
649 adl_node->child = NULL;
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
650 xmlnode_set_attrib(adl_node, "l", "1");
20560
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
651
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
652 /*get the userlist*/
20497
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
653 for (l = session->userlist->users; l != NULL; l = l->next){
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
654 user = l->data;
20530
0178f0d66bf0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20529
diff changeset
655
0178f0d66bf0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20529
diff changeset
656 /* skip RL & PL during initial dump */
0178f0d66bf0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20529
diff changeset
657 if (!(user->list_op & MSN_LIST_OP_MASK))
0178f0d66bf0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20529
diff changeset
658 continue;
0178f0d66bf0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20529
diff changeset
659
0178f0d66bf0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20529
diff changeset
660 msn_add_contact_xml(session, adl_node, user->passport,
20497
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
661 user->list_op & MSN_LIST_OP_MASK, user->type);
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
662
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
663 /* each ADL command may contain up to 150 contacts */
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
664 if (++adl_count % 150 == 0 || l->next == NULL) {
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
665 payload = xmlnode_to_str(adl_node,&payload_len);
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
666
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
667 msn_notification_post_adl(session->notification->cmdproc,
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
668 payload, payload_len);
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
669
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
670 g_free(payload);
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
671 xmlnode_free(adl_node);
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
672
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
673 if (l->next) {
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
674 adl_node = xmlnode_new("ml");
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
675 adl_node->child = NULL;
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
676 xmlnode_set_attrib(adl_node, "l", "1");
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
677 }
6dd1c3f1e2f8 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@pidgin.im>
parents: 20493
diff changeset
678 }
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
679 }
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
680
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
681 if (adl_count == 0) {
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
682 payload = xmlnode_to_str(adl_node,&payload_len);
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
683
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
684 msn_notification_post_adl(session->notification->cmdproc, payload, payload_len);
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
685
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
686 g_free(payload);
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
687 xmlnode_free(adl_node);
20560
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
688 }
20476
198222e01a7d The second msn-p13-merge-head.diff.gz from SF Patch #162854 from Ka-Hing Cheung.
Richard Laager <rlaager@pidgin.im>
parents: 20475
diff changeset
689
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
690 display_name = purple_connection_get_display_name(session->account->gc);
20560
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
691 if (display_name
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
692 && strcmp(display_name,
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
693 purple_account_get_username(session->account))) {
20476
198222e01a7d The second msn-p13-merge-head.diff.gz from SF Patch #162854 from Ka-Hing Cheung.
Richard Laager <rlaager@pidgin.im>
parents: 20475
diff changeset
694 msn_act_id(session->account->gc, display_name);
198222e01a7d The second msn-p13-merge-head.diff.gz from SF Patch #162854 from Ka-Hing Cheung.
Richard Laager <rlaager@pidgin.im>
parents: 20475
diff changeset
695 }
198222e01a7d The second msn-p13-merge-head.diff.gz from SF Patch #162854 from Ka-Hing Cheung.
Richard Laager <rlaager@pidgin.im>
parents: 20475
diff changeset
696
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
697 }
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
698
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
699 /*Post FQY to NS,Inform add a Yahoo User*/
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
700 void
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
701 msn_notification_send_fqy(MsnSession *session, const char *passport)
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
702 {
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
703 MsnTransaction *trans;
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
704 MsnCmdProc *cmdproc;
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
705 char* email,*domain,*payload;
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
706 char **tokens;
5457
586285a6ff22 [gaim-migrate @ 5845]
Christian Hammond <chipx86@chipx86.com>
parents: 5456
diff changeset
707
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
708 cmdproc = session->notification->cmdproc;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
709
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
710 tokens = g_strsplit(passport, "@", 2);
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
711 email = tokens[0];
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
712 domain = tokens[1];
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
713
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
714 payload = g_strdup_printf("<ml><d n=\"%s\"><c n=\"%s\"/></d></ml>", domain, email);
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
715 trans = msn_transaction_new(cmdproc, "FQY","%d", strlen(payload));
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
716 msn_transaction_set_payload(trans, payload, strlen(payload));
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
717 msn_cmdproc_send_trans(cmdproc, trans);
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
718
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
719 g_free(payload);
21010
2bd8577a08e5 Fix some leaks.
Daniel Atallah <datallah@pidgin.im>
parents: 20935
diff changeset
720 g_strfreev(tokens);
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
721 }
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
722
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
723 static void
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
724 blp_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
725 {
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
726 }
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
727
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
728 static void
20567
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
729 adl_cmd_parse(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
730 size_t len)
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
731 {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
732 xmlnode *root, *domain_node;
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
733
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
734 purple_debug_misc("MSN Notification", "Parsing received ADL XML data\n");
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
735
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
736 g_return_if_fail(payload != NULL);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
737
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
738 root = xmlnode_from_str(payload, (gssize) len);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
739
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
740 if (root == NULL) {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
741 purple_debug_info("MSN Notification", "Invalid XML!\n");
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
742 return;
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
743 }
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
744 for (domain_node = xmlnode_get_child(root, "d"); domain_node; domain_node = xmlnode_get_next_twin(domain_node)) {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
745 const gchar * domain = NULL;
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
746 xmlnode *contact_node = NULL;
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
747
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
748 domain = xmlnode_get_attrib(domain_node, "n");
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
749
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
750 for (contact_node = xmlnode_get_child(domain_node, "c"); contact_node; contact_node = xmlnode_get_next_twin(contact_node)) {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
751 // gchar *name = NULL, *friendlyname = NULL, *passport= NULL;
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
752 const gchar *list;
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
753 gint list_op = 0;
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
754
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
755 // name = xmlnode_get_attrib(contact_node, "n");
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
756 list = xmlnode_get_attrib(contact_node, "l");
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
757 if (list != NULL) {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
758 list_op = atoi(list);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
759 }
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
760 // friendlyname = xmlnode_get_attrib(contact_node, "f");
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
761
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
762 // passport = g_strdup_printf("%s@%s", name, domain);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
763
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
764 // if (friendlyname != NULL) {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
765 // decoded_friendlyname = g_strdup(purple_url_decode(friendlyname));
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
766 // } else {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
767 // decoded_friendlyname = g_strdup(passport);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
768 // }
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
769
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
770 if (list_op & MSN_LIST_RL_OP) {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
771 /* someone is adding us */
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
772 // got_new_entry(cmdproc->session->account->gc, passport, decoded_friendly_name);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
773 msn_get_contact_list(cmdproc->session->contact, MSN_PS_PENDING_LIST, NULL);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
774 }
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
775
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
776 // g_free(decoded_friendly_name);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
777 // g_free(passport);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
778 }
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
779 }
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
780
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
781 xmlnode_free(root);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
782 }
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
783
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
784 static void
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
785 adl_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
786 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
787 MsnSession *session;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
788
20567
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
789 g_return_if_fail(cmdproc != NULL);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
790 g_return_if_fail(cmdproc->session != NULL);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
791 g_return_if_fail(cmdproc->last_cmd != NULL);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
792 g_return_if_fail(cmd != NULL);
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
793
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
794 session = cmdproc->session;
5457
586285a6ff22 [gaim-migrate @ 5845]
Christian Hammond <chipx86@chipx86.com>
parents: 5456
diff changeset
795
20567
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
796 if ( !strcmp(cmd->params[1], "OK")) {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
797 /* ADL ack */
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
798 msn_session_finish_login(session);
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
799 } else {
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
800 cmdproc->last_cmd->payload_cb = adl_cmd_parse;
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
801 }
20560
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
802
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
803 return;
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
804 }
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
805
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
806 static void
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
807 adl_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
808 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
809 MsnSession *session;
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
810 PurpleAccount *account;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
811 PurpleConnection *gc;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
812 char *reason = NULL;
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
813
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
814 session = cmdproc->session;
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
815 account = session->account;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
816 gc = purple_account_get_connection(account);
5457
586285a6ff22 [gaim-migrate @ 5845]
Christian Hammond <chipx86@chipx86.com>
parents: 5456
diff changeset
817
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
818 purple_debug_error("msn","ADL error\n");
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
819 reason = g_strdup_printf(_("Unknown error (%d)"), error);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
820 purple_notify_error(gc, NULL, _("Unable to add user"), reason);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
821 g_free(reason);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
822 }
5457
586285a6ff22 [gaim-migrate @ 5845]
Christian Hammond <chipx86@chipx86.com>
parents: 5456
diff changeset
823
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
824 static void
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
825 fqy_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
826 size_t len)
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
827 {
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
828 purple_debug_info("MSN Notification","FQY payload:\n%s\n", payload);
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
829 g_return_if_fail(cmdproc->session != NULL);
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
830 g_return_if_fail(cmdproc->session->contact != NULL);
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
831 // msn_notification_post_adl(cmdproc, payload, len);
20567
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
832 // msn_get_address_book(cmdproc->session->contact, MSN_AB_SAVE_CONTACT, NULL, NULL);
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
833 }
9197
3c9b907b45a7 [gaim-migrate @ 9992]
Christian Hammond <chipx86@chipx86.com>
parents: 9194
diff changeset
834
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
835 static void
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
836 fqy_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
837 {
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
838 purple_debug_info("MSNP14","Process FQY\n");
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
839 cmdproc->last_cmd->payload_cb = fqy_cmd_post;
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
840 }
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
841
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
842 static void
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
843 rml_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
844 {
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
845 #if 0
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
846 MsnTransaction *trans;
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
847 char * payload;
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
848 #endif
9197
3c9b907b45a7 [gaim-migrate @ 9992]
Christian Hammond <chipx86@chipx86.com>
parents: 9194
diff changeset
849
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
850 purple_debug_info("MSNP14","Process RML\n");
13865
ce1c14d05b5f [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 13864
diff changeset
851 #if 0
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
852 trans = msn_transaction_new(cmdproc, "RML","");
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
853
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
854 msn_transaction_set_payload(trans, payload, strlen(payload));
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
856 msn_cmdproc_send_trans(cmdproc, trans);
13865
ce1c14d05b5f [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 13864
diff changeset
857 #endif
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
858 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
859
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
860 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
861 add_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
862 {
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
863 MsnSession *session;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
864 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
865 PurpleConnection *gc;
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
866 const char *list, *passport;
9897
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
867 char *reason = NULL;
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
868 char *msg = NULL;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
869 char **params;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
870
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
871 session = cmdproc->session;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
872 account = session->account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
873 gc = purple_account_get_connection(account);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
874 params = g_strsplit(trans->params, " ", 0);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
875
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
876 list = params[0];
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
877 passport = params[1];
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
878
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
879 if (!strcmp(list, "FL"))
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
880 msg = g_strdup_printf(_("Unable to add user on %s (%s)"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
881 purple_account_get_username(account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
882 purple_account_get_protocol_name(account));
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
883 else if (!strcmp(list, "BL"))
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
884 msg = g_strdup_printf(_("Unable to block user on %s (%s)"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
885 purple_account_get_username(account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
886 purple_account_get_protocol_name(account));
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
887 else if (!strcmp(list, "AL"))
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
888 msg = g_strdup_printf(_("Unable to permit user on %s (%s)"),
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
889 purple_account_get_username(account),
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
890 purple_account_get_protocol_name(account));
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
891
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
892 if (!strcmp(list, "FL"))
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
893 {
9900
fc219ee81de6 [gaim-migrate @ 10791]
Mark Doliner <markdoliner@pidgin.im>
parents: 9897
diff changeset
894 if (error == 210)
9897
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
895 {
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
896 reason = g_strdup_printf(_("%s could not be added because "
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
897 "your buddy list is full."), passport);
9897
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
898 }
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
899 }
9897
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
900
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
901 if (reason == NULL)
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
902 {
9897
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
903 if (error == 208)
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
904 {
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
905 reason = g_strdup_printf(_("%s is not a valid passport account."),
9897
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
906 passport);
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
907 }
11862
5d4bc6d54688 [gaim-migrate @ 14153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11819
diff changeset
908 else if (error == 500)
5d4bc6d54688 [gaim-migrate @ 14153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11819
diff changeset
909 {
5d4bc6d54688 [gaim-migrate @ 14153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11819
diff changeset
910 reason = g_strdup(_("Service Temporarily Unavailable."));
5d4bc6d54688 [gaim-migrate @ 14153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11819
diff changeset
911 }
9897
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
912 else
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
913 {
11862
5d4bc6d54688 [gaim-migrate @ 14153]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11819
diff changeset
914 reason = g_strdup(_("Unknown error."));
9897
28ae043d7cda [gaim-migrate @ 10786]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9859
diff changeset
915 }
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
916 }
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
917
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
918 if (msg != NULL)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
919 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
920 purple_notify_error(gc, NULL, msg, reason);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
921 g_free(msg);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
922 }
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
923
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
924 if (!strcmp(list, "FL"))
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
925 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
926 PurpleBuddy *buddy;
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
927
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
928 buddy = purple_find_buddy(account, passport);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
929
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
930 if (buddy != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
931 purple_blist_remove_buddy(buddy);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
932 }
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
933
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
934 g_free(reason);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
935
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
936 g_strfreev(params);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
937 }
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
938
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
939 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
940 adg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5322
782746a9bfdd [gaim-migrate @ 5694]
Christian Hammond <chipx86@chipx86.com>
parents: 5318
diff changeset
941 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
942 MsnSession *session;
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
943 gint group_id;
7162
dfd30c70acde [gaim-migrate @ 7729]
Nathan Walp <nwalp@pidgin.im>
parents: 7134
diff changeset
944 const char *group_name;
5322
782746a9bfdd [gaim-migrate @ 5694]
Christian Hammond <chipx86@chipx86.com>
parents: 5318
diff changeset
945
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
946 session = cmdproc->session;
5322
782746a9bfdd [gaim-migrate @ 5694]
Christian Hammond <chipx86@chipx86.com>
parents: 5318
diff changeset
947
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
948 group_id = atoi(cmd->params[3]);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
949
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
950 group_name = purple_url_decode(cmd->params[2]);
5322
782746a9bfdd [gaim-migrate @ 5694]
Christian Hammond <chipx86@chipx86.com>
parents: 5318
diff changeset
951
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
952 msn_group_new(session->userlist, cmd->params[3], group_name);
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
953
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
954 /* There is a user that must be moved to this group */
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
955 if (cmd->trans->data)
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
956 {
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
957 /* msn_userlist_move_buddy(); */
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
958 MsnUserList *userlist = cmdproc->session->userlist;
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
959 MsnCallbackState *data = cmd->trans->data;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
960
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
961 if (data->old_group_name != NULL)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
962 {
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
963 msn_userlist_move_buddy(userlist, data->who, data->old_group_name, group_name);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
964 g_free(data->old_group_name);
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
965 } else {
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
966 // msn_add_contact_to_group(userlist, data, data->who, group_name);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
967 }
5361
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents: 5358
diff changeset
968 }
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents: 5358
diff changeset
969 }
a964b856e97f [gaim-migrate @ 5737]
Christian Hammond <chipx86@chipx86.com>
parents: 5358
diff changeset
970
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
971 static void
17202
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
972 qng_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
973 {
17686
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
974 MsnSession *session;
17202
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
975 static int count = 0;
17686
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
976 const char *passport;
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
977 PurpleAccount *account;
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
978
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
979 session = cmdproc->session;
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
980 account = session->account;
17251
cf8b45537d72 A couple of tweaks to open Hotmail inbox
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17202
diff changeset
981
cf8b45537d72 A couple of tweaks to open Hotmail inbox
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17202
diff changeset
982 if (session->passport_info.file == NULL)
cf8b45537d72 A couple of tweaks to open Hotmail inbox
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17202
diff changeset
983 return;
17202
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
984
17686
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
985 passport = purple_normalize(account, purple_account_get_username(account));
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
986
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
987 if ((strstr(passport, "@hotmail.") != NULL) ||
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
988 (strstr(passport, "@msn.com") != NULL))
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
989 return;
b9a99ae92f2a Don't retrieve hotmail authorization info for non-hotmail accounts. Fixes #1580
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17404
diff changeset
990
17202
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
991 if (count++ < 26)
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
992 return;
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
993
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
994 count = 0;
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
995 msn_cmdproc_send(cmdproc, "URL", "%s", "INBOX");
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
996 }
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
997
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
998
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
999 static void
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1000 fln_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1001 {
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
1002 MsnSlpLink *slplink;
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1003 MsnUser *user;
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
1004
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1005 user = msn_userlist_find_user(cmdproc->session->userlist, cmd->params[0]);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1006
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1007 user->status = "offline";
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1008 msn_user_update(user);
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
1009
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
1010 slplink = msn_session_find_slplink(cmdproc->session, cmd->params[0]);
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
1011
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
1012 if (slplink != NULL)
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
1013 msn_slplink_destroy(slplink);
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
1014
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1015 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1016
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1017 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1018 iln_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1019 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1020 MsnSession *session;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1021 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1022 PurpleConnection *gc;
6800
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6779
diff changeset
1023 MsnUser *user;
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6779
diff changeset
1024 MsnObject *msnobj;
13857
c890f17bf06d [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
1025 int wlmclient;
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1026 const char *state, *passport, *friendly;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1027
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1028 session = cmdproc->session;
10010
d9ee01f0659a [gaim-migrate @ 10927]
Mark Doliner <markdoliner@pidgin.im>
parents: 9967
diff changeset
1029 account = session->account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1030 gc = purple_account_get_connection(account);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1031
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1032 state = cmd->params[1];
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1033 passport = cmd->params[2];
13869
4c7168c14431 [gaim-migrate @ 16733]
Ma Yuan <mayuan2006@gmail.com>
parents: 13868
diff changeset
1034 /*if a contact is actually on the WLM part or the yahoo part*/
13857
c890f17bf06d [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
1035 wlmclient = atoi(cmd->params[3]);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
1036 friendly = purple_url_decode(cmd->params[4]);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1037
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1038 user = msn_userlist_find_user(session->userlist, passport);
6858
a367cfd3e75f [gaim-migrate @ 7403]
Christian Hammond <chipx86@chipx86.com>
parents: 6833
diff changeset
1039
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1040 serv_got_alias(gc, passport, friendly);
6833
57515f938da3 [gaim-migrate @ 7378]
Christian Hammond <chipx86@chipx86.com>
parents: 6830
diff changeset
1041
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1042 msn_user_set_friendly_name(user, friendly);
6858
a367cfd3e75f [gaim-migrate @ 7403]
Christian Hammond <chipx86@chipx86.com>
parents: 6833
diff changeset
1043
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
1044 if (session->protocol_ver >= 9 && cmd->param_count == 8)
6800
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6779
diff changeset
1045 {
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 16124
diff changeset
1046 msnobj = msn_object_new_from_string(purple_url_decode(cmd->params[6]));
6800
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6779
diff changeset
1047 msn_user_set_object(user, msnobj);
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6779
diff changeset
1048 }
8f99c220b503 [gaim-migrate @ 7340]
Christian Hammond <chipx86@chipx86.com>
parents: 6779
diff changeset
1049
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1050 msn_user_set_state(user, state);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1051 msn_user_update(user);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1052 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1053
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1054 static void
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1055 ipg_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1056 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1057 #if 0
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1058 purple_debug_misc("msn", "Incoming Page: {%s}\n", payload);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1059 #endif
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1060 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1061
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1062 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1063 ipg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5960
cd797d042726 [gaim-migrate @ 6407]
Christian Hammond <chipx86@chipx86.com>
parents: 5933
diff changeset
1064 {
8926
a987137e2173 [gaim-migrate @ 9696]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8924
diff changeset
1065 cmdproc->servconn->payload_len = atoi(cmd->params[0]);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1066 cmdproc->last_cmd->payload_cb = ipg_cmd_post;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1067 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1068
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1069 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1070 nln_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1071 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1072 MsnSession *session;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1073 PurpleAccount *account;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1074 PurpleConnection *gc;
6829
233441b74cf9 [gaim-migrate @ 7374]
Christian Hammond <chipx86@chipx86.com>
parents: 6828
diff changeset
1075 MsnUser *user;
233441b74cf9 [gaim-migrate @ 7374]
Christian Hammond <chipx86@chipx86.com>
parents: 6828
diff changeset
1076 MsnObject *msnobj;
22478
bd66c165dcad Patch from Jorge Villaseñor, treat the client id as unsigned so 0x80000000
Ka-Hing Cheung <khc@pidgin.im>
parents: 21905
diff changeset
1077 unsigned long clientid;
13857
c890f17bf06d [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
1078 int wlmclient;
14546
290281d3e65e [gaim-migrate @ 17203]
Richard Nelson <wabz@pidgin.im>
parents: 14254
diff changeset
1079 const char *state, *passport, *friendly, *old_friendly;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1080
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1081 session = cmdproc->session;
10010
d9ee01f0659a [gaim-migrate @ 10927]
Mark Doliner <markdoliner@pidgin.im>
parents: 9967
diff changeset
1082 account = session->account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1083 gc = purple_account_get_connection(account);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1084
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1085 state = cmd->params[0];
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1086 passport = cmd->params[1];
13857
c890f17bf06d [gaim-migrate @ 16547]
Ma Yuan <mayuan2006@gmail.com>
parents: 13856
diff changeset
1087 wlmclient = atoi(cmd->params[2]);
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
1088 friendly = purple_url_decode(cmd->params[3]);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1089
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1090 user = msn_userlist_find_user(session->userlist, passport);
6858
a367cfd3e75f [gaim-migrate @ 7403]
Christian Hammond <chipx86@chipx86.com>
parents: 6833
diff changeset
1091
14546
290281d3e65e [gaim-migrate @ 17203]
Richard Nelson <wabz@pidgin.im>
parents: 14254
diff changeset
1092 old_friendly = msn_user_get_friendly_name(user);
18805
776844ef91d8 cmd->params[2] could be NULL, or purple_url_decode() could return NULL. Don't pass a potential NULL to strcmp().
Evan Schoenberg <evands@pidgin.im>
parents: 17686
diff changeset
1093 if (!old_friendly || (old_friendly && (!friendly || strcmp(old_friendly, friendly))))
14546
290281d3e65e [gaim-migrate @ 17203]
Richard Nelson <wabz@pidgin.im>
parents: 14254
diff changeset
1094 {
290281d3e65e [gaim-migrate @ 17203]
Richard Nelson <wabz@pidgin.im>
parents: 14254
diff changeset
1095 serv_got_alias(gc, passport, friendly);
290281d3e65e [gaim-migrate @ 17203]
Richard Nelson <wabz@pidgin.im>
parents: 14254
diff changeset
1096 msn_user_set_friendly_name(user, friendly);
290281d3e65e [gaim-migrate @ 17203]
Richard Nelson <wabz@pidgin.im>
parents: 14254
diff changeset
1097 }
6858
a367cfd3e75f [gaim-migrate @ 7403]
Christian Hammond <chipx86@chipx86.com>
parents: 6833
diff changeset
1098
9859
b0b0df034a9f [gaim-migrate @ 10738]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9363
diff changeset
1099 if (session->protocol_ver >= 9)
6829
233441b74cf9 [gaim-migrate @ 7374]
Christian Hammond <chipx86@chipx86.com>
parents: 6828
diff changeset
1100 {
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
1101 if (cmd->param_count == 7)
9859
b0b0df034a9f [gaim-migrate @ 10738]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9363
diff changeset
1102 {
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 16124
diff changeset
1103 msnobj = msn_object_new_from_string(purple_url_decode(cmd->params[5]));
9859
b0b0df034a9f [gaim-migrate @ 10738]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9363
diff changeset
1104 msn_user_set_object(user, msnobj);
b0b0df034a9f [gaim-migrate @ 10738]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9363
diff changeset
1105 }
b0b0df034a9f [gaim-migrate @ 10738]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9363
diff changeset
1106 else
b0b0df034a9f [gaim-migrate @ 10738]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9363
diff changeset
1107 {
b0b0df034a9f [gaim-migrate @ 10738]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9363
diff changeset
1108 msn_user_set_object(user, NULL);
b0b0df034a9f [gaim-migrate @ 10738]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9363
diff changeset
1109 }
6829
233441b74cf9 [gaim-migrate @ 7374]
Christian Hammond <chipx86@chipx86.com>
parents: 6828
diff changeset
1110 }
233441b74cf9 [gaim-migrate @ 7374]
Christian Hammond <chipx86@chipx86.com>
parents: 6828
diff changeset
1111
22480
71b9bf3f70a2 Specify the base to convert from to prevent interpreting 0-prefixed client
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 22478
diff changeset
1112 clientid = strtoul(cmd->params[4], NULL, 10);
11819
ed7eacf30277 [gaim-migrate @ 14110]
David Fiander
parents: 11321
diff changeset
1113 user->mobile = (clientid & MSN_CLIENT_CAP_MSNMOBILE);
ed7eacf30277 [gaim-migrate @ 14110]
David Fiander
parents: 11321
diff changeset
1114
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1115 msn_user_set_state(user, state);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1116 msn_user_update(user);
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1117 }
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1118
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11862
diff changeset
1119 #if 0
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1120 static void
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1121 chg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1122 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1123 char *state = cmd->params[1];
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1124 int state_id = 0;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1125
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1126 if (!strcmp(state, "NLN"))
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1127 state_id = MSN_ONLINE;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1128 else if (!strcmp(state, "BSY"))
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1129 state_id = MSN_BUSY;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1130 else if (!strcmp(state, "IDL"))
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1131 state_id = MSN_IDLE;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1132 else if (!strcmp(state, "BRB"))
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1133 state_id = MSN_BRB;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1134 else if (!strcmp(state, "AWY"))
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1135 state_id = MSN_AWAY;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1136 else if (!strcmp(state, "PHN"))
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1137 state_id = MSN_PHONE;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1138 else if (!strcmp(state, "LUN"))
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1139 state_id = MSN_LUNCH;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1140 else if (!strcmp(state, "HDN"))
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1141 state_id = MSN_HIDDEN;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1142
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1143 cmdproc->session->state = state_id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1144 }
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11862
diff changeset
1145 #endif
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1146
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1147
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1148 static void
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1149 not_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len)
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1150 {
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1151 #if 0
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1152 MSN_SET_PARAMS("NOT %d\r\n%s", cmdproc->servconn->payload, payload);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1153 purple_debug_misc("msn", "Notification: {%s}\n", payload);
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1154 #endif
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1155 }
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1156
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1157 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1158 not_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1159 {
8926
a987137e2173 [gaim-migrate @ 9696]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8924
diff changeset
1160 cmdproc->servconn->payload_len = atoi(cmd->params[0]);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1161 cmdproc->last_cmd->payload_cb = not_cmd_post;
5363
b6e28be0c9bd [gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents: 5361
diff changeset
1162 }
b6e28be0c9bd [gaim-migrate @ 5739]
Christian Hammond <chipx86@chipx86.com>
parents: 5361
diff changeset
1163
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1164 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1165 rea_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1166 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1167 MsnSession *session;
21720
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1168 PurpleAccount *account;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1169 PurpleConnection *gc;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1170 const char *friendly;
21720
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1171 char *username;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1172
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1173 session = cmdproc->session;
21720
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1174 account = session->account;
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1175 username = g_strdup(purple_normalize(account,
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1176 purple_account_get_username(account)));
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1177
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1178 /* Only set display name if our *own* friendly name changed! */
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1179 if (strcmp(username, purple_normalize(account, cmd->params[2])))
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1180 {
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1181 g_free(username);
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1182 return;
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1183 }
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1184
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1185 g_free(username);
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1186
235394d5c7f4 Pull a bunch of bugfix only changes to im.pidgin.pidgin.2.3.1,
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 21453
diff changeset
1187 gc = account->gc;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1188 friendly = purple_url_decode(cmd->params[3]);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1189
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1190 purple_connection_set_display_name(gc, friendly);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1191 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1192
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1193 static void
10833
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1194 prp_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1195 {
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1196 MsnSession *session = cmdproc->session;
20560
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
1197 const char *type, *value, *friendlyname;
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
1198
10833
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1199 g_return_if_fail(cmd->param_count >= 3);
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1200
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1201 type = cmd->params[2];
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1202
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1203 if (cmd->param_count == 4)
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1204 {
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1205 value = cmd->params[3];
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1206 if (!strcmp(type, "PHH"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1207 msn_user_set_home_phone(session->user, purple_url_decode(value));
10833
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1208 else if (!strcmp(type, "PHW"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1209 msn_user_set_work_phone(session->user, purple_url_decode(value));
10833
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1210 else if (!strcmp(type, "PHM"))
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1211 msn_user_set_mobile_phone(session->user, purple_url_decode(value));
10833
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1212 }
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1213 else
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1214 {
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1215 if (!strcmp(type, "PHH"))
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1216 msn_user_set_home_phone(session->user, NULL);
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1217 else if (!strcmp(type, "PHW"))
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1218 msn_user_set_work_phone(session->user, NULL);
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1219 else if (!strcmp(type, "PHM"))
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1220 msn_user_set_mobile_phone(session->user, NULL);
20556
4979b6dae2f0 oops, not only did I typo'ed MFN, I also did a comparison before I update
Ka-Hing Cheung <khc@pidgin.im>
parents: 20543
diff changeset
1221 else {
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1222 type = cmd->params[1];
20556
4979b6dae2f0 oops, not only did I typo'ed MFN, I also did a comparison before I update
Ka-Hing Cheung <khc@pidgin.im>
parents: 20543
diff changeset
1223 if (!strcmp(type, "MFN")) {
20560
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
1224 friendlyname = purple_url_decode(cmd->params[2]);
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1225
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1226 msn_update_contact(session->contact, friendlyname);
20556
4979b6dae2f0 oops, not only did I typo'ed MFN, I also did a comparison before I update
Ka-Hing Cheung <khc@pidgin.im>
parents: 20543
diff changeset
1227
4979b6dae2f0 oops, not only did I typo'ed MFN, I also did a comparison before I update
Ka-Hing Cheung <khc@pidgin.im>
parents: 20543
diff changeset
1228 purple_connection_set_display_name(
4979b6dae2f0 oops, not only did I typo'ed MFN, I also did a comparison before I update
Ka-Hing Cheung <khc@pidgin.im>
parents: 20543
diff changeset
1229 purple_account_get_connection(session->account),
20560
79e9c94c34db Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20557
diff changeset
1230 friendlyname);
20556
4979b6dae2f0 oops, not only did I typo'ed MFN, I also did a comparison before I update
Ka-Hing Cheung <khc@pidgin.im>
parents: 20543
diff changeset
1231 }
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1232 }
10833
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1233 }
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1234 }
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1235
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
1236 static void
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1237 reg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5318
2073a19f4217 [gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents: 5312
diff changeset
1238 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1239 MsnSession *session;
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1240 const char *group_id, *group_name;
5318
2073a19f4217 [gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents: 5312
diff changeset
1241
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1242 session = cmdproc->session;
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1243 group_id = cmd->params[2];
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1244 group_name = purple_url_decode(cmd->params[3]);
5318
2073a19f4217 [gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents: 5312
diff changeset
1245
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1246 msn_userlist_rename_group_id(session->userlist, group_id, group_name);
5318
2073a19f4217 [gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents: 5312
diff changeset
1247 }
2073a19f4217 [gaim-migrate @ 5690]
Christian Hammond <chipx86@chipx86.com>
parents: 5312
diff changeset
1248
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1249 static void
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1250 reg_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1251 {
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
1252 const char * group_id;
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1253 char **params;
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1254
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1255 params = g_strsplit(trans->params, " ", 0);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1256
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
1257 group_id = params[0];
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1258
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1259 group_error_helper(cmdproc->session, _("Unable to rename group"), group_id, error);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1260
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1261 g_strfreev(params);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1262 }
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1263
20569
66628c75dada Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents: 20567
diff changeset
1264 #if 0
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1265 static void
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1266 rem_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5322
782746a9bfdd [gaim-migrate @ 5694]
Christian Hammond <chipx86@chipx86.com>
parents: 5318
diff changeset
1267 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1268 MsnSession *session;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1269 MsnUser *user;
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1270 const char *group_id, *list, *passport;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1271 MsnListId list_id;
6772
748eb5453507 [gaim-migrate @ 7309]
Christian Hammond <chipx86@chipx86.com>
parents: 6767
diff changeset
1272
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1273 session = cmdproc->session;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1274 list = cmd->params[1];
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1275 passport = cmd->params[3];
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1276 user = msn_userlist_find_user(session->userlist, passport);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1277
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1278 g_return_if_fail(user != NULL);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1279
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1280 list_id = msn_get_list_id(list);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1281
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1282 if (cmd->param_count == 5)
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1283 group_id = cmd->params[4];
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1284 else
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1285 group_id = NULL;
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
1286
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1287 msn_got_rem_user(session, user, list_id, group_id);
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1288 msn_user_update(user);
5322
782746a9bfdd [gaim-migrate @ 5694]
Christian Hammond <chipx86@chipx86.com>
parents: 5318
diff changeset
1289 }
20569
66628c75dada Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents: 20567
diff changeset
1290 #endif
5322
782746a9bfdd [gaim-migrate @ 5694]
Christian Hammond <chipx86@chipx86.com>
parents: 5318
diff changeset
1291
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1292 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1293 rmg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
1294 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1295 MsnSession *session;
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1296 const char *group_id;
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
1297
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1298 session = cmdproc->session;
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1299 group_id = cmd->params[2];
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
1300
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1301 msn_userlist_remove_group_id(session->userlist, group_id);
5518
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
1302 }
436fb9490b62 [gaim-migrate @ 5918]
Christian Hammond <chipx86@chipx86.com>
parents: 5509
diff changeset
1303
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1304 static void
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1305 rmg_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1306 {
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1307 const char *group_id;
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1308 char **params;
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1309
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1310 params = g_strsplit(trans->params, " ", 0);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1311
20511
52917f6794f0 Fix a compile warning, rmg_error had not been fully updated for the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20508
diff changeset
1312 group_id = params[0];
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1313
10452
f29b5d423600 [gaim-migrate @ 11719]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10451
diff changeset
1314 group_error_helper(cmdproc->session, _("Unable to delete group"), group_id, error);
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1315
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1316 g_strfreev(params);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1317 }
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1318
20569
66628c75dada Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents: 20567
diff changeset
1319 #if 0
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
1320 static void
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1321 syn_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
1322 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1323 MsnSession *session;
17404
f940e48b4caf Handle new accounts with no buddies better - finish login when the first
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17317
diff changeset
1324 MsnSync *sync;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1325 int total_users;
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1326
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1327 session = cmdproc->session;
10269
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1328
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1329 if (cmd->param_count == 2)
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1330 {
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1331 /*
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1332 * This can happen if we sent a SYN with an up-to-date
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1333 * buddy list revision, but we send 0 to get a full list.
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1334 * So, error out.
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1335 */
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1336
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
1337 msn_session_set_error(cmdproc->session, MSN_ERROR_BAD_BLIST, NULL);
10269
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1338 return;
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1339 }
f245c499b38f [gaim-migrate @ 11417]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10240
diff changeset
1340
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1341 total_users = atoi(cmd->params[2]);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1342
17404
f940e48b4caf Handle new accounts with no buddies better - finish login when the first
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17317
diff changeset
1343 sync = msn_sync_new(session);
f940e48b4caf Handle new accounts with no buddies better - finish login when the first
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17317
diff changeset
1344 sync->total_users = total_users;
f940e48b4caf Handle new accounts with no buddies better - finish login when the first
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17317
diff changeset
1345 sync->old_cbs_table = cmdproc->cbs_table;
8613
60a7c28a27c2 [gaim-migrate @ 9364]
Christian Hammond <chipx86@chipx86.com>
parents: 8583
diff changeset
1346
17404
f940e48b4caf Handle new accounts with no buddies better - finish login when the first
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17317
diff changeset
1347 session->sync = sync;
f940e48b4caf Handle new accounts with no buddies better - finish login when the first
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17317
diff changeset
1348 cmdproc->cbs_table = sync->cbs_table;
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
1349 }
20569
66628c75dada Make block/unblock work right, as well as being add by a buddy. Finally fixes #723
Carlos Silva <typ0@pidgin.im>
parents: 20567
diff changeset
1350 #endif
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
1351
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1352 /**************************************************************************
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1353 * Misc commands
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1354 **************************************************************************/
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
1355
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1356 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1357 url_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1358 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1359 MsnSession *session;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1360 PurpleAccount *account;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1361 const char *rru;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1362 const char *url;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1363 PurpleCipher *cipher;
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1364 PurpleCipherContext *context;
11183
be87fe695c93 [gaim-migrate @ 13295]
Mark Doliner <markdoliner@pidgin.im>
parents: 11164
diff changeset
1365 guchar digest[16];
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1366 FILE *fd;
11164
4396374c0cd9 [gaim-migrate @ 13265]
Mark Doliner <markdoliner@pidgin.im>
parents: 10833
diff changeset
1367 char *buf;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1368 char buf2[3];
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1369 char sendbuf[64];
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1370 int i;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1371
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1372 session = cmdproc->session;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1373 account = session->account;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1374
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1375 rru = cmd->params[1];
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1376 url = cmd->params[2];
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1377
11164
4396374c0cd9 [gaim-migrate @ 13265]
Mark Doliner <markdoliner@pidgin.im>
parents: 10833
diff changeset
1378 buf = g_strdup_printf("%s%lu%s",
16895
a96d288e5575 This should fix #569. I'm waiting for a debug log to see exactly what is up.
Daniel Atallah <datallah@pidgin.im>
parents: 16124
diff changeset
1379 session->passport_info.mspauth ? session->passport_info.mspauth : "BOGUS",
5566
7ebd31a6f5da [gaim-migrate @ 5968]
Christian Hammond <chipx86@chipx86.com>
parents: 5564
diff changeset
1380 time(NULL) - session->passport_info.sl,
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1381 purple_connection_get_password(account->gc));
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1382
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1383 cipher = purple_ciphers_find_cipher("md5");
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1384 context = purple_cipher_context_new(cipher, NULL);
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents: 10647
diff changeset
1385
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1386 purple_cipher_context_append(context, (const guchar *)buf, strlen(buf));
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1387 purple_cipher_context_digest(context, sizeof(digest), digest, NULL);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1388 purple_cipher_context_destroy(context);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1389
11164
4396374c0cd9 [gaim-migrate @ 13265]
Mark Doliner <markdoliner@pidgin.im>
parents: 10833
diff changeset
1390 g_free(buf);
4396374c0cd9 [gaim-migrate @ 13265]
Mark Doliner <markdoliner@pidgin.im>
parents: 10833
diff changeset
1391
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1392 memset(sendbuf, 0, sizeof(sendbuf));
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1393
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1394 for (i = 0; i < 16; i++)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1395 {
10684
0325b164a7eb [gaim-migrate @ 12231]
Luke Schierer <lschiere@pidgin.im>
parents: 10647
diff changeset
1396 g_snprintf(buf2, sizeof(buf2), "%02x", digest[i]);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1397 strcat(sendbuf, buf2);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1398 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1399
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1400 if (session->passport_info.file != NULL)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1401 {
10589
4e10236e06d4 [gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents: 10568
diff changeset
1402 g_unlink(session->passport_info.file);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1403 g_free(session->passport_info.file);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1404 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1405
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1406 if ((fd = purple_mkstemp(&session->passport_info.file, FALSE)) == NULL)
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1407 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1408 purple_debug_error("msn",
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10310
diff changeset
1409 "Error opening temp passport file: %s\n",
21389
e1dd8142bb87 replace most calls to strerror with calls to g_strerror. strerror will return
Nathan Walp <nwalp@pidgin.im>
parents: 21367
diff changeset
1410 g_strerror(errno));
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1411 }
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1412 else
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1413 {
17317
66ae9407d10b Only write out the HTML comment on win32, to avoid the risk of confusing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17251
diff changeset
1414 #ifdef _WIN32
66ae9407d10b Only write out the HTML comment on win32, to avoid the risk of confusing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17251
diff changeset
1415 fputs("<!-- saved from url=(0013)about:internet -->\n", fd);
66ae9407d10b Only write out the HTML comment on win32, to avoid the risk of confusing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17251
diff changeset
1416 #endif
66ae9407d10b Only write out the HTML comment on win32, to avoid the risk of confusing
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17251
diff changeset
1417 fputs("<html>\n"
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1418 "<head>\n"
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1419 "<noscript>\n"
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1420 "<meta http-equiv=\"Refresh\" content=\"0; "
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1421 "url=http://www.hotmail.com\">\n"
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1422 "</noscript>\n"
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1423 "</head>\n\n",
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1424 fd);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1425
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1426 fprintf(fd, "<body onload=\"document.pform.submit(); \">\n");
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1427 fprintf(fd, "<form name=\"pform\" action=\"%s\" method=\"POST\">\n\n",
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1428 url);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1429 fprintf(fd, "<input type=\"hidden\" name=\"mode\" value=\"ttl\">\n");
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1430 fprintf(fd, "<input type=\"hidden\" name=\"login\" value=\"%s\">\n",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1431 purple_account_get_username(account));
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1432 fprintf(fd, "<input type=\"hidden\" name=\"username\" value=\"%s\">\n",
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1433 purple_account_get_username(account));
14664
141176a25354 [gaim-migrate @ 17329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14556
diff changeset
1434 if (session->passport_info.sid != NULL)
141176a25354 [gaim-migrate @ 17329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14556
diff changeset
1435 fprintf(fd, "<input type=\"hidden\" name=\"sid\" value=\"%s\">\n",
141176a25354 [gaim-migrate @ 17329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14556
diff changeset
1436 session->passport_info.sid);
141176a25354 [gaim-migrate @ 17329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14556
diff changeset
1437 if (session->passport_info.kv != NULL)
141176a25354 [gaim-migrate @ 17329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14556
diff changeset
1438 fprintf(fd, "<input type=\"hidden\" name=\"kv\" value=\"%s\">\n",
141176a25354 [gaim-migrate @ 17329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14556
diff changeset
1439 session->passport_info.kv);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1440 fprintf(fd, "<input type=\"hidden\" name=\"id\" value=\"2\">\n");
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1441 fprintf(fd, "<input type=\"hidden\" name=\"sl\" value=\"%ld\">\n",
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1442 time(NULL) - session->passport_info.sl);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1443 fprintf(fd, "<input type=\"hidden\" name=\"rru\" value=\"%s\">\n",
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1444 rru);
14664
141176a25354 [gaim-migrate @ 17329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14556
diff changeset
1445 if (session->passport_info.mspauth != NULL)
141176a25354 [gaim-migrate @ 17329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14556
diff changeset
1446 fprintf(fd, "<input type=\"hidden\" name=\"auth\" value=\"%s\">\n",
141176a25354 [gaim-migrate @ 17329]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 14556
diff changeset
1447 session->passport_info.mspauth);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1448 fprintf(fd, "<input type=\"hidden\" name=\"creds\" value=\"%s\">\n",
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1449 sendbuf); /* TODO Digest me (huh? -- ChipX86) */
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1450 fprintf(fd, "<input type=\"hidden\" name=\"svc\" value=\"mail\">\n");
7699
96e79b175395 [gaim-migrate @ 8344]
Bill Crawford
parents: 7590
diff changeset
1451 fprintf(fd, "<input type=\"hidden\" name=\"js\" value=\"yes\">\n");
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1452 fprintf(fd, "</form></body>\n");
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1453 fprintf(fd, "</html>\n");
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1454
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1455 if (fclose(fd))
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1456 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1457 purple_debug_error("msn",
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1458 "Error closing temp passport file: %s\n",
21389
e1dd8142bb87 replace most calls to strerror with calls to g_strerror. strerror will return
Nathan Walp <nwalp@pidgin.im>
parents: 21367
diff changeset
1459 g_strerror(errno));
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1460
10589
4e10236e06d4 [gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents: 10568
diff changeset
1461 g_unlink(session->passport_info.file);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1462 g_free(session->passport_info.file);
10240
09342bc554d9 [gaim-migrate @ 11377]
Herman Bloggs <herman@bluedigits.com>
parents: 10225
diff changeset
1463 session->passport_info.file = NULL;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1464 }
10647
e9ad21c11fcc [gaim-migrate @ 12163]
Daniel Atallah <datallah@pidgin.im>
parents: 10629
diff changeset
1465 #ifdef _WIN32
10629
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1466 else
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1467 {
10647
e9ad21c11fcc [gaim-migrate @ 12163]
Daniel Atallah <datallah@pidgin.im>
parents: 10629
diff changeset
1468 /*
10629
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1469 * Renaming file with .html extension, so that the
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1470 * win32 open_url will work.
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1471 */
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1472 char *tmp;
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1473
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1474 if ((tmp =
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1475 g_strdup_printf("%s.html",
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1476 session->passport_info.file)) != NULL)
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1477 {
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1478 if (g_rename(session->passport_info.file,
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1479 tmp) == 0)
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1480 {
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1481 g_free(session->passport_info.file);
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1482 session->passport_info.file = tmp;
10647
e9ad21c11fcc [gaim-migrate @ 12163]
Daniel Atallah <datallah@pidgin.im>
parents: 10629
diff changeset
1483 }
10629
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1484 else
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1485 g_free(tmp);
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1486 }
f79103694c1a [gaim-migrate @ 12106]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
1487 }
10647
e9ad21c11fcc [gaim-migrate @ 12163]
Daniel Atallah <datallah@pidgin.im>
parents: 10629
diff changeset
1488 #endif
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1489 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1490 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1491 /**************************************************************************
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1492 * Switchboards
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1493 **************************************************************************/
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
1494
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1495 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1496 rng_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1497 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1498 MsnSession *session;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1499 MsnSwitchBoard *swboard;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1500 const char *session_id;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1501 char *host;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1502 int port;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1503
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1504 session = cmdproc->session;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1505 session_id = cmd->params[0];
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1506
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1507 msn_parse_socket(cmd->params[1], &host, &port);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1508
7288
486e8b44a14b [gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents: 7274
diff changeset
1509 if (session->http_method)
486e8b44a14b [gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents: 7274
diff changeset
1510 port = 80;
486e8b44a14b [gaim-migrate @ 7869]
Christian Hammond <chipx86@chipx86.com>
parents: 7274
diff changeset
1511
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1512 swboard = msn_switchboard_new(session);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1513
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1514 msn_switchboard_set_invited(swboard, TRUE);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1515 msn_switchboard_set_session_id(swboard, cmd->params[0]);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1516 msn_switchboard_set_auth_key(swboard, cmd->params[3]);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1517 swboard->im_user = g_strdup(cmd->params[4]);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1518 /* msn_switchboard_add_user(swboard, cmd->params[4]); */
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1519
10568
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
1520 if (!msn_switchboard_connect(swboard, host, port))
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
1521 msn_switchboard_destroy(swboard);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1522
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1523 g_free(host);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1524 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1525
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1526 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1527 xfr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1528 {
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1529 char *host;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1530 int port;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1531
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1532 if (strcmp(cmd->params[1], "SB") && strcmp(cmd->params[1], "NS"))
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1533 {
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
1534 /* Maybe we can have a generic bad command error. */
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1535 purple_debug_error("msn", "Bad XFR command (%s)\n", cmd->params[1]);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1536 return;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1537 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1538
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1539 msn_parse_socket(cmd->params[2], &host, &port);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1540
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1541 if (!strcmp(cmd->params[1], "SB"))
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1542 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1543 purple_debug_error("msn", "This shouldn't be handled here.\n");
5385
12f55f3be43e [gaim-migrate @ 5761]
Christian Hammond <chipx86@chipx86.com>
parents: 5375
diff changeset
1544 }
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1545 else if (!strcmp(cmd->params[1], "NS"))
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1546 {
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1547 MsnSession *session;
8646
74d0e7406e3b [gaim-migrate @ 9398]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8614
diff changeset
1548
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1549 session = cmdproc->session;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1550
10519
80801a34a246 [gaim-migrate @ 11833]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10514
diff changeset
1551 msn_session_set_login_step(session, MSN_LOGIN_STEP_TRANSFER);
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
1552
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1553 msn_notification_connect(session->notification, host, port);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1554 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1555
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1556 g_free(host);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1557 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1558
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1559 static void
13867
98600e8943dd [gaim-migrate @ 16721]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
1560 gcf_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
98600e8943dd [gaim-migrate @ 16721]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
1561 size_t len)
98600e8943dd [gaim-migrate @ 16721]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
1562 {
20547
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1563 xmlnode * root;
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1564 gchar * buf;
21905
eada358581eb gets rid of one valgrind warning
Ka-Hing Cheung <khc@pidgin.im>
parents: 21886
diff changeset
1565 int xmllen;
20547
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1566
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1567 g_return_if_fail(cmd->payload != NULL);
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1568
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1569 if ( (root = xmlnode_from_str(cmd->payload, cmd->payload_len)) == NULL)
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1570 {
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1571 purple_debug_error("MSN","Unable to parse GCF payload into a XML tree");
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1572 return;
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1573 }
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1574
21905
eada358581eb gets rid of one valgrind warning
Ka-Hing Cheung <khc@pidgin.im>
parents: 21886
diff changeset
1575 buf = xmlnode_to_formatted_str(root, &xmllen);
20547
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1576
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1577 /* get the payload content */
21905
eada358581eb gets rid of one valgrind warning
Ka-Hing Cheung <khc@pidgin.im>
parents: 21886
diff changeset
1578 purple_debug_info("MSNP14","GCF command payload:\n%.*s\n", xmllen, buf);
20547
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1579
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1580 g_free(buf);
35cff3479def Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20546
diff changeset
1581 xmlnode_free(root);
13867
98600e8943dd [gaim-migrate @ 16721]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
1582 }
98600e8943dd [gaim-migrate @ 16721]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
1583
98600e8943dd [gaim-migrate @ 16721]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
1584 static void
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1585 gcf_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1586 {
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
1587 purple_debug_info("MSNP14","Processing GCF command\n");
13867
98600e8943dd [gaim-migrate @ 16721]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
1588 cmdproc->last_cmd->payload_cb = gcf_cmd_post;
98600e8943dd [gaim-migrate @ 16721]
Ma Yuan <mayuan2006@gmail.com>
parents: 13866
diff changeset
1589 return;
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1590 }
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1591
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1592 static void
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1593 sbs_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1594 {
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
1595 purple_debug_info("MSNP14","Processing SBS... \n");
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1596 if(cmd->payload_len == 0){
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1597 return;
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1598 }
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1599 /*get the payload content*/
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1600 }
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
1601
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1602 /*
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1603 * Get the UBX's PSM info
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1604 * Post it to the User status
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1605 * Thanks for Chris <ukdrizzle@yahoo.co.uk>'s code
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1606 */
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1607 static void
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1608 ubx_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1609 size_t len)
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1610 {
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1611 MsnSession *session;
20478
46933dc62880 propagate from branch 'im.pidgin.pidgin' (head 88b7040408c88e4516c008f4eac579f98ef53e85)
Richard Laager <rlaager@pidgin.im>
parents: 20476 16124
diff changeset
1612 PurpleAccount *account;
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1613 MsnUser *user;
20474
b0ef257ef8d4 The second msn.tgz from SF Patch #1621854 from Ka-Hing Cheung.
Ka-Hing Cheung <khc@pidgin.im>
parents: 20472
diff changeset
1614 const char *passport;
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1615 char *psm_str, *str;
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1616 CurrentMedia media = {NULL, NULL, NULL};
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1617
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1618 session = cmdproc->session;
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1619 account = session->account;
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1620
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1621 passport = cmd->params[0];
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1622 user = msn_userlist_find_user(session->userlist, passport);
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1623
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1624 psm_str = msn_get_psm(cmd->payload,len);
21193
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1625 msn_user_set_statusline(user, psm_str);
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1626 g_free(psm_str);
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1627
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1628 str = msn_get_currentmedia(cmd->payload, len);
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1629 if (msn_parse_currentmedia(str, &media))
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1630 msn_user_set_currentmedia(user, &media);
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1631 else
e918a1846d03 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20597
diff changeset
1632 msn_user_set_currentmedia(user, NULL);
20578
82571739414b Fix some memory leaks. Free xmlnodes properly using xmlnode_free instead of
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20577
diff changeset
1633 g_free(str);
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 16124
diff changeset
1634
13888
bda6f562e1e6 [gaim-migrate @ 17003]
Ma Yuan <mayuan2006@gmail.com>
parents: 13887
diff changeset
1635 msn_user_update(user);
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1636 }
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1637
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1638 static void
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1639 ubx_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1640 {
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
1641 purple_debug_misc("MSNP14","UBX received.\n");
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1642 if(cmd->payload_len == 0){
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1643 return;
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1644 }
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
1645 cmdproc->last_cmd->payload_cb = ubx_cmd_post;
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1646 }
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1647
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1648 static void
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1649 uux_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1650 {
20550
af5abde0d99f Misc cleanups, better error handling, and print the Address Book received from the server in a human readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20549
diff changeset
1651 purple_debug_misc("MSNP14","UUX received.\n");
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1652 }
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
1653
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1654 /**************************************************************************
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1655 * Message Types
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1656 **************************************************************************/
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10463
diff changeset
1657
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1658 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1659 profile_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1660 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1661 MsnSession *session;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1662 const char *value;
13910
fb8f57c2b934 [gaim-migrate @ 17481]
Ma Yuan <mayuan2006@gmail.com>
parents: 13902
diff changeset
1663 const char *clLastChange;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1664
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1665 session = cmdproc->session;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1666
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1667 if (strcmp(msg->remote_user, "Hotmail"))
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1668 /* This isn't an official message. */
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1669 return;
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1670
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1671 if ((value = msn_message_get_attr(msg, "kv")) != NULL)
10284
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10275
diff changeset
1672 {
16896
cadacef82ac3 Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <datallah@pidgin.im>
parents: 16895
diff changeset
1673 g_free(session->passport_info.kv);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1674 session->passport_info.kv = g_strdup(value);
10284
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10275
diff changeset
1675 }
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1676
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1677 if ((value = msn_message_get_attr(msg, "sid")) != NULL)
10284
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10275
diff changeset
1678 {
16896
cadacef82ac3 Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <datallah@pidgin.im>
parents: 16895
diff changeset
1679 g_free(session->passport_info.sid);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1680 session->passport_info.sid = g_strdup(value);
10284
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10275
diff changeset
1681 }
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1682
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1683 if ((value = msn_message_get_attr(msg, "MSPAuth")) != NULL)
10284
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10275
diff changeset
1684 {
16896
cadacef82ac3 Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <datallah@pidgin.im>
parents: 16895
diff changeset
1685 g_free(session->passport_info.mspauth);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1686 session->passport_info.mspauth = g_strdup(value);
10284
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10275
diff changeset
1687 }
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1688
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
1689 if ((value = msn_message_get_attr(msg, "ClientIP")) != NULL)
10284
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10275
diff changeset
1690 {
16896
cadacef82ac3 Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <datallah@pidgin.im>
parents: 16895
diff changeset
1691 g_free(session->passport_info.client_ip);
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
1692 session->passport_info.client_ip = g_strdup(value);
10284
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10275
diff changeset
1693 }
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
1694
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
1695 if ((value = msn_message_get_attr(msg, "ClientPort")) != NULL)
20482
a706f6c3c75c merge of '92409c474659cace8004653f67cb9eba62ef7f93'
Richard Laager <rlaager@pidgin.im>
parents: 16183 20481
diff changeset
1696 {
6701
7e2db9273748 [gaim-migrate @ 7227]
Christian Hammond <chipx86@chipx86.com>
parents: 6695
diff changeset
1697 session->passport_info.client_port = ntohs(atoi(value));
16183
92409c474659 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@pidgin.im>
parents: 16124
diff changeset
1698 }
10275
186d84a66cc3 [gaim-migrate @ 11428]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10269
diff changeset
1699
186d84a66cc3 [gaim-migrate @ 11428]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10269
diff changeset
1700 if ((value = msn_message_get_attr(msg, "LoginTime")) != NULL)
186d84a66cc3 [gaim-migrate @ 11428]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10269
diff changeset
1701 session->passport_info.sl = atol(value);
13854
ab947cf0c2bb [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents: 13853
diff changeset
1702
ab947cf0c2bb [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents: 13853
diff changeset
1703 /*starting retrieve the contact list*/
20523
b627a3a41970 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20522
diff changeset
1704 clLastChange = purple_account_get_string(session->account, "CLLastChange", NULL);
13854
ab947cf0c2bb [gaim-migrate @ 16473]
Ma Yuan <mayuan2006@gmail.com>
parents: 13853
diff changeset
1705 session->contact = msn_contact_new(session);
20523
b627a3a41970 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20522
diff changeset
1706 #ifdef MSN_PARTIAL_LISTS
b627a3a41970 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20522
diff changeset
1707 /* msn_userlist_load defeats all attempts at trying to detect blist sync issues */
b627a3a41970 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20522
diff changeset
1708 msn_userlist_load(session);
20567
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
1709 msn_get_contact_list(session->contact, MSN_PS_INITIAL, clLastChange);
20523
b627a3a41970 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20522
diff changeset
1710 #else
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1711 /* always get the full list? */
20567
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
1712 msn_get_contact_list(session->contact, MSN_PS_INITIAL, NULL);
20523
b627a3a41970 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20522
diff changeset
1713 #endif
b627a3a41970 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20522
diff changeset
1714 #if 0
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1715 msn_contact_connect(session->contact);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1716 #endif
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1717 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1718
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1719 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1720 initial_email_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1721 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1722 MsnSession *session;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1723 PurpleConnection *gc;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1724 GHashTable *table;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1725 const char *unread;
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1726
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1727 session = cmdproc->session;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1728 gc = session->account->gc;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1729
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1730 if (strcmp(msg->remote_user, "Hotmail"))
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1731 /* This isn't an official message. */
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1732 return;
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1733
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1734 if (session->passport_info.file == NULL)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1735 {
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1736 MsnTransaction *trans;
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10203
diff changeset
1737 trans = msn_transaction_new(cmdproc, "URL", "%s", "INBOX");
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1738 msn_transaction_queue_cmd(trans, msg->cmd);
5506
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5498
diff changeset
1739
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1740 msn_cmdproc_send_trans(cmdproc, trans);
5506
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5498
diff changeset
1741
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1742 return;
5358
efa9128e93fe [gaim-migrate @ 5734]
Christian Hammond <chipx86@chipx86.com>
parents: 5353
diff changeset
1743 }
efa9128e93fe [gaim-migrate @ 5734]
Christian Hammond <chipx86@chipx86.com>
parents: 5353
diff changeset
1744
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1745 if (!purple_account_get_check_mail(session->account))
11321
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11183
diff changeset
1746 return;
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11183
diff changeset
1747
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1748 table = msn_message_get_hashtable_from_body(msg);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1749
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1750 unread = g_hash_table_lookup(table, "Inbox-Unread");
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1751
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1752 if (unread != NULL)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1753 {
7190
53b81e545762 [gaim-migrate @ 7759]
Christian Hammond <chipx86@chipx86.com>
parents: 7188
diff changeset
1754 int count = atoi(unread);
53b81e545762 [gaim-migrate @ 7759]
Christian Hammond <chipx86@chipx86.com>
parents: 7188
diff changeset
1755
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1756 if (count > 0)
7190
53b81e545762 [gaim-migrate @ 7759]
Christian Hammond <chipx86@chipx86.com>
parents: 7188
diff changeset
1757 {
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1758 const char *passport;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1759 const char *url;
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1760
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1761 passport = msn_user_get_passport(session->user);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1762 url = session->passport_info.file;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1763
21886
be9880b42bd2 Don't show a 'you ain't got no new mail' notification.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21720
diff changeset
1764 purple_notify_emails(gc, count, FALSE, NULL, NULL,
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1765 &passport, &url, NULL, NULL);
7190
53b81e545762 [gaim-migrate @ 7759]
Christian Hammond <chipx86@chipx86.com>
parents: 7188
diff changeset
1766 }
5520
d49ba63410e3 [gaim-migrate @ 5920]
Christian Hammond <chipx86@chipx86.com>
parents: 5518
diff changeset
1767 }
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1768
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1769 g_hash_table_destroy(table);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1770 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1771
13861
dc0021ad2b73 [gaim-migrate @ 16653]
Ma Yuan <mayuan2006@gmail.com>
parents: 13859
diff changeset
1772 /*offline Message notification process*/
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1773 static void
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
1774 initial_mdata_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
1775 {
13858
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1776 MsnSession *session;
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1777 PurpleConnection *gc;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1778 GHashTable *table;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1779 const char *mdata, *unread;
13858
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1780
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1781 session = cmdproc->session;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1782 gc = session->account->gc;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1783
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1784 if (strcmp(msg->remote_user, "Hotmail"))
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1785 /* This isn't an official message. */
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1786 return;
13864
97babffb505d [gaim-migrate @ 16684]
Ma Yuan <mayuan2006@gmail.com>
parents: 13861
diff changeset
1787
13858
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1788 /*new a oim session*/
21361
f890366c8ec6 oim migrated to new soap code, quadruply duplicated message!
Ka-Hing Cheung <khc@pidgin.im>
parents: 20597
diff changeset
1789 // session->oim = msn_oim_new(session);
13859
c3536c40d533 [gaim-migrate @ 16601]
Ma Yuan <mayuan2006@gmail.com>
parents: 13858
diff changeset
1790 // msn_oim_connect(session->oim);
13858
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1791
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1792 table = msn_message_get_hashtable_from_body(msg);
13858
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1793
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1794 mdata = g_hash_table_lookup(table, "Mail-Data");
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1795
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1796 if (mdata != NULL)
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1797 msn_parse_oim_msg(session->oim, mdata);
13858
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1798
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1799 if (g_hash_table_lookup(table, "Inbox-URL") == NULL)
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1800 {
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1801 g_hash_table_destroy(table);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1802 return;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1803 }
13858
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1804
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1805 if (session->passport_info.file == NULL)
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1806 {
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1807 MsnTransaction *trans;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1808 trans = msn_transaction_new(cmdproc, "URL", "%s", "INBOX");
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1809 msn_transaction_queue_cmd(trans, msg->cmd);
13858
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1810
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1811 msn_cmdproc_send_trans(cmdproc, trans);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1812
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1813 g_hash_table_destroy(table);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1814 return;
13858
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1815 }
fe1fbb9cc42b [gaim-migrate @ 16600]
Ma Yuan <mayuan2006@gmail.com>
parents: 13857
diff changeset
1816
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1817 if (!purple_account_get_check_mail(session->account))
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1818 {
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1819 g_hash_table_destroy(table);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1820 return;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1821 }
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1822
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1823 unread = g_hash_table_lookup(table, "Inbox-Unread");
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1824
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1825 if (unread != NULL)
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1826 {
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1827 int count = atoi(unread);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1828
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1829 if (count > 0)
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1830 {
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1831 const char *passport;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1832 const char *url;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1833
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1834 passport = msn_user_get_passport(session->user);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1835 url = session->passport_info.file;
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1836
21886
be9880b42bd2 Don't show a 'you ain't got no new mail' notification.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 21720
diff changeset
1837 purple_notify_emails(gc, count, FALSE, NULL, NULL,
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1838 &passport, &url, NULL, NULL);
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1839 }
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1840 }
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1841
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
1842 g_hash_table_destroy(table);
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
1843 }
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
1844
13892
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
1845 /*offline Message Notification*/
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
1846 static void
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
1847 delete_oim_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
1848 {
20571
712babe35f35 Some more cleanups
Carlos Silva <typ0@pidgin.im>
parents: 20569
diff changeset
1849 purple_debug_misc("MSN Notification","Delete OIM message.\n");
13892
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
1850 }
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
1851
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1852 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1853 email_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1854 {
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1855 MsnSession *session;
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1856 PurpleConnection *gc;
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1857 GHashTable *table;
8657
82ce13f78d31 [gaim-migrate @ 9409]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8652
diff changeset
1858 char *from, *subject, *tmp;
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1859
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1860 session = cmdproc->session;
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1861 gc = session->account->gc;
8657
82ce13f78d31 [gaim-migrate @ 9409]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8652
diff changeset
1862
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1863 if (strcmp(msg->remote_user, "Hotmail"))
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1864 /* This isn't an official message. */
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1865 return;
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1866
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1867 if (session->passport_info.file == NULL)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1868 {
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1869 MsnTransaction *trans;
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10203
diff changeset
1870 trans = msn_transaction_new(cmdproc, "URL", "%s", "INBOX");
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1871 msn_transaction_queue_cmd(trans, msg->cmd);
5506
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5498
diff changeset
1872
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1873 msn_cmdproc_send_trans(cmdproc, trans);
5506
b53a1acacefe [gaim-migrate @ 5905]
Christian Hammond <chipx86@chipx86.com>
parents: 5498
diff changeset
1874
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1875 return;
5358
efa9128e93fe [gaim-migrate @ 5734]
Christian Hammond <chipx86@chipx86.com>
parents: 5353
diff changeset
1876 }
efa9128e93fe [gaim-migrate @ 5734]
Christian Hammond <chipx86@chipx86.com>
parents: 5353
diff changeset
1877
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1878 if (!purple_account_get_check_mail(session->account))
11321
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11183
diff changeset
1879 return;
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11183
diff changeset
1880
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1881 table = msn_message_get_hashtable_from_body(msg);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1882
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1883 from = subject = NULL;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1884
8657
82ce13f78d31 [gaim-migrate @ 9409]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8652
diff changeset
1885 tmp = g_hash_table_lookup(table, "From");
82ce13f78d31 [gaim-migrate @ 9409]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8652
diff changeset
1886 if (tmp != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1887 from = purple_mime_decode_field(tmp);
8657
82ce13f78d31 [gaim-migrate @ 9409]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8652
diff changeset
1888
82ce13f78d31 [gaim-migrate @ 9409]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8652
diff changeset
1889 tmp = g_hash_table_lookup(table, "Subject");
82ce13f78d31 [gaim-migrate @ 9409]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8652
diff changeset
1890 if (tmp != NULL)
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1891 subject = purple_mime_decode_field(tmp);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1892
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1893 purple_notify_email(gc,
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1894 (subject != NULL ? subject : ""),
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1895 (from != NULL ? from : ""),
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1896 msn_user_get_passport(session->user),
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1897 session->passport_info.file, NULL, NULL);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1898
16896
cadacef82ac3 Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <datallah@pidgin.im>
parents: 16895
diff changeset
1899 g_free(from);
cadacef82ac3 Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <datallah@pidgin.im>
parents: 16895
diff changeset
1900 g_free(subject);
7817
2155f763ab5d [gaim-migrate @ 8464]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 7699
diff changeset
1901
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1902 g_hash_table_destroy(table);
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1903 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1904
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1905 static void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1906 system_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1907 {
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1908 GHashTable *table;
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1909 const char *type_s;
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1910
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1911 if (strcmp(msg->remote_user, "Hotmail"))
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1912 /* This isn't an official message. */
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1913 return;
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1914
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1915 table = msn_message_get_hashtable_from_body(msg);
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1916
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1917 if ((type_s = g_hash_table_lookup(table, "Type")) != NULL)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1918 {
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1919 int type = atoi(type_s);
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1920 char buf[MSN_BUF_LEN];
6308
12d48b4e80db [gaim-migrate @ 6807]
Mark Doliner <markdoliner@pidgin.im>
parents: 5963
diff changeset
1921 int minutes;
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1922
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1923 switch (type)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
1924 {
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1925 case 1:
6308
12d48b4e80db [gaim-migrate @ 6807]
Mark Doliner <markdoliner@pidgin.im>
parents: 5963
diff changeset
1926 minutes = atoi(g_hash_table_lookup(table, "Arg1"));
16124
8e5e3e9ada60 Hopefully prevent libpurple causing problems for 3rd party UIs if they also
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
1927 g_snprintf(buf, sizeof(buf), dngettext(PACKAGE,
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1928 "The MSN server will shut down for maintenance "
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1929 "in %d minute. You will automatically be "
10816
ba2657f4c157 [gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents: 10812
diff changeset
1930 "signed out at that time. Please finish any "
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1931 "conversations in progress.\n\nAfter the "
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1932 "maintenance has been completed, you will be "
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1933 "able to successfully sign in.",
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1934 "The MSN server will shut down for maintenance "
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1935 "in %d minutes. You will automatically be "
10816
ba2657f4c157 [gaim-migrate @ 12471]
Luke Schierer <lschiere@pidgin.im>
parents: 10812
diff changeset
1936 "signed out at that time. Please finish any "
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1937 "conversations in progress.\n\nAfter the "
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1938 "maintenance has been completed, you will be "
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1939 "able to successfully sign in.", minutes),
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
1940 minutes);
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1941 default:
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1942 break;
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1943 }
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1944
5436
a0e0bacaa196 [gaim-migrate @ 5818]
Christian Hammond <chipx86@chipx86.com>
parents: 5406
diff changeset
1945 if (*buf != '\0')
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
1946 purple_notify_info(cmdproc->session->account->gc, NULL, buf, NULL);
5333
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1947 }
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1948
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1949 g_hash_table_destroy(table);
e1ae88905e28 [gaim-migrate @ 5708]
Christian Hammond <chipx86@chipx86.com>
parents: 5327
diff changeset
1950 }
5793
28d84d5e5663 [gaim-migrate @ 6218]
Christian Hammond <chipx86@chipx86.com>
parents: 5768
diff changeset
1951
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1952 void
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1953 msn_notification_add_buddy_to_list(MsnNotification *notification, MsnListId list_id,
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1954 const char *who)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1955 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1956 MsnCmdProc *cmdproc;
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1957 MsnListOp list_op = 1 << list_id;
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1958 xmlnode *adl_node;
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1959 char *payload;
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1960 int payload_len;
20571
712babe35f35 Some more cleanups
Carlos Silva <typ0@pidgin.im>
parents: 20569
diff changeset
1961
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1962 cmdproc = notification->servconn->cmdproc;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1963
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1964 adl_node = xmlnode_new("ml");
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1965 adl_node->child = NULL;
9194
1ff43e1a77e5 [gaim-migrate @ 9989]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
1966
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1967 msn_add_contact_xml(notification->session, adl_node, who, list_op,
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1968 MSN_USER_TYPE_PASSPORT);
9194
1ff43e1a77e5 [gaim-migrate @ 9989]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
1969
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1970 payload = xmlnode_to_str(adl_node,&payload_len);
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1971 xmlnode_free(adl_node);
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1972
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1973 msn_notification_post_adl(notification->servconn->cmdproc,
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1974 payload,payload_len);
20582
edd27909081a Make the buddylist sync issue a little less worse.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20578
diff changeset
1975 g_free(payload);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1976 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1977
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1978 void
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1979 msn_notification_rem_buddy_from_list(MsnNotification *notification, MsnListId list_id,
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1980 const char *who)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1981 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1982 MsnCmdProc *cmdproc;
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1983 MsnTransaction *trans;
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1984 MsnListOp list_op = 1 << list_id;
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1985 xmlnode *rml_node;
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1986 char *payload;
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1987 int payload_len;
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1988
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1989 cmdproc = notification->servconn->cmdproc;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
1990
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1991 rml_node = xmlnode_new("ml");
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1992 rml_node->child = NULL;
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1993
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1994 msn_add_contact_xml(notification->session, rml_node, who, list_op, MSN_USER_TYPE_PASSPORT);
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1995
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1996 payload = xmlnode_to_str(rml_node, &payload_len);
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1997 xmlnode_free(rml_node);
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
1998
20564
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
1999 purple_debug_info("MSN Notification","Send RML with payload:\n%s\n", payload);
35675dd4a44d Make buddy and group management actually work, add some SOAP templates, redesign some parts of code and separate some bigger functions into its smaller tasks which are completely unrelated to each other
Carlos Silva <typ0@pidgin.im>
parents: 20560
diff changeset
2000 trans = msn_transaction_new(cmdproc, "RML","%d", strlen(payload));
13866
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
2001 msn_transaction_set_payload(trans, payload, strlen(payload));
b6a2c8d390ef [gaim-migrate @ 16716]
Ma Yuan <mayuan2006@gmail.com>
parents: 13865
diff changeset
2002 msn_cmdproc_send_trans(cmdproc, trans);
20582
edd27909081a Make the buddylist sync issue a little less worse.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 20578
diff changeset
2003 g_free(payload);
5309
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2004 }
3178acad1449 [gaim-migrate @ 5681]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2005
10463
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
2006 /**************************************************************************
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
2007 * Init
f2f97738b401 [gaim-migrate @ 11737]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10452
diff changeset
2008 **************************************************************************/
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2009 void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2010 msn_notification_init(void)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2011 {
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
2012 /* TODO: check prp, blp */
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
2013
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2014 cbs_table = msn_table_new();
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2015
10310
9f797642432a [gaim-migrate @ 11504]
Mark Doliner <markdoliner@pidgin.im>
parents: 10296
diff changeset
2016 /* Synchronous */
11992
906176cc9b22 [gaim-migrate @ 14285]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11862
diff changeset
2017 msn_table_add_cmd(cbs_table, "CHG", "CHG", NULL);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2018 msn_table_add_cmd(cbs_table, "CHG", "ILN", iln_cmd);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
2019 msn_table_add_cmd(cbs_table, "ADL", "ILN", iln_cmd);
20567
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
2020 // msn_table_add_cmd(cbs_table, "REM", "REM", rem_cmd); /* Removed as of MSNP13 */
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2021 msn_table_add_cmd(cbs_table, "USR", "USR", usr_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2022 msn_table_add_cmd(cbs_table, "USR", "XFR", xfr_cmd);
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
2023 msn_table_add_cmd(cbs_table, "USR", "GCF", gcf_cmd);
20567
2417aff6ff3b Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20564
diff changeset
2024 // msn_table_add_cmd(cbs_table, "SYN", "SYN", syn_cmd); /* Removed as of MSNP13 */
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2025 msn_table_add_cmd(cbs_table, "CVR", "CVR", cvr_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2026 msn_table_add_cmd(cbs_table, "VER", "VER", ver_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2027 msn_table_add_cmd(cbs_table, "REA", "REA", rea_cmd);
10833
62d8c516b51b [gaim-migrate @ 12503]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10816
diff changeset
2028 msn_table_add_cmd(cbs_table, "PRP", "PRP", prp_cmd);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
2029 msn_table_add_cmd(cbs_table, "BLP", "BLP", blp_cmd);
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
2030 // msn_table_add_cmd(cbs_table, "BLP", "BLP", NULL);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2031 msn_table_add_cmd(cbs_table, "REG", "REG", reg_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2032 msn_table_add_cmd(cbs_table, "ADG", "ADG", adg_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2033 msn_table_add_cmd(cbs_table, "RMG", "RMG", rmg_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2034 msn_table_add_cmd(cbs_table, "XFR", "XFR", xfr_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2035
10310
9f797642432a [gaim-migrate @ 11504]
Mark Doliner <markdoliner@pidgin.im>
parents: 10296
diff changeset
2036 /* Asynchronous */
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2037 msn_table_add_cmd(cbs_table, NULL, "IPG", ipg_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2038 msn_table_add_cmd(cbs_table, NULL, "MSG", msg_cmd);
13870
258d48d6ab52 [gaim-migrate @ 16737]
Ma Yuan <mayuan2006@gmail.com>
parents: 13869
diff changeset
2039 msn_table_add_cmd(cbs_table, NULL, "UBM", ubm_cmd);
13853
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
2040 msn_table_add_cmd(cbs_table, NULL, "GCF", gcf_cmd);
cccd9dd599eb [gaim-migrate @ 16329]
Ma Yuan <mayuan2006@gmail.com>
parents: 13713
diff changeset
2041 msn_table_add_cmd(cbs_table, NULL, "SBS", sbs_cmd);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2042 msn_table_add_cmd(cbs_table, NULL, "NOT", not_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2043
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2044 msn_table_add_cmd(cbs_table, NULL, "CHL", chl_cmd);
13865
ce1c14d05b5f [gaim-migrate @ 16685]
Ma Yuan <mayuan2006@gmail.com>
parents: 13864
diff changeset
2045 msn_table_add_cmd(cbs_table, NULL, "RML", rml_cmd);
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
2046 msn_table_add_cmd(cbs_table, NULL, "ADL", adl_cmd);
13873
3c20f5d70d1d [gaim-migrate @ 16772]
Ma Yuan <mayuan2006@gmail.com>
parents: 13871
diff changeset
2047 msn_table_add_cmd(cbs_table, NULL, "FQY", fqy_cmd);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2048
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2049 msn_table_add_cmd(cbs_table, NULL, "QRY", NULL);
17202
32ab8bec7403 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17178
diff changeset
2050 msn_table_add_cmd(cbs_table, NULL, "QNG", qng_cmd);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2051 msn_table_add_cmd(cbs_table, NULL, "FLN", fln_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2052 msn_table_add_cmd(cbs_table, NULL, "NLN", nln_cmd);
8832
30eacd0f47fd [gaim-migrate @ 9596]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8808
diff changeset
2053 msn_table_add_cmd(cbs_table, NULL, "ILN", iln_cmd);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2054 msn_table_add_cmd(cbs_table, NULL, "OUT", out_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2055 msn_table_add_cmd(cbs_table, NULL, "RNG", rng_cmd);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2056
13856
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
2057 msn_table_add_cmd(cbs_table, NULL, "UBX", ubx_cmd);
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
2058 msn_table_add_cmd(cbs_table, NULL, "UUX", uux_cmd);
a6511183749e [gaim-migrate @ 16546]
Ma Yuan <mayuan2006@gmail.com>
parents: 13855
diff changeset
2059
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2060 msn_table_add_cmd(cbs_table, NULL, "URL", url_cmd);
9194
1ff43e1a77e5 [gaim-migrate @ 9989]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
2061
10043
4d4cc1ee9b69 [gaim-migrate @ 11002]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10010
diff changeset
2062 msn_table_add_cmd(cbs_table, "fallback", "XFR", xfr_cmd);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2063
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2064 msn_table_add_error(cbs_table, "ADD", add_error);
20522
177cad886d4c A bunch of MSNP14 stuff:
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20515
diff changeset
2065 msn_table_add_error(cbs_table, "ADL", adl_error);
10451
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
2066 msn_table_add_error(cbs_table, "REG", reg_error);
2df35a139363 [gaim-migrate @ 11717]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10403
diff changeset
2067 msn_table_add_error(cbs_table, "RMG", rmg_error);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9158
diff changeset
2068 /* msn_table_add_error(cbs_table, "REA", rea_error); */
10568
15f02c0e7fc1 [gaim-migrate @ 11954]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10519
diff changeset
2069 msn_table_add_error(cbs_table, "USR", usr_error);
10403
4647a87ef73b [gaim-migrate @ 11648]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10345
diff changeset
2070
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2071 msn_table_add_msg_type(cbs_table,
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
2072 "text/x-msmsgsprofile",
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
2073 profile_msg);
13861
dc0021ad2b73 [gaim-migrate @ 16653]
Ma Yuan <mayuan2006@gmail.com>
parents: 13859
diff changeset
2074 /*initial OIM notification*/
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2075 msn_table_add_msg_type(cbs_table,
13855
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
2076 "text/x-msmsgsinitialmdatanotification",
24cff9e060d7 [gaim-migrate @ 16507]
Ma Yuan <mayuan2006@gmail.com>
parents: 13854
diff changeset
2077 initial_mdata_msg);
13861
dc0021ad2b73 [gaim-migrate @ 16653]
Ma Yuan <mayuan2006@gmail.com>
parents: 13859
diff changeset
2078 /*OIM notification when user online*/
dc0021ad2b73 [gaim-migrate @ 16653]
Ma Yuan <mayuan2006@gmail.com>
parents: 13859
diff changeset
2079 msn_table_add_msg_type(cbs_table,
dc0021ad2b73 [gaim-migrate @ 16653]
Ma Yuan <mayuan2006@gmail.com>
parents: 13859
diff changeset
2080 "text/x-msmsgsoimnotification",
dc0021ad2b73 [gaim-migrate @ 16653]
Ma Yuan <mayuan2006@gmail.com>
parents: 13859
diff changeset
2081 initial_mdata_msg);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2082 msn_table_add_msg_type(cbs_table,
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
2083 "text/x-msmsgsinitialemailnotification",
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
2084 initial_email_msg);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2085 msn_table_add_msg_type(cbs_table,
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
2086 "text/x-msmsgsemailnotification",
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
2087 email_msg);
13892
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
2088 /*delete an offline Message notification*/
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
2089 msn_table_add_msg_type(cbs_table,
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
2090 "text/x-msmsgsactivemailnotification",
3cdfd486fa4f [gaim-migrate @ 17015]
Ma Yuan <mayuan2006@gmail.com>
parents: 13890
diff changeset
2091 delete_oim_msg);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2092 msn_table_add_msg_type(cbs_table,
9158
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
2093 "application/x-msmsgssystemmessage",
f8dab42adeaf [gaim-migrate @ 9942]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8926
diff changeset
2094 system_msg);
8808
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2095 }
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2096
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2097 void
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2098 msn_notification_end(void)
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2099 {
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2100 msn_table_destroy(cbs_table);
1cb5ddf6b625 [gaim-migrate @ 9570]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 8669
diff changeset
2101 }
13861
dc0021ad2b73 [gaim-migrate @ 16653]
Ma Yuan <mayuan2006@gmail.com>
parents: 13859
diff changeset
2102

mercurial