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