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