annotate libpurple/protocols/msn/notification.c @ 31469:78dccab9824c

Add the session user to the userlist. This reduces the amount of special-casing needed and corrects the buddy icon if you have yourself on your list. Fixes #12973.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Fri, 10 Dec 2010 06:38:17 +0000
parents 007ae2d62ea4
children 7d980d6b40e1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1 /**
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2 * @file notification.c Notification server functions
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
4 * purple
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5 *
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8 * source distribution.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 * (at your option) any later version.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 * GNU General Public License for more details.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 * along with this program; if not, write to the Free Software
19680
44b4e8bd759b The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18550
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23 */
31180
a99b6dcdb60d Remove unnecesary includes from msn.h.
masca@cpw.pidgin.im
parents: 31168
diff changeset
24
31196
230caecf5435 Include internal.h on each c file to avoid windows breakage as recommended by Daniel.
masca@cpw.pidgin.im
parents: 31180
diff changeset
25 #include "internal.h"
31180
a99b6dcdb60d Remove unnecesary includes from msn.h.
masca@cpw.pidgin.im
parents: 31168
diff changeset
26 #include "cipher.h"
31124
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
27 #include "core.h"
31199
712c8ddcf5ed Cleanup notification.c includes
masca@cpw.pidgin.im
parents: 31196
diff changeset
28 #include "debug.h"
712c8ddcf5ed Cleanup notification.c includes
masca@cpw.pidgin.im
parents: 31196
diff changeset
29
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30 #include "notification.h"
31199
712c8ddcf5ed Cleanup notification.c includes
masca@cpw.pidgin.im
parents: 31196
diff changeset
31
23504
69af5301e1a7 killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@hxbc.us>
parents: 23503
diff changeset
32 #include "contact.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 #include "error.h"
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
34 #include "msnutils.h"
31199
712c8ddcf5ed Cleanup notification.c includes
masca@cpw.pidgin.im
parents: 31196
diff changeset
35 #include "state.h"
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36 #include "userlist.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
38 static MsnTable *cbs_table;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
39
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
40 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
41 * Main
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
42 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
43
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
44 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
45 destroy_cb(MsnServConn *servconn)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
46 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
47 MsnNotification *notification;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
48
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
49 notification = servconn->cmdproc->data;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
50 g_return_if_fail(notification != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
51
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
52 msn_notification_destroy(notification);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
53 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
54
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
55 MsnNotification *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
56 msn_notification_new(MsnSession *session)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
57 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
58 MsnNotification *notification;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
59 MsnServConn *servconn;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
60
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
61 g_return_val_if_fail(session != NULL, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
62
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
63 notification = g_new0(MsnNotification, 1);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
64
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
65 notification->session = session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
66 notification->servconn = servconn = msn_servconn_new(session, MSN_SERVCONN_NS);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
67 msn_servconn_set_destroy_cb(servconn, destroy_cb);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
68
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69 notification->cmdproc = servconn->cmdproc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70 notification->cmdproc->data = notification;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
71 notification->cmdproc->cbs_table = cbs_table;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
72
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
73 return notification;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
74 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
75
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
76 void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
77 msn_notification_destroy(MsnNotification *notification)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
78 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
79 notification->cmdproc->data = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
80
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
81 msn_servconn_set_destroy_cb(notification->servconn, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
82
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
83 msn_servconn_destroy(notification->servconn);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
84
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
85 g_free(notification);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
86 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
87
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
88 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
89 * Connect
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
90 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
91
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
92 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
93 connect_cb(MsnServConn *servconn)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
94 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
95 MsnCmdProc *cmdproc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
96 MsnSession *session;
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
97 MsnTransaction *trans;
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
98 GString *vers;
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
99 const char *ver_str;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
100 int i;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
101
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
102 g_return_if_fail(servconn != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
103
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
104 cmdproc = servconn->cmdproc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
105 session = servconn->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
106
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
107 vers = g_string_new("");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
108
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
109 for (i = WLM_MAX_PROTOCOL; i >= WLM_MIN_PROTOCOL; i--)
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
110 g_string_append_printf(vers, " MSNP%d", i);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
111
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
112 g_string_append(vers, " CVR0");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
113
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
114 if (session->login_step == MSN_LOGIN_STEP_START)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
115 msn_session_set_login_step(session, MSN_LOGIN_STEP_HANDSHAKE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
116 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
117 msn_session_set_login_step(session, MSN_LOGIN_STEP_HANDSHAKE2);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
118
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
119 /* Skip the initial space */
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
120 ver_str = (vers->str + 1);
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
121 trans = msn_transaction_new(cmdproc, "VER", "%s", ver_str);
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
122 msn_cmdproc_send_trans(cmdproc, trans);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
123
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
124 g_string_free(vers, TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
125 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
126
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
127 gboolean
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
128 msn_notification_connect(MsnNotification *notification, const char *host, int port)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
129 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
130 MsnServConn *servconn;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
131
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
132 g_return_val_if_fail(notification != NULL, FALSE);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
133
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
134 servconn = notification->servconn;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
135
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
136 msn_servconn_set_connect_cb(servconn, connect_cb);
23549
5c95339855b2 Allow forcing an MSN HTTP connection to connect to a new server. This
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23547
diff changeset
137 notification->in_use = msn_servconn_connect(servconn, host, port, TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
138
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
139 return notification->in_use;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
140 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
141
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
142 void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
143 msn_notification_disconnect(MsnNotification *notification)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
144 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
145 g_return_if_fail(notification != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
146 g_return_if_fail(notification->in_use);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
147
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
148 msn_servconn_disconnect(notification->servconn);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
149
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
150 notification->in_use = FALSE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
151 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
152
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
153 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
154 * Login
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
155 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
156
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
157 void
23489
25899ec348a4 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23488
diff changeset
158 msn_got_login_params(MsnSession *session, const char *ticket, const char *response)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
159 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
160 MsnCmdProc *cmdproc;
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
161 MsnTransaction *trans;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
162
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
163 cmdproc = session->notification->cmdproc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
164
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
165 msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_END);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
166
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
167 if (session->protocol_ver >= 16)
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
168 trans = msn_transaction_new(cmdproc, "USR", "SSO S %s %s %s", ticket, response, session->guid);
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
169 else
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
170 trans = msn_transaction_new(cmdproc, "USR", "SSO S %s %s", ticket, response);
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
171
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
172 msn_cmdproc_send_trans(cmdproc, trans);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
173 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
174
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
175 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
176 cvr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
177 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
178 PurpleAccount *account;
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
179 MsnTransaction *trans;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
180
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
181 account = cmdproc->session->account;
23489
25899ec348a4 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23488
diff changeset
182
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
183 trans = msn_transaction_new(cmdproc, "USR", "SSO I %s", purple_account_get_username(account));
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
184 msn_cmdproc_send_trans(cmdproc, trans);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
185 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
186
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
187 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
188 usr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
189 {
31344
ac9035aeb087 Remove dead assignments in new MSN code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31315
diff changeset
190 MsnSession *session = cmdproc->session;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
191
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
192 if (!g_ascii_strcasecmp(cmd->params[1], "OK"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
193 {
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
194 /* authenticate OK */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
195 msn_session_set_login_step(session, MSN_LOGIN_STEP_SYN);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
196 }
23489
25899ec348a4 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23488
diff changeset
197 else if (!g_ascii_strcasecmp(cmd->params[1], "SSO"))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
198 {
23489
25899ec348a4 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23488
diff changeset
199 /* RPS authentication */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
200
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
201 session->nexus = msn_nexus_new(session);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
202
23489
25899ec348a4 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23488
diff changeset
203 session->nexus->policy = g_strdup(cmd->params[3]);
25899ec348a4 Patch 2 from Qulogic, this one adds SSO authentication
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23488
diff changeset
204 session->nexus->nonce = g_strdup(cmd->params[4]);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
205
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
206 msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_START);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
207
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
208 msn_nexus_connect(session->nexus);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
209 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
210 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
211
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
212 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
213 usr_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
214 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
215 MsnErrorType msnerr = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
216
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
217 switch (error)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
218 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
219 case 500:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
220 case 601:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
221 case 910:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
222 case 921:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
223 msnerr = MSN_ERROR_SERV_UNAVAILABLE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
224 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
225 case 911:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
226 msnerr = MSN_ERROR_AUTH;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
227 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
228 default:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
229 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
230 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
231 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
232
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
233 msn_session_set_error(cmdproc->session, msnerr, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
234 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
235
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
236 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
237 ver_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
238 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
239 MsnSession *session;
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
240 MsnTransaction *trans;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
241 PurpleAccount *account;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
242 gboolean protocol_supported = FALSE;
31096
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
243 int proto_ver;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
244 size_t i;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
245
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
246 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
247 account = session->account;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
248
31096
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
249 session->protocol_ver = 0;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 for (i = 1; i < cmd->param_count; i++)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
251 {
31096
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
252 if (sscanf(cmd->params[i], "MSNP%d", &proto_ver) == 1) {
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
253 if (proto_ver >= WLM_MIN_PROTOCOL
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
254 && proto_ver <= WLM_MAX_PROTOCOL
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
255 && proto_ver > session->protocol_ver) {
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
256 protocol_supported = TRUE;
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
257 session->protocol_ver = proto_ver;
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
258 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
260 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
261
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
262 if (!protocol_supported)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
263 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
264 msn_session_set_error(session, MSN_ERROR_UNSUPPORTED_PROTOCOL,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
265 NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
266 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
267 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
268
31096
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
269 purple_debug_info("msn", "Negotiated protocol version %d with the server.\n", session->protocol_ver);
ed838ad00173 Fix MSN protocol version detection to use the best version returned by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31095
diff changeset
270
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
271 /*
23509
1ac5faa72c8d explicit merge of '9d90ebdb7e38fdd77bb504bc3302a083616360d9'
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23303 23506
diff changeset
272 * Windows Live Messenger 8.5
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
273 * Notice :CVR String discriminate!
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
274 * reference of http://www.microsoft.com/globaldev/reference/oslocversion.mspx
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
275 * to see the Local ID
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
276 */
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
277 trans = msn_transaction_new(cmdproc, "CVR",
24128
345ed41d807b Update MSN Client Version (CVR) string to match 8.5.1302.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24127
diff changeset
278 "0x0409 winnt 5.1 i386 MSNMSGR 8.5.1302 BC01 %s",
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
279 purple_account_get_username(account));
31147
4d7dfeae29c6 msn: Delete msn_cmdproc_send since it just have duplicated code from
masca@cpw.pidgin.im
parents: 31139
diff changeset
280 msn_cmdproc_send_trans(cmdproc, trans);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
281 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
282
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
283 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
284 * Log out
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
285 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
286
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
287 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
288 out_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
289 {
23557
f1ff35d14a95 When receiving an MSN OUT, don't try to dereference cmd->params when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23549
diff changeset
290 if (cmd->param_count == 0)
f1ff35d14a95 When receiving an MSN OUT, don't try to dereference cmd->params when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23549
diff changeset
291 msn_session_set_error(cmdproc->session, -1, NULL);
f1ff35d14a95 When receiving an MSN OUT, don't try to dereference cmd->params when
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23549
diff changeset
292 else if (!g_ascii_strcasecmp(cmd->params[0], "OTH"))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
293 msn_session_set_error(cmdproc->session, MSN_ERROR_SIGN_OTHER,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
294 NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
295 else if (!g_ascii_strcasecmp(cmd->params[0], "SSD"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
296 msn_session_set_error(cmdproc->session, MSN_ERROR_SERV_DOWN, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
297 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
298
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
299 void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
300 msn_notification_close(MsnNotification *notification)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
301 {
31148
f7ee91763c6b msn: Remove msn_cmdproc_send_quick in favor of msn_cmdproc_send_trans
masca@cpw.pidgin.im
parents: 31147
diff changeset
302 MsnTransaction *trans;
f7ee91763c6b msn: Remove msn_cmdproc_send_quick in favor of msn_cmdproc_send_trans
masca@cpw.pidgin.im
parents: 31147
diff changeset
303
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
304 g_return_if_fail(notification != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
305
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
306 if (!notification->in_use)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
307 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
308
31153
59cf1be8eaa7 Fix a few little things.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31149
diff changeset
309 trans = msn_transaction_new(notification->cmdproc, "OUT", NULL);
31154
c316749944c1 I don't really like this name.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31153
diff changeset
310 msn_transaction_set_saveable(trans, FALSE);
31148
f7ee91763c6b msn: Remove msn_cmdproc_send_quick in favor of msn_cmdproc_send_trans
masca@cpw.pidgin.im
parents: 31147
diff changeset
311 msn_cmdproc_send_trans(notification->cmdproc, trans);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
312
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
313 msn_notification_disconnect(notification);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
314 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
315
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
316 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
317 * Messages
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
318 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
319
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
320 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
321 msg_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
322 size_t len)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
323 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
324 MsnMessage *msg;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
325
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
326 msg = msn_message_new_from_cmd(cmdproc->session, cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
327
23547
03ade2360ba6 Remove some MSN code duplication in processing messages from Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23543
diff changeset
328 msn_message_parse_payload(msg, payload, len, MSG_LINE_DEM, MSG_BODY_DEM);
27509
35b6fd563056 Change all MSN_DEBUG_* messages to use the new purple_debug_is_verbose call
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27219
diff changeset
329 if (purple_debug_is_verbose())
35b6fd563056 Change all MSN_DEBUG_* messages to use the new purple_debug_is_verbose call
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27219
diff changeset
330 msn_message_show_readable(msg, "Notification", TRUE);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
331
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
332 msn_cmdproc_process_msg(cmdproc, msg);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
333
31393
b4285ea42b6e msn_message_destroy() calls msn_message_unref() if refcount>0. This is
Mark Doliner <mark@kingant.net>
parents: 31376
diff changeset
334 msn_message_unref(msg);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
335 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
336
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
337 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
338 msg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
339 {
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
340 purple_debug_info("msn", "Processing MSG... \n");
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
341
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
342 /* NOTE: cmd is not always cmdproc->last_cmd, sometimes cmd is a queued
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
343 * command and we are processing it */
23547
03ade2360ba6 Remove some MSN code duplication in processing messages from Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23543
diff changeset
344 if (cmd->payload == NULL) {
27197
5bc1f2ae4b19 Remove some cosmetic differences between msg_cmd() and ubm_cmd()
Mark Doliner <mark@kingant.net>
parents: 27148
diff changeset
345 cmdproc->last_cmd->payload_cb = msg_cmd_post;
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
346 cmd->payload_len = atoi(cmd->params[2]);
23547
03ade2360ba6 Remove some MSN code duplication in processing messages from Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23543
diff changeset
347 } else {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
348 g_return_if_fail(cmd->payload_cb != NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
349
22808
f62a4a7fe365 Fix a number of leaks. As far as I can tell, MSNP14 now logs in without
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22798
diff changeset
350 #if 0 /* glib on win32 doesn't correctly support precision modifiers for a string */
27197
5bc1f2ae4b19 Remove some cosmetic differences between msg_cmd() and ubm_cmd()
Mark Doliner <mark@kingant.net>
parents: 27148
diff changeset
351 purple_debug_info("msn", "MSG payload:{%.*s}\n", (guint)cmd->payload_len, cmd->payload);
22808
f62a4a7fe365 Fix a number of leaks. As far as I can tell, MSNP14 now logs in without
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22798
diff changeset
352 #endif
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
353 cmd->payload_cb(cmdproc, cmd, cmd->payload, cmd->payload_len);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
354 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
355 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
356
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
357 /*send Message to Yahoo Messenger*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
358 void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
359 uum_send_msg(MsnSession *session,MsnMessage *msg)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
360 {
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
361 MsnCmdProc *cmdproc;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
362 MsnTransaction *trans;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
363 char *payload;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
364 gsize payload_len;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
365 int type;
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
366
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
367 cmdproc = session->notification->cmdproc;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
368 g_return_if_fail(msg != NULL);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
369 payload = msn_message_gen_payload(msg, &payload_len);
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
370 purple_debug_info("msn",
22798
05cb3f04c01e This cleans up a bunch of warnings that stem from the fact that size_t and
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22553
diff changeset
371 "send UUM, payload{%s}, strlen:%" G_GSIZE_FORMAT ", len:%" G_GSIZE_FORMAT "\n",
05cb3f04c01e This cleans up a bunch of warnings that stem from the fact that size_t and
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22553
diff changeset
372 payload, strlen(payload), payload_len);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
373 type = msg->type;
22798
05cb3f04c01e This cleans up a bunch of warnings that stem from the fact that size_t and
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22553
diff changeset
374 trans = msn_transaction_new(cmdproc, "UUM", "%s 32 %d %" G_GSIZE_FORMAT,
05cb3f04c01e This cleans up a bunch of warnings that stem from the fact that size_t and
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22553
diff changeset
375 msg->remote_user, type, payload_len);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
376 msn_transaction_set_payload(trans, payload, strlen(payload));
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
377 msn_cmdproc_send_trans(cmdproc, trans);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
378 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
379
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
380 /*Yahoo msg process*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
381 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
382 ubm_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
383 {
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
384 purple_debug_info("msn", "Processing UBM... \n");
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
385
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
386 /* NOTE: cmd is not always cmdproc->last_cmd, sometimes cmd is a queued
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
387 * command and we are processing it */
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
388 if (cmd->payload == NULL) {
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
389 cmdproc->last_cmd->payload_cb = msg_cmd_post;
31430
94b3092c904d Apparently, UBM was updated with more parameters in MSNp16. One is
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31410
diff changeset
390 if (cmdproc->session->protocol_ver >= 16)
94b3092c904d Apparently, UBM was updated with more parameters in MSNp16. One is
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31410
diff changeset
391 cmd->payload_len = atoi(cmd->params[5]);
94b3092c904d Apparently, UBM was updated with more parameters in MSNp16. One is
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31410
diff changeset
392 else
94b3092c904d Apparently, UBM was updated with more parameters in MSNp16. One is
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31410
diff changeset
393 cmd->payload_len = atoi(cmd->params[3]);
23547
03ade2360ba6 Remove some MSN code duplication in processing messages from Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23543
diff changeset
394 } else {
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
395 g_return_if_fail(cmd->payload_cb != NULL);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
396
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
397 purple_debug_info("msn", "UBM payload:{%.*s}\n", (guint)(cmd->payload_len), cmd->payload);
23547
03ade2360ba6 Remove some MSN code duplication in processing messages from Yahoo
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23543
diff changeset
398 msg_cmd_post(cmdproc, cmd, cmd->payload, cmd->payload_len);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
399 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
400 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
401
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
402 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
403 * Challenges
20425
5048651671e1 Revert a bunch of whitespace changes so reviewing a diff against
Stu Tomlinson <stu@nosnilmot.com>
parents: 20422
diff changeset
404 * we use MD5 to caculate the Challenges
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
405 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
406 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
407 chl_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
408 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
409 MsnTransaction *trans;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
410 char buf[33];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
411
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
412 msn_handle_chl(cmd->params[1], buf);
23488
75be80ddeca5 Patch 1 from Qulogic, this one mostly updates the version sent by pidgin
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 21790
diff changeset
413 trans = msn_transaction_new(cmdproc, "QRY", "%s 32", MSNP15_WLM_PRODUCT_ID);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
414
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
415 msn_transaction_set_payload(trans, buf, 32);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
416
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
417 msn_cmdproc_send_trans(cmdproc, trans);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
418 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
419
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
420 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
421 * Buddy Lists
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
422 **************************************************************************/
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
423
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
424 typedef struct MsnFqyCbData {
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
425 MsnFqyCb cb;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
426 gpointer data;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
427 } MsnFqyCbData;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
428
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
429 /* add contact to xmlnode */
20447
18ecdee88ed0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <stu@nosnilmot.com>
parents: 20446
diff changeset
430 static void
30695
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
431 msn_add_contact_xml(xmlnode *mlNode, const char *passport, MsnListOp list_op, MsnNetwork networkId)
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
432 {
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
433 xmlnode *d_node,*c_node;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
434 char **tokens;
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
435 const char *email,*domain;
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
436 char fmt_str[3];
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
437
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
438 g_return_if_fail(passport != NULL);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
439
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
440 purple_debug_info("msn", "Passport: %s, type: %d\n", passport, networkId);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
441 tokens = g_strsplit(passport, "@", 2);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
442 email = tokens[0];
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
443 domain = tokens[1];
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
444
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
445 if (email == NULL || domain == NULL) {
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
446 purple_debug_error("msn", "Invalid passport (%s) specified to add to contact xml.\n", passport);
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
447 g_strfreev(tokens);
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
448 g_return_if_reached();
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
449 }
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
450
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
451 /*find a domain Node*/
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
452 for (d_node = xmlnode_get_child(mlNode, "d"); d_node;
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
453 d_node = xmlnode_get_next_twin(d_node)) {
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
454 const char *attr = xmlnode_get_attrib(d_node,"n");
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
455 if (attr == NULL)
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
456 continue;
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
457 if (!strcmp(attr, domain))
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
458 break;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
459 }
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
460
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
461 if (d_node == NULL) {
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
462 /*domain not found, create a new domain Node*/
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
463 purple_debug_info("msn", "Didn't find existing domain node, adding one.\n");
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
464 d_node = xmlnode_new("d");
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
465 xmlnode_set_attrib(d_node, "n", domain);
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
466 xmlnode_insert_child(mlNode, d_node);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
467 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
468
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
469 /*create contact node*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
470 c_node = xmlnode_new("c");
20671
4dd60add6a7c 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 <daniel.atallah@gmail.com>
parents: 20514
diff changeset
471 xmlnode_set_attrib(c_node, "n", email);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
472
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
473 if (list_op != 0) {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
474 purple_debug_info("msn", "list_op: %d\n", list_op);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
475 g_snprintf(fmt_str, sizeof(fmt_str), "%d", list_op);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
476 xmlnode_set_attrib(c_node, "l", fmt_str);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
477 }
20447
18ecdee88ed0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <stu@nosnilmot.com>
parents: 20446
diff changeset
478
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
479 if (networkId != MSN_NETWORK_UNKNOWN) {
23523
31b5a1334e7e Modifications to the MSN code for some stuff I'll be doing in later
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23522
diff changeset
480 g_snprintf(fmt_str, sizeof(fmt_str), "%d", networkId);
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
481 /*mobile*/
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
482 /*type_str = g_strdup_printf("4");*/
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
483 xmlnode_set_attrib(c_node, "t", fmt_str);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
484 }
20447
18ecdee88ed0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <stu@nosnilmot.com>
parents: 20446
diff changeset
485
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
486 xmlnode_insert_child(d_node, c_node);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
487
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
488 g_strfreev(tokens);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
489 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
490
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
491 static void
20414
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
492 msn_notification_post_adl(MsnCmdProc *cmdproc, const char *payload, int payload_len)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
493 {
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
494 MsnTransaction *trans;
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
495 purple_debug_info("msn", "Sending ADL with payload: %s\n", payload);
23510
1d97298ccff5 Fix up some merge errors in MSN's notification.c. Darn meld...
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23509
diff changeset
496 trans = msn_transaction_new(cmdproc, "ADL", "%i", payload_len);
22808
f62a4a7fe365 Fix a number of leaks. As far as I can tell, MSNP14 now logs in without
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22798
diff changeset
497 msn_transaction_set_payload(trans, payload, payload_len);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
498 msn_cmdproc_send_trans(cmdproc, trans);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
499 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
500
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
501 static void
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
502 msn_notification_post_rml(MsnCmdProc *cmdproc, const char *payload, int payload_len)
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
503 {
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
504 MsnTransaction *trans;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
505 purple_debug_info("msn", "Sending RML with payload: %s\n", payload);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
506 trans = msn_transaction_new(cmdproc, "RML", "%i", payload_len);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
507 msn_transaction_set_payload(trans, payload, payload_len);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
508 msn_cmdproc_send_trans(cmdproc, trans);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
509 }
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
510
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
511 void
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
512 msn_notification_send_fqy(MsnSession *session,
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
513 const char *payload, int payload_len,
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
514 MsnFqyCb cb,
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
515 gpointer cb_data)
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
516 {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
517 MsnTransaction *trans;
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
518 MsnCmdProc *cmdproc;
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
519 MsnFqyCbData *data;
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
520
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
521 cmdproc = session->notification->cmdproc;
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
522
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
523 data = g_new(MsnFqyCbData, 1);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
524 data->cb = cb;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
525 data->data = cb_data;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
526
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
527 trans = msn_transaction_new(cmdproc, "FQY", "%d", payload_len);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
528 msn_transaction_set_payload(trans, payload, payload_len);
28720
6a23d7f84143 Allow setting a destroy-function for the data. Fixes a leak.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28713
diff changeset
529 msn_transaction_set_data(trans, data);
6a23d7f84143 Allow setting a destroy-function for the data. Fixes a leak.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28713
diff changeset
530 msn_transaction_set_data_free(trans, g_free);
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
531 msn_cmdproc_send_trans(cmdproc, trans);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
532 }
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
533
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
534 static void
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
535 update_contact_network(MsnSession *session, const char *passport, MsnNetwork network, gpointer unused)
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
536 {
25886
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
537 MsnUser *user;
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
538
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
539 if (network == MSN_NETWORK_UNKNOWN)
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
540 {
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
541 purple_debug_warning("msn",
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
542 "Ignoring user %s about which server knows nothing.\n",
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
543 passport);
25888
14abfec55b1d Darnit, one more MSN fix:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25886
diff changeset
544 /* Decrement the count for unknown results so that we'll continue login.
14abfec55b1d Darnit, one more MSN fix:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25886
diff changeset
545 Also, need to finish the login process here as well, because ADL OK
14abfec55b1d Darnit, one more MSN fix:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25886
diff changeset
546 will not be called. */
28415
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
547 if (purple_debug_is_verbose())
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
548 purple_debug_info("msn", "ADL/FQY count is %d\n", session->adl_fqy);
25888
14abfec55b1d Darnit, one more MSN fix:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25886
diff changeset
549 if (--session->adl_fqy == 0)
14abfec55b1d Darnit, one more MSN fix:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25886
diff changeset
550 msn_session_finish_login(session);
25886
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
551 return;
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
552 }
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
553
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
554 /* TODO: Also figure out how to update membership lists */
25886
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
555 user = msn_userlist_find_user(session->userlist, passport);
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
556 if (user) {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
557 xmlnode *adl_node;
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
558 char *payload;
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
559 int payload_len;
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
560
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
561 msn_user_set_network(user, network);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
562
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
563 adl_node = xmlnode_new("ml");
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
564 xmlnode_set_attrib(adl_node, "l", "1");
30695
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
565 msn_add_contact_xml(adl_node, passport,
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
566 user->list_op & MSN_LIST_OP_MASK, network);
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
567 payload = xmlnode_to_str(adl_node, &payload_len);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
568 msn_notification_post_adl(session->notification->cmdproc, payload, payload_len);
28708
caef0d8dcb04 Leak fix.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28415
diff changeset
569 g_free(payload);
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
570 } else {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
571 purple_debug_error("msn",
25860
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
572 "Got FQY update for unknown user %s on network %d.\n",
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
573 passport, network);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
574 }
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
575 }
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
576
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
577 /*dump contact info to NS*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
578 void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
579 msn_notification_dump_contact(MsnSession *session)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
580 {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
581 MsnUser *user;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
582 GList *l;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
583 xmlnode *adl_node;
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
584 xmlnode *fqy_node;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
585 char *payload;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
586 int payload_len;
20414
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
587 int adl_count = 0;
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
588 int fqy_count = 0;
30312
ec89b1d8571a Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30173
diff changeset
589 PurpleConnection *pc;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
590 const char *display_name;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
591
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
592 adl_node = xmlnode_new("ml");
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
593 adl_node->child = NULL;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
594 xmlnode_set_attrib(adl_node, "l", "1");
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
595 fqy_node = xmlnode_new("ml");
20477
9a2a4a0c0003 Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20474
diff changeset
596
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
597 /*get the userlist*/
23865
b9d4d8a77fef disapproval of revision 'd50e4b01c210ebbcd8f8d5a001fa72450e021a97'
Ka-Hing Cheung <khc@hxbc.us>
parents: 23864
diff changeset
598 for (l = session->userlist->users; l != NULL; l = l->next) {
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
599 user = l->data;
20447
18ecdee88ed0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <stu@nosnilmot.com>
parents: 20446
diff changeset
600
18ecdee88ed0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <stu@nosnilmot.com>
parents: 20446
diff changeset
601 /* skip RL & PL during initial dump */
18ecdee88ed0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <stu@nosnilmot.com>
parents: 20446
diff changeset
602 if (!(user->list_op & MSN_LIST_OP_MASK))
18ecdee88ed0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <stu@nosnilmot.com>
parents: 20446
diff changeset
603 continue;
18ecdee88ed0 Add Pending list to recognized lists during contact list parsing
Stu Tomlinson <stu@nosnilmot.com>
parents: 20446
diff changeset
604
24168
e93ca60b97dc References #6907, wrap a NULL check
Ka-Hing Cheung <khc@hxbc.us>
parents: 24167
diff changeset
605 if (user->passport && !strcmp(user->passport, "messenger@microsoft.com"))
23865
b9d4d8a77fef disapproval of revision 'd50e4b01c210ebbcd8f8d5a001fa72450e021a97'
Ka-Hing Cheung <khc@hxbc.us>
parents: 23864
diff changeset
606 continue;
b9d4d8a77fef disapproval of revision 'd50e4b01c210ebbcd8f8d5a001fa72450e021a97'
Ka-Hing Cheung <khc@hxbc.us>
parents: 23864
diff changeset
607
25867
7ea04b53f553 Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 25860
diff changeset
608 if ((user->list_op & MSN_LIST_OP_MASK & ~MSN_LIST_FL_OP)
7ea04b53f553 Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 25860
diff changeset
609 == (MSN_LIST_AL_OP | MSN_LIST_BL_OP)) {
25111
9398f0f2cdc6 Buddies on both the Allow and Block list are now automatically removed from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25094
diff changeset
610 /* The server will complain if we send it a user on both the
9398f0f2cdc6 Buddies on both the Allow and Block list are now automatically removed from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25094
diff changeset
611 Allow and Block lists. So assume they're on the Block list
9398f0f2cdc6 Buddies on both the Allow and Block list are now automatically removed from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25094
diff changeset
612 and remove them from the Allow list in the membership lists to
9398f0f2cdc6 Buddies on both the Allow and Block list are now automatically removed from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25094
diff changeset
613 stop this from happening again. */
9398f0f2cdc6 Buddies on both the Allow and Block list are now automatically removed from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25094
diff changeset
614 purple_debug_warning("msn",
25867
7ea04b53f553 Pluck the MSN bug fixes.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 25860
diff changeset
615 "User %s is on both Allow and Block list; "
25111
9398f0f2cdc6 Buddies on both the Allow and Block list are now automatically removed from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25094
diff changeset
616 "removing from Allow list.\n",
9398f0f2cdc6 Buddies on both the Allow and Block list are now automatically removed from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25094
diff changeset
617 user->passport);
28843
dd5026ca598a When restricting a buddy on both the Allow and Block lists to just one
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28840
diff changeset
618 msn_user_unset_op(user, MSN_LIST_AL_OP);
25111
9398f0f2cdc6 Buddies on both the Allow and Block list are now automatically removed from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25094
diff changeset
619 }
9398f0f2cdc6 Buddies on both the Allow and Block list are now automatically removed from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25094
diff changeset
620
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
621 if (user->networkid != MSN_NETWORK_UNKNOWN) {
30695
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
622 msn_add_contact_xml(adl_node, user->passport,
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
623 user->list_op & MSN_LIST_OP_MASK,
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
624 user->networkid);
20414
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
625
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
626 /* each ADL command may contain up to 150 contacts */
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
627 if (++adl_count % 150 == 0) {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
628 payload = xmlnode_to_str(adl_node, &payload_len);
20414
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
629
25860
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
630 /* ADL's are returned all-together */
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
631 session->adl_fqy++;
28415
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
632 if (purple_debug_is_verbose())
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
633 purple_debug_info("msn", "Posting ADL, count is %d\n",
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
634 session->adl_fqy);
25860
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
635
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
636 msn_notification_post_adl(session->notification->cmdproc,
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
637 payload, payload_len);
20414
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
638
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
639 g_free(payload);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
640 xmlnode_free(adl_node);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
641
20414
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
642 adl_node = xmlnode_new("ml");
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
643 adl_node->child = NULL;
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
644 xmlnode_set_attrib(adl_node, "l", "1");
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
645 }
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
646 } else {
25860
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
647 /* FQY's are returned one-at-a-time */
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
648 session->adl_fqy++;
28415
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
649 if (purple_debug_is_verbose())
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
650 purple_debug_info("msn", "Adding FQY address, count is %d\n",
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
651 session->adl_fqy);
25860
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
652
30695
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
653 msn_add_contact_xml(fqy_node, user->passport, 0, user->networkid);
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
654
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
655 /* each FQY command may contain up to 150 contacts, probably */
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
656 if (++fqy_count % 150 == 0) {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
657 payload = xmlnode_to_str(fqy_node, &payload_len);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
658
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
659 msn_notification_send_fqy(session, payload, payload_len,
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
660 update_contact_network, NULL);
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
661
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
662 g_free(payload);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
663 xmlnode_free(fqy_node);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
664 fqy_node = xmlnode_new("ml");
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
665 }
20414
76e736b59aa4 fixes #971, we can only ADL 150 contacts at a time or the notification
Ka-Hing Cheung <khc@hxbc.us>
parents: 20410
diff changeset
666 }
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
667 }
20481
eb93710aec4d 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: 20477
diff changeset
668
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
669 /* Send the rest, or just an empty one to let the server set us online */
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
670 if (adl_count == 0 || adl_count % 150 != 0) {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
671 payload = xmlnode_to_str(adl_node, &payload_len);
20481
eb93710aec4d 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: 20477
diff changeset
672
25860
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
673 /* ADL's are returned all-together */
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
674 session->adl_fqy++;
28415
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
675 if (purple_debug_is_verbose())
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
676 purple_debug_info("msn", "Posting ADL, count is %d\n",
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
677 session->adl_fqy);
25860
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
678
20481
eb93710aec4d 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: 20477
diff changeset
679 msn_notification_post_adl(session->notification->cmdproc, payload, payload_len);
eb93710aec4d 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: 20477
diff changeset
680
eb93710aec4d 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: 20477
diff changeset
681 g_free(payload);
20477
9a2a4a0c0003 Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20474
diff changeset
682 }
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
683
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
684 if (fqy_count % 150 != 0) {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
685 payload = xmlnode_to_str(fqy_node, &payload_len);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
686
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
687 msn_notification_send_fqy(session, payload, payload_len,
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
688 update_contact_network, NULL);
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
689
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
690 g_free(payload);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
691 }
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
692
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
693 xmlnode_free(adl_node);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
694 xmlnode_free(fqy_node);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
695
30696
88a047f92c39 Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30695
diff changeset
696 msn_session_activate_login_timeout(session);
88a047f92c39 Add a timeout which forces the login process to complete. This won't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30695
diff changeset
697
30312
ec89b1d8571a Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30173
diff changeset
698 pc = purple_account_get_connection(session->account);
ec89b1d8571a Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30173
diff changeset
699 display_name = purple_connection_get_display_name(pc);
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
700 if (display_name
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
701 && strcmp(display_name,
20477
9a2a4a0c0003 Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20474
diff changeset
702 purple_account_get_username(session->account))) {
30312
ec89b1d8571a Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30173
diff changeset
703 msn_set_public_alias(pc, display_name, NULL, NULL);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
704 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
705
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
706 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
707
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
708 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
709 blp_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
710 {
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
711 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
712
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
713 static void
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
714 adl_cmd_parse(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
715 size_t len)
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
716 {
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
717 xmlnode *root, *domain_node;
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
718
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
719 purple_debug_misc("msn", "Parsing received ADL XML data\n");
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
720
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
721 g_return_if_fail(payload != NULL);
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
722
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
723 root = xmlnode_from_str(payload, (gssize) len);
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
724
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
725 if (root == NULL) {
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
726 purple_debug_info("msn", "Invalid XML in ADL!\n");
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
727 return;
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
728 }
25886
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
729 for (domain_node = xmlnode_get_child(root, "d");
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
730 domain_node;
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
731 domain_node = xmlnode_get_next_twin(domain_node)) {
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
732 xmlnode *contact_node = NULL;
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
733
25886
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
734 for (contact_node = xmlnode_get_child(domain_node, "c");
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
735 contact_node;
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
736 contact_node = xmlnode_get_next_twin(contact_node)) {
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
737 const gchar *list;
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
738 gint list_op = 0;
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
739
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
740 list = xmlnode_get_attrib(contact_node, "l");
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
741 if (list != NULL) {
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
742 list_op = atoi(list);
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
743 }
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
744
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
745 if (list_op & MSN_LIST_RL_OP) {
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
746 /* someone is adding us */
23504
69af5301e1a7 killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@hxbc.us>
parents: 23503
diff changeset
747 msn_get_contact_list(cmdproc->session, MSN_PS_PENDING_LIST, NULL);
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
748 }
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
749 }
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
750 }
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
751
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
752 xmlnode_free(root);
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
753 }
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
754
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
755 static void
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
756 adl_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
757 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
758 MsnSession *session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
759
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
760 g_return_if_fail(cmdproc != NULL);
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
761 g_return_if_fail(cmdproc->session != NULL);
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
762 g_return_if_fail(cmdproc->last_cmd != NULL);
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
763 g_return_if_fail(cmd != NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
764
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
765 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
766
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
767 if (!strcmp(cmd->params[1], "OK")) {
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
768 /* ADL ack */
28415
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
769 if (purple_debug_is_verbose())
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
770 purple_debug_info("msn", "ADL ACK, count is %d\n",
7cebd7602c6e This seems to not work every once in a while, so put in some code under the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28414
diff changeset
771 session->adl_fqy);
25860
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
772 if (--session->adl_fqy == 0)
d51b8647d43c applied changes from 70fa4cc384b7643ab1f296bdc2399bc208542a20
Ethan Blanton <elb@pidgin.im>
parents: 25172
diff changeset
773 msn_session_finish_login(session);
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
774 } else {
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
775 cmdproc->last_cmd->payload_cb = adl_cmd_parse;
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
776 cmd->payload_len = atoi(cmd->params[1]);
20484
98613886411a Handle special cases in buddy/group management (wrt MSN_INDIVIDUALS_GROUP and MSN_NON_IM_GROUP).
Carlos Silva <typ0@pidgin.im>
parents: 20481
diff changeset
777 }
20477
9a2a4a0c0003 Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20474
diff changeset
778
9a2a4a0c0003 Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20474
diff changeset
779 return;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
780 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
781
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
782 static void
24207
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
783 adl_error_parse(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len)
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
784 {
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
785 MsnSession *session;
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
786 PurpleAccount *account;
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
787 PurpleConnection *gc;
28839
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
788 int error = GPOINTER_TO_INT(cmd->payload_cbdata);
24207
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
789
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
790 session = cmdproc->session;
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
791 account = session->account;
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
792 gc = purple_account_get_connection(account);
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
793
28839
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
794 if (error == 241) {
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
795 /* khc: some googling suggests that error 241 means the buddy is somehow
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
796 in the local list, but not the server list, and that we should add
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
797 those buddies to the addressbook. For now I will just notify the user
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
798 about the raw payload, because I am lazy */
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
799 xmlnode *adl = xmlnode_from_str(payload, len);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
800 GString *emails = g_string_new(NULL);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
801
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
802 xmlnode *domain = xmlnode_get_child(adl, "d");
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
803 while (domain) {
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
804 const char *domain_str = xmlnode_get_attrib(domain, "n");
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
805 xmlnode *contact = xmlnode_get_child(domain, "c");
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
806 while (contact) {
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
807 g_string_append_printf(emails, "%s@%s\n",
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
808 xmlnode_get_attrib(contact, "n"), domain_str);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
809 contact = xmlnode_get_next_twin(contact);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
810 }
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
811 domain = xmlnode_get_next_twin(domain);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
812 }
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
813
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
814 purple_notify_error(gc, NULL,
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
815 _("The following users are missing from your addressbook"),
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
816 emails->str);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
817 g_string_free(emails, TRUE);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
818 xmlnode_free(adl);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
819 }
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
820 else
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
821 {
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
822 char *adl = g_strndup(payload, len);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
823 char *reason = g_strdup_printf(_("Unknown error (%d): %s"),
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
824 error, adl);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
825 g_free(adl);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
826
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
827 purple_notify_error(gc, NULL, _("Unable to add user"), reason);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
828 g_free(reason);
57137d32a131 Fold the ADL 241 error handler into the base ADL error handler since it
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28747
diff changeset
829 }
24207
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
830 }
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
831
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
832 static void
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
833 adl_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
834 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
835 MsnSession *session;
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
836 PurpleAccount *account;
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
837 PurpleConnection *gc;
24207
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
838 MsnCommand *cmd = cmdproc->last_cmd;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
839
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
840 session = cmdproc->session;
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
841 account = session->account;
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
842 gc = purple_account_get_connection(account);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
843
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
844 purple_debug_error("msn", "ADL error\n");
24207
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
845 if (cmd->param_count > 1) {
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
846 cmd->payload_cb = adl_error_parse;
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
847 cmd->payload_len = atoi(cmd->params[1]);
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
848 cmd->payload_cbdata = GINT_TO_POINTER(error);
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
849 } else {
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
850 char *reason = g_strdup_printf(_("Unknown error (%d)"), error);
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
851 purple_notify_error(gc, NULL, _("Unable to add user"), reason);
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
852 g_free(reason);
e473291375b4 Apply khc's patch for ADL error 205, with a few changes to get around
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24128
diff changeset
853 }
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
854 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
855
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
856 static void
28840
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
857 rml_error_parse(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len)
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
858 {
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
859 MsnSession *session;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
860 PurpleAccount *account;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
861 PurpleConnection *gc;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
862 char *adl, *reason;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
863 int error = GPOINTER_TO_INT(cmd->payload_cbdata);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
864
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
865 session = cmdproc->session;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
866 account = session->account;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
867 gc = purple_account_get_connection(account);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
868
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
869 adl = g_strndup(payload, len);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
870 reason = g_strdup_printf(_("Unknown error (%d): %s"),
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
871 error, adl);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
872 g_free(adl);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
873
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
874 purple_notify_error(gc, NULL, _("Unable to remove user"), reason);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
875 g_free(reason);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
876 }
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
877
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
878 static void
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
879 rml_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
880 {
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
881 MsnSession *session;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
882 PurpleAccount *account;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
883 PurpleConnection *gc;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
884 MsnCommand *cmd = cmdproc->last_cmd;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
885
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
886 session = cmdproc->session;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
887 account = session->account;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
888 gc = purple_account_get_connection(account);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
889
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
890 purple_debug_error("msn", "RML error\n");
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
891 if (cmd->param_count > 1) {
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
892 cmd->payload_cb = rml_error_parse;
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
893 cmd->payload_len = atoi(cmd->params[1]);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
894 cmd->payload_cbdata = GINT_TO_POINTER(error);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
895 } else {
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
896 char *reason = g_strdup_printf(_("Unknown error (%d)"), error);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
897 purple_notify_error(gc, NULL, _("Unable to remove user"), reason);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
898 g_free(reason);
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
899 }
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
900 }
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
901
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
902 static void
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
903 fqy_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
904 size_t len)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
905 {
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
906 MsnSession *session;
24463
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
907 xmlnode *ml, *d, *c;
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
908 const char *domain;
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
909 const char *local;
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
910 const char *type;
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
911 char *passport;
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
912 MsnNetwork network = MSN_NETWORK_PASSPORT;
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
913
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
914 session = cmdproc->session;
24463
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
915
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
916 /* FQY response:
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
917 <ml><d n="domain.com"><c n="local-node" t="network" /></d></ml> */
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
918 ml = xmlnode_from_str(payload, len);
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
919 for (d = xmlnode_get_child(ml, "d");
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
920 d != NULL;
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
921 d = xmlnode_get_next_twin(d)) {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
922 domain = xmlnode_get_attrib(d, "n");
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
923 for (c = xmlnode_get_child(d, "c");
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
924 c != NULL;
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
925 c = xmlnode_get_next_twin(c)) {
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
926 local = xmlnode_get_attrib(c, "n");
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
927 type = xmlnode_get_attrib(c, "t");
24463
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
928
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
929 passport = g_strdup_printf("%s@%s", local, domain);
24463
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
930
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
931 if (g_ascii_isdigit(cmd->command[0]))
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
932 network = MSN_NETWORK_UNKNOWN;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
933 else if (type != NULL)
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
934 network = (MsnNetwork)strtoul(type, NULL, 10);
24463
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
935
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
936 purple_debug_info("msn", "FQY response says %s is from network %d\n",
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
937 passport, network);
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
938 if (cmd->trans->data) {
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
939 MsnFqyCbData *fqy_data = cmd->trans->data;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
940 fqy_data->cb(session, passport, network, fqy_data->data);
28732
7f80b0fc825d Minor comment typo.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28720
diff changeset
941 /* Don't free fqy_data yet since the server responds to FQY multiple times.
28720
6a23d7f84143 Allow setting a destroy-function for the data. Fixes a leak.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28713
diff changeset
942 It will be freed when cmd->trans is freed. */
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
943 }
25172
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
944
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
945 g_free(passport);
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
946 }
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
947 }
fd5eedf131b4 Generalize the FQY command so it can be used by different callbacks based
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25111
diff changeset
948
24463
4fd22591e3f0 Send FQY as the first thing when adding a buddy so that we know what network
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24455
diff changeset
949 xmlnode_free(ml);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
950 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
951
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
952 static void
25886
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
953 fqy_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error)
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
954 {
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
955 MsnCommand *cmd = cmdproc->last_cmd;
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
956
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
957 purple_debug_warning("msn", "FQY error %d\n", error);
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
958 if (cmd->param_count > 1) {
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
959 cmd->payload_cb = fqy_cmd_post;
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
960 cmd->payload_len = atoi(cmd->params[1]);
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
961 cmd->payload_cbdata = GINT_TO_POINTER(error);
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
962 }
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
963 #if 0
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
964 /* If the server didn't send us a corresponding email address for this
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
965 FQY error, it's probably going to disconnect us. So it isn't necessary
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
966 to tell the handler about it. */
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
967 else if (trans->data)
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
968 ((MsnFqyCb)trans->data)(session, NULL, MSN_NETWORK_UNKNOWN, NULL);
25886
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
969 #endif
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
970 }
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
971
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
972 static void
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
973 fqy_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
974 {
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
975 purple_debug_info("msn", "Process FQY\n");
20481
eb93710aec4d 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: 20477
diff changeset
976 cmdproc->last_cmd->payload_cb = fqy_cmd_post;
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
977 cmd->payload_len = atoi(cmd->params[1]);
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
978 }
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
979
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
980 static void
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
981 rml_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
982 size_t len)
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
983 {
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
984 if (payload != NULL)
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
985 purple_debug_info("msn", "Received RML:\n%s\n", payload);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
986 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
987
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
988 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
989 rml_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
990 {
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
991 purple_debug_info("msn", "Process RML\n");
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
992 cmd->payload_len = atoi(cmd->params[1]);
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
993 cmdproc->last_cmd->payload_cb = rml_cmd_post;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
994 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
995
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
996 static void
17151
3e463ddf18f7 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <stu@nosnilmot.com>
parents: 17118
diff changeset
997 qng_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
3e463ddf18f7 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <stu@nosnilmot.com>
parents: 17118
diff changeset
998 {
23599
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
999 /* TODO: Call PNG after the timeout specified. */
17151
3e463ddf18f7 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <stu@nosnilmot.com>
parents: 17118
diff changeset
1000 }
3e463ddf18f7 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <stu@nosnilmot.com>
parents: 17118
diff changeset
1001
3e463ddf18f7 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <stu@nosnilmot.com>
parents: 17118
diff changeset
1002
3e463ddf18f7 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <stu@nosnilmot.com>
parents: 17118
diff changeset
1003 static void
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1004 fln_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1005 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1006 MsnUser *user;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1007
23307
27f7fae4a361 Add a few bits of documentation
Mark Doliner <mark@kingant.net>
parents: 23303
diff changeset
1008 /* Tell libpurple that the user has signed off */
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1009 user = msn_userlist_find_user(cmdproc->session->userlist, cmd->params[0]);
23543
80d09f42b157 A patch from felipec to consistently use NULL for the status of offline
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23541
diff changeset
1010 msn_user_set_state(user, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1011 msn_user_update(user);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1012 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1013
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1014 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1015 iln_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1016 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1017 MsnSession *session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1018 MsnUser *user;
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1019 MsnObject *msnobj = NULL;
31109
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1020 unsigned long clientid, extcaps;
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1021 char *extcap_str;
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1022 int networkid = 0;
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1023 const char *state, *passport;
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1024 char *friendly;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1025
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1026 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1027
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1028 state = cmd->params[1];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1029 passport = cmd->params[2];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1030
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1031 user = msn_userlist_find_user(session->userlist, passport);
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1032 if (user == NULL)
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1033 /* Where'd this come from? */
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1034 return;
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1035
28834
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1036 if (cmd->param_count == 8) {
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1037 /* Yahoo! Buddy, looks like */
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1038 networkid = atoi(cmd->params[3]);
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1039 friendly = g_strdup(purple_url_decode(cmd->params[4]));
31109
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1040 clientid = strtoul(cmd->params[5], &extcap_str, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1041 if (session->protocol_ver >= 16 && extcap_str && *extcap_str)
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1042 extcaps = strtoul(extcap_str+1, NULL, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1043 else
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1044 extcaps = 0;
28834
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1045
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1046 /* cmd->params[7] seems to be a URL to a Yahoo! icon:
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1047 https://sec.yimg.com/i/us/nt/b/purpley.1.0.png
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1048 ... and it's purple, HAH!
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1049 */
6100cb11bae8 Parse online presence from yahoo buddies after going online on MSN.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 28747
diff changeset
1050 } else if (cmd->param_count == 7) {
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1051 /* MSNP14+ with Display Picture object */
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1052 networkid = atoi(cmd->params[3]);
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1053 friendly = g_strdup(purple_url_decode(cmd->params[4]));
31109
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1054 clientid = strtoul(cmd->params[5], &extcap_str, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1055 if (session->protocol_ver >= 16 && extcap_str && *extcap_str)
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1056 extcaps = strtoul(extcap_str+1, NULL, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1057 else
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1058 extcaps = 0;
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1059 msnobj = msn_object_new_from_string(purple_url_decode(cmd->params[6]));
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1060 } else if (cmd->param_count == 6) {
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1061 /* Yes, this is 5. The friendly name could start with a number,
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1062 but the display picture object can't... */
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1063 if (isdigit(cmd->params[5][0])) {
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1064 /* MSNP14 without Display Picture object */
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1065 networkid = atoi(cmd->params[3]);
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1066 friendly = g_strdup(purple_url_decode(cmd->params[4]));
31109
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1067 clientid = strtoul(cmd->params[5], &extcap_str, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1068 if (session->protocol_ver >= 16 && extcap_str && *extcap_str)
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1069 extcaps = strtoul(extcap_str+1, NULL, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1070 else
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1071 extcaps = 0;
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1072 } else {
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1073 /* MSNP8+ with Display Picture object */
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1074 friendly = g_strdup(purple_url_decode(cmd->params[3]));
31109
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1075 clientid = strtoul(cmd->params[4], &extcap_str, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1076 if (session->protocol_ver >= 16 && extcap_str && *extcap_str)
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1077 extcaps = strtoul(extcap_str+1, NULL, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1078 else
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1079 extcaps = 0;
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1080 msnobj = msn_object_new_from_string(purple_url_decode(cmd->params[5]));
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1081 }
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1082 } else if (cmd->param_count == 5) {
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1083 /* MSNP8+ without Display Picture object */
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1084 friendly = g_strdup(purple_url_decode(cmd->params[3]));
31109
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1085 clientid = strtoul(cmd->params[4], &extcap_str, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1086 if (session->protocol_ver >= 16 && extcap_str && *extcap_str)
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1087 extcaps = strtoul(extcap_str+1, NULL, 10);
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1088 else
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1089 extcaps = 0;
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1090 } else {
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1091 purple_debug_warning("msn", "Received ILN with unknown number of parameters.\n");
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1092 return;
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1093 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1094
25034
ea9e0fa89c02 Update the Address Book when we recieve a new friendly name for a buddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25033
diff changeset
1095 if (msn_user_set_friendly_name(user, friendly)) {
ea9e0fa89c02 Update the Address Book when we recieve a new friendly name for a buddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25033
diff changeset
1096 msn_update_contact(session, passport, MSN_UPDATE_DISPLAY, friendly);
ea9e0fa89c02 Update the Address Book when we recieve a new friendly name for a buddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25033
diff changeset
1097 }
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1098 g_free(friendly);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1099
23863
54432ea0a5ab Support some older versions of the ILN command. Apparently some IM
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23862
diff changeset
1100 msn_user_set_object(user, msnobj);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1101
29368
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1102 user->mobile = (clientid & MSN_CLIENT_CAP_MSNMOBILE) || (user->extinfo && user->extinfo->phone_mobile && user->extinfo->phone_mobile[0] == '+');
23523
31b5a1334e7e Modifications to the MSN code for some stuff I'll be doing in later
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23522
diff changeset
1103 msn_user_set_clientid(user, clientid);
31109
fc7798a661f7 Also parse extended capabilities from ILN. Probably don't need to do so in
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31107
diff changeset
1104 msn_user_set_extcaps(user, extcaps);
23523
31b5a1334e7e Modifications to the MSN code for some stuff I'll be doing in later
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23522
diff changeset
1105 msn_user_set_network(user, networkid);
22553
1168dc635ac1 some other mobile stuff that Maiku fixed, fixes #2359
Ka-Hing Cheung <khc@hxbc.us>
parents: 22519
diff changeset
1106
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1107 msn_user_set_state(user, state);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1108 msn_user_update(user);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1109 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1110
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1111 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1112 ipg_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1113 {
22519
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1114 PurpleConnection *gc;
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1115 MsnUserList *userlist;
24127
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1116 const char *who = NULL;
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1117 char *text = NULL;
23615
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1118 const char *id = NULL;
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1119 xmlnode *payloadNode, *from, *msg, *textNode;
22519
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1120
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1121 purple_debug_misc("msn", "Incoming Page: {%s}\n", payload);
22519
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1122
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1123 userlist = cmdproc->session->userlist;
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1124 gc = purple_account_get_connection(cmdproc->session->account);
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1125
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1126 /* payload looks like this:
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1127 <?xml version="1.0"?>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1128 <NOTIFICATION id="0" siteid="111100400" siteurl="http://mobile.msn.com/">
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1129 <TO name="passport@example.com">
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1130 <VIA agent="mobile"/>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1131 </TO>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1132 <FROM name="tel:+XXXXXXXXXXX"/>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1133 <MSG pri="1" id="1">
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1134 <CAT Id="110110001"/>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1135 <ACTION url="2wayIM.asp"/>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1136 <SUBSCR url="2wayIM.asp"/>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1137 <BODY lcid="1033">
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1138 <TEXT>Message was here</TEXT>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1139 </BODY>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1140 </MSG>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1141 </NOTIFICATION>
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1142 */
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1143
23615
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1144 /* This is the payload if your message was too long:
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1145 <NOTIFICATION id="TrID" siteid="111100400" siteurl="http://mobile.msn.com/">
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1146 <TO name="passport@example.com">
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1147 <VIA agent="mobile"/>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1148 </TO>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1149 <FROM name="tel:+XXXXXXXXXXX"/>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1150 <MSG pri="1" id="407">
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1151 <CAT Id="110110001"/>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1152 <ACTION url="2wayIM.asp"/>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1153 <SUBSCR url="2wayIM.asp"/>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1154 <BODY lcid="1033">
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1155 <TEXT></TEXT>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1156 </BODY>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1157 </MSG>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1158 </NOTIFICATION>
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1159 */
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1160
24127
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1161 payloadNode = xmlnode_from_str(payload, len);
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1162 if (!payloadNode)
22519
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1163 return;
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1164
24127
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1165 if (!(from = xmlnode_get_child(payloadNode, "FROM")) ||
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1166 !(msg = xmlnode_get_child(payloadNode, "MSG")) ||
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1167 !(textNode = xmlnode_get_child(msg, "BODY/TEXT"))) {
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1168 xmlnode_free(payloadNode);
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1169 return;
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1170 }
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1171
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1172 who = xmlnode_get_attrib(from, "name");
22519
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1173 if (!who) return;
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1174
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1175 text = xmlnode_get_data(textNode);
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1176
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1177 /* Match number to user's mobile number, FROM is a phone number if the
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1178 other side page you using your phone number */
23615
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1179 if (!strncmp(who, "tel:+", 5)) {
22519
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1180 MsnUser *user =
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1181 msn_userlist_find_user_with_mobile_phone(userlist, who + 4);
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1182
24127
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1183 if (user && user->passport)
c5488f91bf3b Fix a possible xmlnode leak and an extra g_strdup when processing
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24103
diff changeset
1184 who = user->passport;
22519
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1185 }
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1186
23615
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1187 id = xmlnode_get_attrib(msg, "id");
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1188
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1189 if (id && !strcmp(id, "407")) {
28414
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1190 PurpleConversation *conv
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1191 = purple_find_conversation_with_account(PURPLE_CONV_TYPE_ANY,
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1192 who, gc->account);
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1193 if (conv != NULL) {
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1194 purple_conversation_write(conv, NULL,
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1195 _("Mobile message was not sent because it was too long."),
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1196 PURPLE_MESSAGE_ERROR, time(NULL));
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1197
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1198 if ((id = xmlnode_get_attrib(payloadNode, "id")) != NULL) {
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1199 unsigned int trId = atol(id);
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1200 MsnTransaction *trans;
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1201 MsnMessage *msg;
23615
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1202
28414
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1203 trans = msn_history_find(cmdproc->history, trId);
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1204 msg = (MsnMessage *)trans->data;
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1205
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1206 if (msg) {
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1207 char *body_str = msn_message_to_string(msg);
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1208 char *body_enc = g_markup_escape_text(body_str, -1);
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1209
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1210 purple_conversation_write(conv, NULL, body_enc,
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1211 PURPLE_MESSAGE_RAW, time(NULL));
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1212
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1213 g_free(body_str);
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1214 g_free(body_enc);
31393
b4285ea42b6e msn_message_destroy() calls msn_message_unref() if refcount>0. This is
Mark Doliner <mark@kingant.net>
parents: 31376
diff changeset
1215 msn_message_unref(msg);
28414
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1216 trans->data = NULL;
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1217 }
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1218 }
e7a2e2208f88 Display the full message when there are errors sending a MSN Mobile message
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27509
diff changeset
1219 }
23615
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1220 } else {
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1221 serv_got_im(gc, who, text, 0, time(NULL));
d370388bfc89 Report an error when an MSN Mobile message was not sent because it was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23599
diff changeset
1222 }
22519
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1223
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1224 g_free(text);
575c4bda3b23 another patch from Maiku, this time handling IPG so we can receive paging.
Ka-Hing Cheung <khc@hxbc.us>
parents: 22518
diff changeset
1225 xmlnode_free(payloadNode);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1226 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1227
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1228 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1229 ipg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1230 {
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1231 cmd->payload_len = atoi(cmd->params[0]);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1232 cmdproc->last_cmd->payload_cb = ipg_cmd_post;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1233 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1234
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1235 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1236 nln_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1237 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1238 MsnSession *session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1239 MsnUser *user;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1240 MsnObject *msnobj;
31098
4cdea258b143 Save extended capabilities of an MSN buddy when receiving NLN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31096
diff changeset
1241 unsigned long clientid, extcaps;
4cdea258b143 Save extended capabilities of an MSN buddy when receiving NLN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31096
diff changeset
1242 char *extcap_str;
23523
31b5a1334e7e Modifications to the MSN code for some stuff I'll be doing in later
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23522
diff changeset
1243 int networkid;
25033
f5188d4d84e3 Move the check for whether to update the server alias out of nln_cmd and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24671
diff changeset
1244 const char *state, *passport, *friendly;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1245
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1246 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1247
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1248 state = cmd->params[0];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1249 passport = cmd->params[1];
23523
31b5a1334e7e Modifications to the MSN code for some stuff I'll be doing in later
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23522
diff changeset
1250 networkid = atoi(cmd->params[2]);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1251 friendly = purple_url_decode(cmd->params[3]);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1252
31469
78dccab9824c Add the session user to the userlist. This reduces the amount of
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31468
diff changeset
1253 user = msn_userlist_find_user(session->userlist, passport);
24099
a1a88c1bd59e don't crash if we get a NLN command from someone not on the blist
Ka-Hing Cheung <khc@hxbc.us>
parents: 23918
diff changeset
1254 if (user == NULL) return;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1255
31468
007ae2d62ea4 Maybe I should actually put the fix in there too!
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31453
diff changeset
1256 if (msn_user_set_friendly_name(user, friendly) && user != session->user)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1257 {
25034
ea9e0fa89c02 Update the Address Book when we recieve a new friendly name for a buddy.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25033
diff changeset
1258 msn_update_contact(session, passport, MSN_UPDATE_DISPLAY, friendly);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1259 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1260
23562
7f4473544c64 Fix updating the MSN buddy icon, which was probably broken by the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23559
diff changeset
1261 if (cmd->param_count == 6)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1262 {
23526
4cb1efafa410 Remove some checks for MSN protocol_ver < 15. Those versions are
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23523
diff changeset
1263 msnobj = msn_object_new_from_string(purple_url_decode(cmd->params[5]));
4cb1efafa410 Remove some checks for MSN protocol_ver < 15. Those versions are
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23523
diff changeset
1264 msn_user_set_object(user, msnobj);
4cb1efafa410 Remove some checks for MSN protocol_ver < 15. Those versions are
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23523
diff changeset
1265 }
4cb1efafa410 Remove some checks for MSN protocol_ver < 15. Those versions are
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23523
diff changeset
1266 else
4cb1efafa410 Remove some checks for MSN protocol_ver < 15. Those versions are
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23523
diff changeset
1267 {
4cb1efafa410 Remove some checks for MSN protocol_ver < 15. Those versions are
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23523
diff changeset
1268 msn_user_set_object(user, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1269 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1270
31098
4cdea258b143 Save extended capabilities of an MSN buddy when receiving NLN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31096
diff changeset
1271 clientid = strtoul(cmd->params[4], &extcap_str, 10);
31099
ccb05979ab8a Don't attempt to parse extended caps if not using MSNP16.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31098
diff changeset
1272 if (session->protocol_ver >= 16 && extcap_str && *extcap_str)
31098
4cdea258b143 Save extended capabilities of an MSN buddy when receiving NLN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31096
diff changeset
1273 extcaps = strtoul(extcap_str+1, NULL, 10);
4cdea258b143 Save extended capabilities of an MSN buddy when receiving NLN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31096
diff changeset
1274 else
4cdea258b143 Save extended capabilities of an MSN buddy when receiving NLN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31096
diff changeset
1275 extcaps = 0;
31130
1830fa548302 propagate from branch 'im.pidgin.pidgin' (head b0098e2250f135d121960d8152e144e7e344125e)
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31125 29368
diff changeset
1276
29368
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1277 user->mobile = (clientid & MSN_CLIENT_CAP_MSNMOBILE) || (user->extinfo && user->extinfo->phone_mobile && user->extinfo->phone_mobile[0] == '+');
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1278
23523
31b5a1334e7e Modifications to the MSN code for some stuff I'll be doing in later
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23522
diff changeset
1279 msn_user_set_clientid(user, clientid);
31098
4cdea258b143 Save extended capabilities of an MSN buddy when receiving NLN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31096
diff changeset
1280 msn_user_set_extcaps(user, extcaps);
23523
31b5a1334e7e Modifications to the MSN code for some stuff I'll be doing in later
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23522
diff changeset
1281 msn_user_set_network(user, networkid);
31b5a1334e7e Modifications to the MSN code for some stuff I'll be doing in later
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23522
diff changeset
1282
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1283 msn_user_set_state(user, state);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1284 msn_user_update(user);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1285 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1286
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1287 #if 0
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1288 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1289 chg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1290 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1291 char *state = cmd->params[1];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1292 int state_id = 0;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1293
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1294 if (!strcmp(state, "NLN"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1295 state_id = MSN_ONLINE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1296 else if (!strcmp(state, "BSY"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1297 state_id = MSN_BUSY;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1298 else if (!strcmp(state, "IDL"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1299 state_id = MSN_IDLE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1300 else if (!strcmp(state, "BRB"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1301 state_id = MSN_BRB;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1302 else if (!strcmp(state, "AWY"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1303 state_id = MSN_AWAY;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1304 else if (!strcmp(state, "PHN"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1305 state_id = MSN_PHONE;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1306 else if (!strcmp(state, "LUN"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1307 state_id = MSN_LUNCH;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1308 else if (!strcmp(state, "HDN"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1309 state_id = MSN_HIDDEN;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1310
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1311 cmdproc->session->state = state_id;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1312 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1313 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1314
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1315
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1316 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1317 not_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1318 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1319 #if 0
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1320 MSN_SET_PARAMS("NOT %d\r\n%s", cmdproc->servconn->payload, payload);
23830
e7cce5e911d8 Turn off those MSN NOTification debug messages. It should work now, and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23738
diff changeset
1321 purple_debug_misc("msn", "Notification: {%s}\n", payload);
23738
38c76b5b846b Correctly save the payload_len of a MSN notification command. Also,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23732
diff changeset
1322 #endif
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1323 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1324
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1325 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1326 not_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1327 {
23738
38c76b5b846b Correctly save the payload_len of a MSN notification command. Also,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23732
diff changeset
1328 cmd->payload_len = atoi(cmd->params[0]);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1329 cmdproc->last_cmd->payload_cb = not_cmd_post;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1330 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1331
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1332 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1333 prp_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1334 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1335 MsnSession *session = cmdproc->session;
30312
ec89b1d8571a Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30173
diff changeset
1336 const char *type, *value;
20477
9a2a4a0c0003 Add the possibility to create an Address Book, useful for newly registered MSN users.
Carlos Silva <typ0@pidgin.im>
parents: 20474
diff changeset
1337
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1338 g_return_if_fail(cmd->param_count >= 3);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1339
30312
ec89b1d8571a Implement [gs]et_public_alias in MSN.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30173
diff changeset
1340 type = cmd->params[2];
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1341
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1342 if (cmd->param_count == 4)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1343 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1344 value = cmd->params[3];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1345 if (!strcmp(type, "PHH"))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1346 msn_user_set_home_phone(session->user, purple_url_decode(value));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1347 else if (!strcmp(type, "PHW"))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1348 msn_user_set_work_phone(session->user, purple_url_decode(value));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1349 else if (!strcmp(type, "PHM"))
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1350 msn_user_set_mobile_phone(session->user, purple_url_decode(value));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1351 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1352 else
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1353 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1354 if (!strcmp(type, "PHH"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1355 msn_user_set_home_phone(session->user, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1356 else if (!strcmp(type, "PHW"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1357 msn_user_set_work_phone(session->user, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1358 else if (!strcmp(type, "PHM"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1359 msn_user_set_mobile_phone(session->user, NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1360 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1361 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1362
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1363 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1364 * Misc commands
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1365 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1366
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1367 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1368 url_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1369 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1370 MsnSession *session;
23599
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1371 PurpleConnection *gc;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1372 PurpleAccount *account;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1373 const char *rru;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1374 const char *url;
23599
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1375 PurpleCipherContext *cipher;
23731
59f8890ae8cf Fix up the MSN Inbox URL. There was a typo that caused a use-after-free
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23657
diff changeset
1376 gchar creds[33];
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1377 char *buf;
23599
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1378
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1379 gulong tmp_timestamp;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1380
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1381 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1382 account = session->account;
23599
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1383 gc = account->gc;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1384
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1385 rru = cmd->params[1];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1386 url = cmd->params[2];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1387
23599
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1388 session->passport_info.mail_timestamp = time(NULL);
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1389 tmp_timestamp = session->passport_info.mail_timestamp - session->passport_info.sl;
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1390
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1391 buf = g_strdup_printf("%s%lu%s",
23732
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1392 session->passport_info.mspauth ? session->passport_info.mspauth : "BOGUS",
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1393 tmp_timestamp,
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1394 purple_connection_get_password(gc));
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1395
23599
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1396 cipher = purple_cipher_context_new_by_name("md5", NULL);
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1397 purple_cipher_context_append(cipher, (const guchar *)buf, strlen(buf));
23731
59f8890ae8cf Fix up the MSN Inbox URL. There was a typo that caused a use-after-free
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23657
diff changeset
1398 purple_cipher_context_digest_to_str(cipher, sizeof(creds), creds, NULL);
23599
ab70eae012f5 Fixup MSN mailbox handling based on a patch from Felipe, plus various
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23573
diff changeset
1399 purple_cipher_context_destroy(cipher);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1400 g_free(buf);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1401
23657
7f4b697c6947 Use a URL to open MSN Hotmail inbox instead of a temporary file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23656
diff changeset
1402 g_free(session->passport_info.mail_url);
23732
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1403 session->passport_info.mail_url =
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1404 g_strdup_printf("%s&auth=%s&creds=%s&sl=%ld&username=%s&mode=ttl&sid=%s&id=2&rru=%s&svc=mail&js=yes",
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1405 url,
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1406 session->passport_info.mspauth ? purple_url_encode(session->passport_info.mspauth) : "BOGUS",
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1407 creds,
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1408 tmp_timestamp,
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1409 msn_user_get_passport(session->user),
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1410 session->passport_info.sid,
4ca41efb75a7 Some whitespace changes to make code from that previous commit look better.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23731
diff changeset
1411 rru);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1412
23657
7f4b697c6947 Use a URL to open MSN Hotmail inbox instead of a temporary file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23656
diff changeset
1413 /* The user wants to check his or her email */
7f4b697c6947 Use a URL to open MSN Hotmail inbox instead of a temporary file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23656
diff changeset
1414 if (cmd->trans && cmd->trans->data)
7f4b697c6947 Use a URL to open MSN Hotmail inbox instead of a temporary file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23656
diff changeset
1415 purple_notify_uri(purple_account_get_connection(account), session->passport_info.mail_url);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1416 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1417 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1418 * Switchboards
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1419 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1420
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1421 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1422 rng_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1423 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1424 MsnSession *session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1425 MsnSwitchBoard *swboard;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1426 const char *session_id;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1427 char *host;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1428 int port;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1429
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1430 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1431 session_id = cmd->params[0];
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1432
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1433 msn_parse_socket(cmd->params[1], &host, &port);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1434
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1435 if (session->http_method)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1436 port = 80;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1437
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1438 swboard = msn_switchboard_new(session);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1439
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1440 msn_switchboard_set_invited(swboard, TRUE);
31344
ac9035aeb087 Remove dead assignments in new MSN code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31315
diff changeset
1441 msn_switchboard_set_session_id(swboard, session_id);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1442 msn_switchboard_set_auth_key(swboard, cmd->params[3]);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1443 swboard->im_user = g_strdup(cmd->params[4]);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1444 /* msn_switchboard_add_user(swboard, cmd->params[4]); */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1445
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1446 if (!msn_switchboard_connect(swboard, host, port))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1447 msn_switchboard_destroy(swboard);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1448
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1449 g_free(host);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1450 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1451
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1452 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1453 xfr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1454 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1455 char *host;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1456 int port;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1457
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1458 if (strcmp(cmd->params[1], "SB") && strcmp(cmd->params[1], "NS"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1459 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1460 /* Maybe we can have a generic bad command error. */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1461 purple_debug_error("msn", "Bad XFR command (%s)\n", cmd->params[1]);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1462 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1463 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1464
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1465 msn_parse_socket(cmd->params[2], &host, &port);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1466
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1467 if (!strcmp(cmd->params[1], "SB"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1468 {
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1469 purple_debug_error("msn", "This shouldn't be handled here.\n");
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1470 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1471 else if (!strcmp(cmd->params[1], "NS"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1472 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1473 MsnSession *session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1474
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1475 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1476
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1477 msn_session_set_login_step(session, MSN_LOGIN_STEP_TRANSFER);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1478
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1479 msn_notification_connect(session->notification, host, port);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1480 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1481
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1482 g_free(host);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1483 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1484
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1485 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1486 gcf_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1487 size_t len)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1488 {
23572
25aec47d9671 Disable the MSN blocked text dialog for now because it doesn't always
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23566
diff changeset
1489 /* QuLogic: Disabled until confirmed correct. */
25aec47d9671 Disable the MSN blocked text dialog for now because it doesn't always
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23566
diff changeset
1490 #if 0
23522
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1491 xmlnode *root;
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1492 xmlnode *policy;
20468
b888c2f15c79 Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20467
diff changeset
1493
b888c2f15c79 Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20467
diff changeset
1494 g_return_if_fail(cmd->payload != NULL);
b888c2f15c79 Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20467
diff changeset
1495
b888c2f15c79 Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20467
diff changeset
1496 if ( (root = xmlnode_from_str(cmd->payload, cmd->payload_len)) == NULL)
b888c2f15c79 Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20467
diff changeset
1497 {
26278
399776a9ad98 Add some missing newlines in debug messages.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25445
diff changeset
1498 purple_debug_error("msn", "Unable to parse GCF payload into a XML tree\n");
20468
b888c2f15c79 Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20467
diff changeset
1499 return;
b888c2f15c79 Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20467
diff changeset
1500 }
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
1501
23522
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1502
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1503 g_free(cmdproc->session->blocked_text);
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1504 cmdproc->session->blocked_text = NULL;
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1505
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1506 /* We need a get_child with attrib... */
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1507 policy = xmlnode_get_child(root, "Policy");
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1508 while (policy) {
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1509 if (g_str_equal(xmlnode_get_attrib(policy, "type"), "SHIELDS"))
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1510 break;
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1511 policy = xmlnode_get_next_twin(policy);
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1512 }
20468
b888c2f15c79 Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20467
diff changeset
1513
23522
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1514 if (policy) {
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1515 GString *blocked = g_string_new(NULL);
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1516 xmlnode *imtext = xmlnode_get_child(policy,
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1517 "config/block/regexp/imtext");
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1518 while (imtext) {
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1519 const char *value = xmlnode_get_attrib(imtext, "value");
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1520 g_string_append_printf(blocked, "%s<br/>\n",
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1521 purple_base64_decode(value, NULL));
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1522 imtext = xmlnode_get_next_twin(imtext);
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1523 }
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
1524
23522
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1525 cmdproc->session->blocked_text = g_string_free(blocked, FALSE);
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1526 }
fd124c21ebb7 Properly parse (most of) the MSN GCF command. Provides a
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23520
diff changeset
1527
20468
b888c2f15c79 Print the policies sent by the server (GCF command) in a human-readable way.
Carlos Silva <typ0@pidgin.im>
parents: 20467
diff changeset
1528 xmlnode_free(root);
23572
25aec47d9671 Disable the MSN blocked text dialog for now because it doesn't always
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23566
diff changeset
1529 #endif
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1530 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1531
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1532 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1533 gcf_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1534 {
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
1535 purple_debug_info("msn", "Processing GCF command\n");
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1536
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1537 cmdproc->last_cmd->payload_cb = gcf_cmd_post;
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1538 cmd->payload_len = atoi(cmd->params[1]);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1539 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1540
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1541 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1542 sbs_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1543 {
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
1544 purple_debug_info("msn", "Processing SBS... \n");
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1545 /*get the payload content*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1546 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1547
31103
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1548 static void
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1549 parse_user_endpoints(MsnUser *user, xmlnode *payloadNode)
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1550 {
31436
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1551 MsnSession *session;
31103
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1552 xmlnode *epNode, *capsNode;
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1553 MsnUserEndpoint data;
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1554 const char *id;
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1555 char *caps, *tmp;
31436
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1556 gboolean is_me;
31103
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1557
31107
40a3dbdcf958 Add a minor debug log.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31106
diff changeset
1558 purple_debug_info("msn", "Get EndpointData\n");
40a3dbdcf958 Add a minor debug log.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31106
diff changeset
1559
31436
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1560 session = user->userlist->session;
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1561 is_me = (user == session->user);
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1562
31434
7bf659dbacee Clear out the old list of endpoints when we receive a new one. This
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31432
diff changeset
1563 msn_user_clear_endpoints(user);
31103
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1564 for (epNode = xmlnode_get_child(payloadNode, "EndpointData");
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1565 epNode;
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1566 epNode = xmlnode_get_next_twin(epNode)) {
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1567 id = xmlnode_get_attrib(epNode, "id");
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1568 capsNode = xmlnode_get_child(epNode, "Capabilities");
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1569
31436
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1570 /* Disconnect others, if MPOP is disabled */
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1571 if (is_me
31453
388ca4797d7b Replace the mpop account setting with a session boolean, because I
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31436
diff changeset
1572 && !session->enable_mpop
31436
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1573 && strncasecmp(id + 1, session->guid, 36) != 0) {
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1574 purple_debug_info("msn", "Disconnecting Endpoint %s\n", id);
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1575
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1576 tmp = g_strdup_printf("%s;%s", user->passport, id);
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1577 msn_notification_send_uun(session, tmp, MSN_UNIFIED_NOTIFICATION_MPOP, "goawyplzthxbye");
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1578 g_free(tmp);
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1579 } else {
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1580 if (capsNode != NULL) {
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1581 caps = xmlnode_get_data(capsNode);
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1582
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1583 data.clientid = strtoul(caps, &tmp, 10);
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1584 if (tmp && *tmp)
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1585 data.extcaps = strtoul(tmp + 1, NULL, 10);
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1586 else
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1587 data.extcaps = 0;
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1588
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1589 g_free(caps);
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1590 } else {
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1591 data.clientid = 0;
31103
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1592 data.extcaps = 0;
31436
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1593 }
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1594
1546ad4f93b3 Disconnect other endpoints if the MPOP setting is disabled.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31434
diff changeset
1595 msn_user_set_endpoint_data(user, id, &data);
31103
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1596 }
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1597 }
31120
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1598
31453
388ca4797d7b Replace the mpop account setting with a session boolean, because I
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31436
diff changeset
1599 if (is_me && session->enable_mpop) {
31120
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1600 for (epNode = xmlnode_get_child(payloadNode, "PrivateEndpointData");
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1601 epNode;
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1602 epNode = xmlnode_get_next_twin(epNode)) {
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1603 MsnUserEndpoint *ep;
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1604 xmlnode *nameNode, *clientNode;
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1605
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1606 /* <PrivateEndpointData id='{GUID}'>
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1607 <EpName>Endpoint Name</EpName>
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1608 <Idle>true/false</Idle>
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1609 <ClientType>1</ClientType>
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1610 <State>NLN</State>
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1611 </PrivateEndpointData>
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1612 */
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1613 id = xmlnode_get_attrib(epNode, "id");
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1614 ep = msn_user_get_endpoint_data(user, id);
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1615
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1616 if (ep != NULL) {
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1617 nameNode = xmlnode_get_child(epNode, "EpName");
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1618 if (nameNode != NULL) {
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1619 g_free(ep->name);
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1620 ep->name = xmlnode_get_data(nameNode);
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1621 }
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1622
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1623 clientNode = xmlnode_get_child(epNode, "ClientType");
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1624 if (clientNode != NULL) {
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1625 tmp = xmlnode_get_data(clientNode);
31121
509c4ffff958 Fix a little argument swapping.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31120
diff changeset
1626 ep->type = strtoul(tmp, NULL, 10);
31120
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1627 g_free(tmp);
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1628 }
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1629 }
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1630 }
f56126c5aa44 Save PrivateEndpointData that we've received. I think this only applies to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31109
diff changeset
1631 }
31103
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1632 }
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1633
29368
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1634 static void parse_currentmedia(MsnUser *user, const char *cmedia)
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1635 {
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1636 char **cmedia_array;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1637 int strings = 0;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1638
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1639 if (!cmedia || cmedia[0] == '\0') {
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1640 purple_debug_info("msn", "No currentmedia string\n");
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1641 return;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1642 }
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1643
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1644 purple_debug_info("msn", "Parsing currentmedia string: \"%s\"\n", cmedia);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1645
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1646 cmedia_array = g_strsplit(cmedia, "\\0", 0);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1647
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1648 /*
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1649 * 0: Application
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1650 * 1: 'Music'/'Games'/'Office'
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1651 * 2: '1' if enabled, '0' if not
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1652 * 3: Format (eg. {0} by {1})
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1653 * 4: Title
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1654 * If 'Music':
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1655 * 5: Artist
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1656 * 6: Album
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1657 * 7: ?
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1658 */
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1659 strings = g_strv_length(cmedia_array);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1660
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1661 if (strings >= 4 && !strcmp(cmedia_array[2], "1")) {
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1662 if (user->extinfo == NULL)
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1663 user->extinfo = g_new0(MsnUserExtendedInfo, 1);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1664 else {
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1665 g_free(user->extinfo->media_album);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1666 g_free(user->extinfo->media_artist);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1667 g_free(user->extinfo->media_title);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1668 }
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1669
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1670 if (!strcmp(cmedia_array[1], "Music"))
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1671 user->extinfo->media_type = CURRENT_MEDIA_MUSIC;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1672 else if (!strcmp(cmedia_array[1], "Games"))
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1673 user->extinfo->media_type = CURRENT_MEDIA_GAMES;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1674 else if (!strcmp(cmedia_array[1], "Office"))
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1675 user->extinfo->media_type = CURRENT_MEDIA_OFFICE;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1676 else
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1677 user->extinfo->media_type = CURRENT_MEDIA_UNKNOWN;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1678
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1679 user->extinfo->media_title = g_strdup(cmedia_array[strings == 4 ? 3 : 4]);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1680 user->extinfo->media_artist = strings > 5 ? g_strdup(cmedia_array[5]) : NULL;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1681 user->extinfo->media_album = strings > 6 ? g_strdup(cmedia_array[6]) : NULL;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1682 }
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1683
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1684 g_strfreev(cmedia_array);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1685 }
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1686
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1687 /*
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1688 * Get the UBX's PSM info
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1689 * Post it to the User status
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1690 * Thanks for Chris <ukdrizzle@yahoo.co.uk>'s code
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1691 */
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1692 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1693 ubx_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1694 size_t len)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1695 {
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1696 MsnSession *session;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1697 MsnUser *user;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1698 const char *passport;
31101
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1699 xmlnode *payloadNode;
20570
5913725cbcd6 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20514
diff changeset
1700 char *psm_str, *str;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1701
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1702 session = cmdproc->session;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1703
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1704 passport = cmd->params[0];
31469
78dccab9824c Add the session user to the userlist. This reduces the amount of
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31468
diff changeset
1705 user = msn_userlist_find_user(session->userlist, passport);
23918
b8d38a11f9c6 prints out the payload to debug log in case we get an invalid UBX command,
Ka-Hing Cheung <khc@hxbc.us>
parents: 23863
diff changeset
1706 if (user == NULL) {
b8d38a11f9c6 prints out the payload to debug log in case we get an invalid UBX command,
Ka-Hing Cheung <khc@hxbc.us>
parents: 23863
diff changeset
1707 char *str = g_strndup(payload, len);
26278
399776a9ad98 Add some missing newlines in debug messages.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25445
diff changeset
1708 purple_debug_info("msn", "unknown user %s, payload is %s\n",
23918
b8d38a11f9c6 prints out the payload to debug log in case we get an invalid UBX command,
Ka-Hing Cheung <khc@hxbc.us>
parents: 23863
diff changeset
1709 passport, str);
b8d38a11f9c6 prints out the payload to debug log in case we get an invalid UBX command,
Ka-Hing Cheung <khc@hxbc.us>
parents: 23863
diff changeset
1710 g_free(str);
b8d38a11f9c6 prints out the payload to debug log in case we get an invalid UBX command,
Ka-Hing Cheung <khc@hxbc.us>
parents: 23863
diff changeset
1711 return;
b8d38a11f9c6 prints out the payload to debug log in case we get an invalid UBX command,
Ka-Hing Cheung <khc@hxbc.us>
parents: 23863
diff changeset
1712 }
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
1713
29368
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1714 /* Free any existing media info for this user */
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1715 if (user->extinfo) {
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1716 g_free(user->extinfo->media_album);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1717 g_free(user->extinfo->media_artist);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1718 g_free(user->extinfo->media_title);
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1719 user->extinfo->media_album = NULL;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1720 user->extinfo->media_artist = NULL;
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1721 user->extinfo->media_title = NULL;
30565
137d464440f7 Correctly reset and free user->extinfo when the buddy is not listening to
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30564
diff changeset
1722 user->extinfo->media_type = CURRENT_MEDIA_UNKNOWN;
29368
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1723 }
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1724
25094
11458e8584c2 Set a NULL statusline and CurrentMedia if the UBX returns an empty payload,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25040
diff changeset
1725 if (len != 0) {
31101
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1726 payloadNode = xmlnode_from_str(payload, len);
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1727 if (!payloadNode) {
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1728 purple_debug_error("msn", "UBX XML parse Error!\n");
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1729
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1730 msn_user_set_statusline(user, NULL);
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1731
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1732 msn_user_update(user);
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1733 return;
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1734 }
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1735
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1736 psm_str = msn_get_psm(payloadNode);
25094
11458e8584c2 Set a NULL statusline and CurrentMedia if the UBX returns an empty payload,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25040
diff changeset
1737 msn_user_set_statusline(user, psm_str);
11458e8584c2 Set a NULL statusline and CurrentMedia if the UBX returns an empty payload,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25040
diff changeset
1738 g_free(psm_str);
20570
5913725cbcd6 Use an independant status type for 'current media' stuff, instead of using
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20514
diff changeset
1739
31101
3140627b93e7 Avoid calling xmlnode_from_str twice when parsing the UBX data.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31099
diff changeset
1740 str = msn_get_currentmedia(payloadNode);
29368
746bf7d8b34e Combine the CurrentMedia and MsnUserPhoneInfo structs. This makes
Mark Doliner <mark@kingant.net>
parents: 29351
diff changeset
1741 parse_currentmedia(user, str);
25094
11458e8584c2 Set a NULL statusline and CurrentMedia if the UBX returns an empty payload,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25040
diff changeset
1742 g_free(str);
11458e8584c2 Set a NULL statusline and CurrentMedia if the UBX returns an empty payload,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25040
diff changeset
1743
31103
60688353c010 Attempt to parse any EndpointData out of the UBX payload. This isn't really
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31101
diff changeset
1744 parse_user_endpoints(user, payloadNode);
31106
1019ec61967a Call xmlnode_free in the correct location.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31105
diff changeset
1745
1019ec61967a Call xmlnode_free in the correct location.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31105
diff changeset
1746 xmlnode_free(payloadNode);
1019ec61967a Call xmlnode_free in the correct location.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31105
diff changeset
1747
25094
11458e8584c2 Set a NULL statusline and CurrentMedia if the UBX returns an empty payload,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25040
diff changeset
1748 } else {
11458e8584c2 Set a NULL statusline and CurrentMedia if the UBX returns an empty payload,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25040
diff changeset
1749 msn_user_set_statusline(user, NULL);
11458e8584c2 Set a NULL statusline and CurrentMedia if the UBX returns an empty payload,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25040
diff changeset
1750 }
19797
60bc06498746 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@hxbc.us>
parents: 16063
diff changeset
1751
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1752 msn_user_update(user);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1753 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1754
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1755 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1756 ubx_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1757 {
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
1758 purple_debug_misc("msn", "UBX received.\n");
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1759 cmdproc->last_cmd->payload_cb = ubx_cmd_post;
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1760 cmd->payload_len = atoi(cmd->params[2]);
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1761 }
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1762
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1763 static void
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1764 uux_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1765 size_t len)
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1766 {
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1767 /* Do Nothing, right now. */
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1768 if (payload != NULL)
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1769 purple_debug_info("msn", "UUX payload:\n%s\n", payload);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1770 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1771
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1772 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1773 uux_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1774 {
23559
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1775 purple_debug_misc("msn", "UUX received.\n");
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1776 cmdproc->last_cmd->payload_cb = uux_cmd_post;
7e16d193bb57 Get rid of that whole msn_set_payload_len thing and correctly set the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23557
diff changeset
1777 cmd->payload_len = atoi(cmd->params[1]);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1778 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1779
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1780 void
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1781 msn_notification_send_uux(MsnSession *session, const char *payload)
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1782 {
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1783 MsnTransaction *trans;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1784 MsnCmdProc *cmdproc;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1785 size_t len = strlen(payload);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1786
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1787 cmdproc = session->notification->cmdproc;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1788 purple_debug_misc("msn", "Sending UUX command with payload: %s\n", payload);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1789 trans = msn_transaction_new(cmdproc, "UUX", "%" G_GSIZE_FORMAT, len);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1790 msn_transaction_set_payload(trans, payload, len);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1791 msn_cmdproc_send_trans(cmdproc, trans);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1792 }
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1793
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1794 void msn_notification_send_uux_endpointdata(MsnSession *session)
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1795 {
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1796 xmlnode *epDataNode;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1797 xmlnode *capNode;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1798 char *caps;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1799 char *payload;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1800 int length;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1801
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1802 epDataNode = xmlnode_new("EndpointData");
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1803
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1804 capNode = xmlnode_new_child(epDataNode, "Capabilities");
31313
c49697f075cf applied changes from cc2567c1558bffb058fda6a6319faf70206a8c34
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31312
diff changeset
1805 if (session->protocol_ver >= 16)
c49697f075cf applied changes from cc2567c1558bffb058fda6a6319faf70206a8c34
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31312
diff changeset
1806 caps = g_strdup_printf("%d:%02d", MSN_CLIENT_ID_CAPABILITIES, MSN_CLIENT_ID_EXT_CAPS);
c49697f075cf applied changes from cc2567c1558bffb058fda6a6319faf70206a8c34
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31312
diff changeset
1807 else
c49697f075cf applied changes from cc2567c1558bffb058fda6a6319faf70206a8c34
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31312
diff changeset
1808 caps = g_strdup_printf("%d", MSN_CLIENT_ID_CAPABILITIES);
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1809 xmlnode_insert_data(capNode, caps, -1);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1810 g_free(caps);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1811
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1812 payload = xmlnode_to_str(epDataNode, &length);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1813
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1814 msn_notification_send_uux(session, payload);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1815
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1816 xmlnode_free(epDataNode);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1817 g_free(payload);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1818 }
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1819
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1820 void msn_notification_send_uux_private_endpointdata(MsnSession *session)
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1821 {
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1822 xmlnode *private;
31123
dd430f788bdc Allow setting the name of the current location. The default is still Pidgin
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31122
diff changeset
1823 const char *name;
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1824 xmlnode *epname;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1825 xmlnode *idle;
31124
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1826 GHashTable *ui_info;
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1827 const gchar *ui_type;
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1828 xmlnode *client_type;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1829 xmlnode *state;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1830 char *payload;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1831 int length;
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1832
31122
b4dc2d27f24e Fix typo in PrivateEndpointData, resulting in the name of the endpoint
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31121
diff changeset
1833 private = xmlnode_new("PrivateEndpointData");
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1834
31123
dd430f788bdc Allow setting the name of the current location. The default is still Pidgin
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31122
diff changeset
1835 name = purple_account_get_string(session->account, "endpoint-name", NULL);
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1836 epname = xmlnode_new_child(private, "EpName");
31123
dd430f788bdc Allow setting the name of the current location. The default is still Pidgin
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31122
diff changeset
1837 xmlnode_insert_data(epname, name, -1);
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1838
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1839 idle = xmlnode_new_child(private, "Idle");
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1840 xmlnode_insert_data(idle, "false", -1);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1841
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1842 /* ClientType info (from amsn guys):
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1843 0: None
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1844 1: Computer
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1845 2: Website
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1846 3: Mobile / none
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1847 4: Xbox / phone /mobile
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1848 9: MsnGroup
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1849 32: Email member, currently Yahoo!
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1850 */
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1851 client_type = xmlnode_new_child(private, "ClientType");
31124
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1852 ui_info = purple_core_get_ui_info();
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1853 ui_type = ui_info ? g_hash_table_lookup(ui_info, "client_type") : NULL;
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1854 if (ui_type) {
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1855 if (strcmp(ui_type, "pc") == 0)
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1856 xmlnode_insert_data(client_type, "1", -1);
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1857 else if (strcmp(ui_type, "web") == 0)
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1858 xmlnode_insert_data(client_type, "2", -1);
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1859 else if (strcmp(ui_type, "phone") == 0)
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1860 xmlnode_insert_data(client_type, "3", -1);
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1861 else if (strcmp(ui_type, "handheld") == 0)
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1862 xmlnode_insert_data(client_type, "3", -1);
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1863 else
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1864 xmlnode_insert_data(client_type, "1", -1);
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1865 }
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1866 else
c1e44e9a1110 Support sending different client types in PrivateEndpointData.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31123
diff changeset
1867 xmlnode_insert_data(client_type, "1", -1);
31095
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1868
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1869 state = xmlnode_new_child(private, "State");
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1870 xmlnode_insert_data(state, msn_state_get_text(msn_state_from_account(session->account)), -1);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1871
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1872 payload = xmlnode_to_str(private, &length);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1873
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1874 msn_notification_send_uux(session, payload);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1875
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1876 xmlnode_free(private);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1877 g_free(payload);
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1878 }
e30865b62859 Initial support for msnp16, based on patch by Masca.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29049
diff changeset
1879
31125
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1880 static void
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1881 ubn_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1882 size_t len)
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1883 {
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1884 /* Do Nothing, right now. */
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1885 if (payload != NULL)
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1886 purple_debug_info("msn", "UBN payload:\n%s\n", payload);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1887 }
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1888
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1889 static void
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1890 ubn_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1891 {
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1892 purple_debug_misc("msn", "UBN received from %s.\n", cmd->params[0]);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1893 cmdproc->last_cmd->payload_cb = ubn_cmd_post;
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1894 cmd->payload_len = atoi(cmd->params[2]);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1895 }
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1896
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1897 static void
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1898 uun_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload,
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1899 size_t len)
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1900 {
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1901 /* Do Nothing, right now. */
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1902 if (payload != NULL)
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1903 purple_debug_info("msn", "UUN payload:\n%s\n", payload);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1904 }
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1905
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1906 static void
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1907 uun_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd)
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1908 {
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1909 if (strcmp(cmd->params[1], "OK") != 0) {
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1910 purple_debug_misc("msn", "UUN received.\n");
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1911 cmdproc->last_cmd->payload_cb = uun_cmd_post;
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1912 cmd->payload_len = atoi(cmd->params[1]);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1913 }
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1914 else
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1915 purple_debug_misc("msn", "UUN OK received.\n");
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1916 }
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1917
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1918 void
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1919 msn_notification_send_uun(MsnSession *session, const char *user,
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1920 MsnUnifiedNotificationType type, const char *payload)
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1921 {
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1922 MsnTransaction *trans;
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1923 MsnCmdProc *cmdproc;
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1924 size_t len = strlen(payload);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1925
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1926 cmdproc = session->notification->cmdproc;
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1927 purple_debug_misc("msn", "Sending UUN command %d to %s with payload: %s\n",
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1928 type, user, payload);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1929 trans = msn_transaction_new(cmdproc, "UUN", "%s %d %" G_GSIZE_FORMAT,
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1930 user, type, len);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1931 msn_transaction_set_payload(trans, payload, len);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1932 msn_cmdproc_send_trans(cmdproc, trans);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1933 }
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
1934
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1935 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1936 * Message Types
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1937 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1938
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1939 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1940 profile_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1941 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1942 MsnSession *session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1943 const char *value;
30863
351d07aefb09 Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30857
diff changeset
1944 #ifdef MSN_PARTIAL_LISTS
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1945 const char *clLastChange;
30863
351d07aefb09 Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30857
diff changeset
1946 #endif
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1947
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1948 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1949
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1950 if (strcmp(msg->remote_user, "Hotmail"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1951 /* This isn't an official message. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1952 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1953
31132
33b4ae796648 Rename "attribute" to "header" in a bunch of places. The SLP protocol
Mark Doliner <mark@kingant.net>
parents: 31130
diff changeset
1954 if ((value = msn_message_get_header_value(msg, "sid")) != NULL)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1955 {
16855
2afea2b41cab Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16854
diff changeset
1956 g_free(session->passport_info.sid);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1957 session->passport_info.sid = g_strdup(value);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1958 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1959
31132
33b4ae796648 Rename "attribute" to "header" in a bunch of places. The SLP protocol
Mark Doliner <mark@kingant.net>
parents: 31130
diff changeset
1960 if ((value = msn_message_get_header_value(msg, "MSPAuth")) != NULL)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1961 {
16855
2afea2b41cab Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16854
diff changeset
1962 g_free(session->passport_info.mspauth);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1963 session->passport_info.mspauth = g_strdup(value);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1964 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1965
31132
33b4ae796648 Rename "attribute" to "header" in a bunch of places. The SLP protocol
Mark Doliner <mark@kingant.net>
parents: 31130
diff changeset
1966 if ((value = msn_message_get_header_value(msg, "ClientIP")) != NULL)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1967 {
16855
2afea2b41cab Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16854
diff changeset
1968 g_free(session->passport_info.client_ip);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1969 session->passport_info.client_ip = g_strdup(value);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1970 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1971
31132
33b4ae796648 Rename "attribute" to "header" in a bunch of places. The SLP protocol
Mark Doliner <mark@kingant.net>
parents: 31130
diff changeset
1972 if ((value = msn_message_get_header_value(msg, "ClientPort")) != NULL)
20399
6f986caeab59 merge of 'b4911943cba6f29cf0694dfd563cac17612236dc'
Richard Laager <rlaager@wiktel.com>
parents: 19797 20394
diff changeset
1973 {
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1974 session->passport_info.client_port = ntohs(atoi(value));
19797
60bc06498746 Committing khc's msnp14 changes from Trac Ticket #148. --rlaager
Ka-Hing Cheung <khc@hxbc.us>
parents: 16063
diff changeset
1975 }
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1976
31132
33b4ae796648 Rename "attribute" to "header" in a bunch of places. The SLP protocol
Mark Doliner <mark@kingant.net>
parents: 31130
diff changeset
1977 if ((value = msn_message_get_header_value(msg, "LoginTime")) != NULL)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1978 session->passport_info.sl = atol(value);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1979
31132
33b4ae796648 Rename "attribute" to "header" in a bunch of places. The SLP protocol
Mark Doliner <mark@kingant.net>
parents: 31130
diff changeset
1980 if ((value = msn_message_get_header_value(msg, "EmailEnabled")) != NULL)
23656
b2609fca4943 Use "EmailEnabled" from the MSN profile message to determine whether
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23615
diff changeset
1981 session->passport_info.email_enabled = (gboolean)atol(value);
b2609fca4943 Use "EmailEnabled" from the MSN profile message to determine whether
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23615
diff changeset
1982
30863
351d07aefb09 Kill off many dead assignments and any useless remaining variables.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30857
diff changeset
1983 #ifdef MSN_PARTIAL_LISTS
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
1984 /*starting retrieve the contact list*/
20440
5ecaa00090d7 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <stu@nosnilmot.com>
parents: 20439
diff changeset
1985 clLastChange = purple_account_get_string(session->account, "CLLastChange", NULL);
5ecaa00090d7 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <stu@nosnilmot.com>
parents: 20439
diff changeset
1986 /* msn_userlist_load defeats all attempts at trying to detect blist sync issues */
5ecaa00090d7 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <stu@nosnilmot.com>
parents: 20439
diff changeset
1987 msn_userlist_load(session);
23504
69af5301e1a7 killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@hxbc.us>
parents: 23503
diff changeset
1988 msn_get_contact_list(session, MSN_PS_INITIAL, clLastChange);
20440
5ecaa00090d7 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <stu@nosnilmot.com>
parents: 20439
diff changeset
1989 #else
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
1990 /* always get the full list? */
23504
69af5301e1a7 killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@hxbc.us>
parents: 23503
diff changeset
1991 msn_get_contact_list(session, MSN_PS_INITIAL, NULL);
20440
5ecaa00090d7 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <stu@nosnilmot.com>
parents: 20439
diff changeset
1992 #endif
5ecaa00090d7 Always get the full contact list too, as we need it for the reverse list
Stu Tomlinson <stu@nosnilmot.com>
parents: 20439
diff changeset
1993 #if 0
23504
69af5301e1a7 killing MsnContact which just wraps MsnSession
Ka-Hing Cheung <khc@hxbc.us>
parents: 23503
diff changeset
1994 msn_contact_connect(session);
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
1995 #endif
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1996 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1997
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1998 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1999 initial_email_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2000 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2001 MsnSession *session;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2002 PurpleConnection *gc;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2003 GHashTable *table;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2004 const char *unread;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2005
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2006 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2007 gc = session->account->gc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2008
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2009 if (strcmp(msg->remote_user, "Hotmail"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2010 /* This isn't an official message. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2011 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2012
23657
7f4b697c6947 Use a URL to open MSN Hotmail inbox instead of a temporary file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23656
diff changeset
2013 if (session->passport_info.mail_url == NULL)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2014 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2015 MsnTransaction *trans;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2016 trans = msn_transaction_new(cmdproc, "URL", "%s", "INBOX");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2017 msn_transaction_queue_cmd(trans, msg->cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2018
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2019 msn_cmdproc_send_trans(cmdproc, trans);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2020
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2021 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2022 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2023
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2024 if (!purple_account_get_check_mail(session->account))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2025 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2026
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2027 table = msn_message_get_hashtable_from_body(msg);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2028
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2029 unread = g_hash_table_lookup(table, "Inbox-Unread");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2030
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2031 if (unread != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2032 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2033 int count = atoi(unread);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2034
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2035 if (count > 0)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2036 {
25891
2260e5b0ca91 *** Plucked rev f9080d0b (khc@pidgin.im):
Paul Aurich <paul@darkrain42.org>
parents: 25888
diff changeset
2037 const char *passports[2] = { msn_user_get_passport(session->user) };
2260e5b0ca91 *** Plucked rev f9080d0b (khc@pidgin.im):
Paul Aurich <paul@darkrain42.org>
parents: 25888
diff changeset
2038 const char *urls[2] = { session->passport_info.mail_url };
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2039
21767
7ac87187bbec Don't show a 'you ain't got no new mail' notification.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21672
diff changeset
2040 purple_notify_emails(gc, count, FALSE, NULL, NULL,
25891
2260e5b0ca91 *** Plucked rev f9080d0b (khc@pidgin.im):
Paul Aurich <paul@darkrain42.org>
parents: 25888
diff changeset
2041 passports, urls, NULL, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2042 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2043 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2044
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2045 g_hash_table_destroy(table);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2046 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2047
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2048 /*offline Message notification process*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2049 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2050 initial_mdata_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2051 {
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2052 MsnSession *session;
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2053 PurpleConnection *gc;
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2054 GHashTable *table;
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2055 const char *mdata, *unread;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2056
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2057 session = cmdproc->session;
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2058 gc = session->account->gc;
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2059
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2060 if (strcmp(msg->remote_user, "Hotmail"))
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2061 /* This isn't an official message. */
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2062 return;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2063
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2064 table = msn_message_get_hashtable_from_body(msg);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2065
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2066 mdata = g_hash_table_lookup(table, "Mail-Data");
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2067
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2068 if (mdata != NULL)
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2069 msn_parse_oim_msg(session->oim, mdata);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2070
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2071 if (g_hash_table_lookup(table, "Inbox-URL") == NULL)
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2072 {
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2073 g_hash_table_destroy(table);
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2074 return;
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2075 }
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2076
23657
7f4b697c6947 Use a URL to open MSN Hotmail inbox instead of a temporary file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23656
diff changeset
2077 if (session->passport_info.mail_url == NULL)
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2078 {
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2079 MsnTransaction *trans;
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2080 trans = msn_transaction_new(cmdproc, "URL", "%s", "INBOX");
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2081 msn_transaction_queue_cmd(trans, msg->cmd);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2082
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2083 msn_cmdproc_send_trans(cmdproc, trans);
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2084
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2085 g_hash_table_destroy(table);
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2086 return;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2087 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2088
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2089 if (!purple_account_get_check_mail(session->account))
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2090 {
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2091 g_hash_table_destroy(table);
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2092 return;
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2093 }
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2094
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2095 unread = g_hash_table_lookup(table, "Inbox-Unread");
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2096
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2097 if (unread != NULL)
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2098 {
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2099 int count = atoi(unread);
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2100
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2101 if (count > 0)
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2102 {
25891
2260e5b0ca91 *** Plucked rev f9080d0b (khc@pidgin.im):
Paul Aurich <paul@darkrain42.org>
parents: 25888
diff changeset
2103 const char *passports[2] = { msn_user_get_passport(session->user) };
2260e5b0ca91 *** Plucked rev f9080d0b (khc@pidgin.im):
Paul Aurich <paul@darkrain42.org>
parents: 25888
diff changeset
2104 const char *urls[2] = { session->passport_info.mail_url };
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2105
21767
7ac87187bbec Don't show a 'you ain't got no new mail' notification.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 21672
diff changeset
2106 purple_notify_emails(gc, count, FALSE, NULL, NULL,
25891
2260e5b0ca91 *** Plucked rev f9080d0b (khc@pidgin.im):
Paul Aurich <paul@darkrain42.org>
parents: 25888
diff changeset
2107 passports, urls, NULL, NULL);
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2108 }
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2109 }
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2110
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2111 g_hash_table_destroy(table);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2112 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2113
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2114 /*offline Message Notification*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2115 static void
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2116 delete_oim_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2117 {
23564
7bceac816e19 The great MSN debug message cleanup! Threw in a few whitespace fixes,
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23562
diff changeset
2118 purple_debug_misc("msn", "Delete OIM message.\n");
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2119 }
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2120
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2121 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2122 email_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2123 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2124 MsnSession *session;
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2125 PurpleConnection *gc;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2126 GHashTable *table;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2127 char *from, *subject, *tmp;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2128
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2129 session = cmdproc->session;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2130 gc = session->account->gc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2131
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2132 if (strcmp(msg->remote_user, "Hotmail"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2133 /* This isn't an official message. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2134 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2135
23657
7f4b697c6947 Use a URL to open MSN Hotmail inbox instead of a temporary file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23656
diff changeset
2136 if (session->passport_info.mail_url == NULL)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2137 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2138 MsnTransaction *trans;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2139 trans = msn_transaction_new(cmdproc, "URL", "%s", "INBOX");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2140 msn_transaction_queue_cmd(trans, msg->cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2141
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2142 msn_cmdproc_send_trans(cmdproc, trans);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2143
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2144 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2145 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2146
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2147 if (!purple_account_get_check_mail(session->account))
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2148 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2149
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2150 table = msn_message_get_hashtable_from_body(msg);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2151
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2152 from = subject = NULL;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2153
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2154 tmp = g_hash_table_lookup(table, "From");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2155 if (tmp != NULL)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2156 from = purple_mime_decode_field(tmp);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2157
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2158 tmp = g_hash_table_lookup(table, "Subject");
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2159 if (tmp != NULL)
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2160 subject = purple_mime_decode_field(tmp);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2161
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2162 purple_notify_email(gc,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2163 (subject != NULL ? subject : ""),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2164 (from != NULL ? from : ""),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2165 msn_user_get_passport(session->user),
23657
7f4b697c6947 Use a URL to open MSN Hotmail inbox instead of a temporary file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23656
diff changeset
2166 session->passport_info.mail_url, NULL, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2167
16855
2afea2b41cab Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16854
diff changeset
2168 g_free(from);
2afea2b41cab Remove a bunch of unnecessary NULL checking for g_free()
Daniel Atallah <daniel.atallah@gmail.com>
parents: 16854
diff changeset
2169 g_free(subject);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2170
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2171 g_hash_table_destroy(table);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2172 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2173
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2174 static void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2175 system_msg(MsnCmdProc *cmdproc, MsnMessage *msg)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2176 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2177 GHashTable *table;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2178 const char *type_s;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2179
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2180 if (strcmp(msg->remote_user, "Hotmail"))
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2181 /* This isn't an official message. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2182 return;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2183
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2184 table = msn_message_get_hashtable_from_body(msg);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2185
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2186 if ((type_s = g_hash_table_lookup(table, "Type")) != NULL)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2187 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2188 int type = atoi(type_s);
30857
cb16239deeec Fix possible garbage value.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30696
diff changeset
2189 char buf[MSN_BUF_LEN] = "";
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2190 int minutes;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2191
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2192 switch (type)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2193 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2194 case 1:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2195 minutes = atoi(g_hash_table_lookup(table, "Arg1"));
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
2196 g_snprintf(buf, sizeof(buf), dngettext(PACKAGE,
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2197 "The MSN server will shut down for maintenance "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2198 "in %d minute. You will automatically be "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2199 "signed out at that time. Please finish any "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2200 "conversations in progress.\n\nAfter the "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2201 "maintenance has been completed, you will be "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2202 "able to successfully sign in.",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2203 "The MSN server will shut down for maintenance "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2204 "in %d minutes. You will automatically be "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2205 "signed out at that time. Please finish any "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2206 "conversations in progress.\n\nAfter the "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2207 "maintenance has been completed, you will be "
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2208 "able to successfully sign in.", minutes),
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2209 minutes);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2210 default:
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2211 break;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2212 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2213
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2214 if (*buf != '\0')
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
2215 purple_notify_info(cmdproc->session->account->gc, NULL, buf, NULL);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2216 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2217
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2218 g_hash_table_destroy(table);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2219 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2220
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2221 /**************************************************************************
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2222 * Dispatch server list management
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2223 **************************************************************************/
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2224 typedef struct MsnAddRemoveListData {
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2225 MsnCmdProc *cmdproc;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2226 MsnUser *user;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2227 MsnListOp list_op;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2228 gboolean add;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2229 } MsnAddRemoveListData;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2230
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2231 static void
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2232 modify_unknown_buddy_on_list(MsnSession *session, const char *passport,
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2233 MsnNetwork network, gpointer data)
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2234 {
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2235 MsnAddRemoveListData *addrem = data;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2236 MsnCmdProc *cmdproc;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2237 xmlnode *node;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2238 char *payload;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2239 int payload_len;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2240
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2241 cmdproc = addrem->cmdproc;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2242
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2243 /* Update user first */
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2244 msn_user_set_network(addrem->user, network);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2245
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2246 node = xmlnode_new("ml");
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2247 node->child = NULL;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2248
30695
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
2249 msn_add_contact_xml(node, passport, addrem->list_op, network);
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2250
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2251 payload = xmlnode_to_str(node, &payload_len);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2252 xmlnode_free(node);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2253
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2254 if (addrem->add)
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2255 msn_notification_post_adl(cmdproc, payload, payload_len);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2256 else
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2257 msn_notification_post_rml(cmdproc, payload, payload_len);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2258
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2259 g_free(payload);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2260 g_free(addrem);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2261 }
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2262
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2263 void
20481
eb93710aec4d 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: 20477
diff changeset
2264 msn_notification_add_buddy_to_list(MsnNotification *notification, MsnListId list_id,
24671
d6de4f9de12d Make the add/remove buddy from list functions take a MsnUser* instead of the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24463
diff changeset
2265 MsnUser *user)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2266 {
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2267 MsnAddRemoveListData *addrem;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2268 MsnCmdProc *cmdproc;
20481
eb93710aec4d 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: 20477
diff changeset
2269 MsnListOp list_op = 1 << list_id;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2270 xmlnode *adl_node;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2271 char *payload;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2272 int payload_len;
20488
64c322c3b1b0 Some more cleanups
Carlos Silva <typ0@pidgin.im>
parents: 20486
diff changeset
2273
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2274 cmdproc = notification->servconn->cmdproc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2275
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2276 adl_node = xmlnode_new("ml");
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2277 adl_node->child = NULL;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2278
30695
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
2279 msn_add_contact_xml(adl_node, user->passport, list_op, user->networkid);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2280
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2281 payload = xmlnode_to_str(adl_node, &payload_len);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2282 xmlnode_free(adl_node);
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
2283
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2284 if (user->networkid != MSN_NETWORK_UNKNOWN) {
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2285 msn_notification_post_adl(cmdproc, payload, payload_len);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2286
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2287 } else {
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2288 addrem = g_new(MsnAddRemoveListData, 1);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2289 addrem->cmdproc = cmdproc;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2290 addrem->user = user;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2291 addrem->list_op = list_op;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2292 addrem->add = TRUE;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2293
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2294 msn_notification_send_fqy(notification->session, payload, payload_len,
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2295 modify_unknown_buddy_on_list, addrem);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2296 }
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2297
20504
d23c3a5884ee Make the buddylist sync issue a little less worse.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20495
diff changeset
2298 g_free(payload);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2299 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2300
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2301 void
20481
eb93710aec4d 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: 20477
diff changeset
2302 msn_notification_rem_buddy_from_list(MsnNotification *notification, MsnListId list_id,
24671
d6de4f9de12d Make the add/remove buddy from list functions take a MsnUser* instead of the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 24463
diff changeset
2303 MsnUser *user)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2304 {
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2305 MsnAddRemoveListData *addrem;
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2306 MsnCmdProc *cmdproc;
20481
eb93710aec4d 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: 20477
diff changeset
2307 MsnListOp list_op = 1 << list_id;
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2308 xmlnode *rml_node;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2309 char *payload;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2310 int payload_len;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2311
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2312 cmdproc = notification->servconn->cmdproc;
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2313
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2314 rml_node = xmlnode_new("ml");
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2315 rml_node->child = NULL;
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2316
30695
3ff6c193efee The session parameter appears unused in msn_add_contact_xml.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 30576
diff changeset
2317 msn_add_contact_xml(rml_node, user->passport, list_op, user->networkid);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2318
20481
eb93710aec4d 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: 20477
diff changeset
2319 payload = xmlnode_to_str(rml_node, &payload_len);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2320 xmlnode_free(rml_node);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2321
25918
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2322 if (user->networkid != MSN_NETWORK_UNKNOWN) {
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2323 msn_notification_post_rml(cmdproc, payload, payload_len);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2324
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2325 } else {
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2326 addrem = g_new(MsnAddRemoveListData, 1);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2327 addrem->cmdproc = cmdproc;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2328 addrem->user = user;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2329 addrem->list_op = list_op;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2330 addrem->add = FALSE;
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2331
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2332 msn_notification_send_fqy(notification->session, payload, payload_len,
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2333 modify_unknown_buddy_on_list, addrem);
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2334 }
c384d62009c0 *** Plucked rev b932d4f94f9c771877b6a8a6a1d7dd3ea9c08005 (qulogic@pidgin.im):
Ka-Hing Cheung <khc@hxbc.us>
parents: 25891
diff changeset
2335
20504
d23c3a5884ee Make the buddylist sync issue a little less worse.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20495
diff changeset
2336 g_free(payload);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2337 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2338
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2339 /**************************************************************************
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2340 * Init
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2341 **************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2342 void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2343 msn_notification_init(void)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2344 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2345 cbs_table = msn_table_new();
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2346
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2347 /* Synchronous */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2348 msn_table_add_cmd(cbs_table, "CHG", "CHG", NULL);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2349 msn_table_add_cmd(cbs_table, "CHG", "ILN", iln_cmd);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2350 msn_table_add_cmd(cbs_table, "ADL", "ILN", iln_cmd);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2351 msn_table_add_cmd(cbs_table, "USR", "USR", usr_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2352 msn_table_add_cmd(cbs_table, "USR", "XFR", xfr_cmd);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2353 msn_table_add_cmd(cbs_table, "USR", "GCF", gcf_cmd);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2354 msn_table_add_cmd(cbs_table, "CVR", "CVR", cvr_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2355 msn_table_add_cmd(cbs_table, "VER", "VER", ver_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2356 msn_table_add_cmd(cbs_table, "PRP", "PRP", prp_cmd);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2357 msn_table_add_cmd(cbs_table, "BLP", "BLP", blp_cmd);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2358 msn_table_add_cmd(cbs_table, "XFR", "XFR", xfr_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2359
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2360 /* Asynchronous */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2361 msn_table_add_cmd(cbs_table, NULL, "IPG", ipg_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2362 msn_table_add_cmd(cbs_table, NULL, "MSG", msg_cmd);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2363 msn_table_add_cmd(cbs_table, NULL, "UBM", ubm_cmd);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2364 msn_table_add_cmd(cbs_table, NULL, "GCF", gcf_cmd);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2365 msn_table_add_cmd(cbs_table, NULL, "SBS", sbs_cmd);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2366 msn_table_add_cmd(cbs_table, NULL, "NOT", not_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2367
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2368 msn_table_add_cmd(cbs_table, NULL, "CHL", chl_cmd);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2369 msn_table_add_cmd(cbs_table, NULL, "RML", rml_cmd);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2370 msn_table_add_cmd(cbs_table, NULL, "ADL", adl_cmd);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2371 msn_table_add_cmd(cbs_table, NULL, "FQY", fqy_cmd);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2372
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2373 msn_table_add_cmd(cbs_table, NULL, "QRY", NULL);
17151
3e463ddf18f7 Periodically refresh the authentication info required to automatically log
Stu Tomlinson <stu@nosnilmot.com>
parents: 17118
diff changeset
2374 msn_table_add_cmd(cbs_table, NULL, "QNG", qng_cmd);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2375 msn_table_add_cmd(cbs_table, NULL, "FLN", fln_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2376 msn_table_add_cmd(cbs_table, NULL, "NLN", nln_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2377 msn_table_add_cmd(cbs_table, NULL, "ILN", iln_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2378 msn_table_add_cmd(cbs_table, NULL, "OUT", out_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2379 msn_table_add_cmd(cbs_table, NULL, "RNG", rng_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2380
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2381 msn_table_add_cmd(cbs_table, NULL, "UBX", ubx_cmd);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2382 msn_table_add_cmd(cbs_table, NULL, "UUX", uux_cmd);
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2383
31125
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
2384 msn_table_add_cmd(cbs_table, NULL, "UBN", ubn_cmd);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
2385 msn_table_add_cmd(cbs_table, NULL, "UUN", uun_cmd);
4c8bd8efacb8 Support receiving UBN and sending UUN, which seem to have been added way
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31124
diff changeset
2386
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2387 msn_table_add_cmd(cbs_table, NULL, "URL", url_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2388
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2389 msn_table_add_cmd(cbs_table, "fallback", "XFR", xfr_cmd);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2390
20439
bee467c81570 A bunch of MSNP14 stuff:
Stu Tomlinson <stu@nosnilmot.com>
parents: 20432
diff changeset
2391 msn_table_add_error(cbs_table, "ADL", adl_error);
28840
12bdd930d99c Add an error handler for the RML command as well.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28839
diff changeset
2392 msn_table_add_error(cbs_table, "RML", rml_error);
25886
1a1765a87336 More MSN fixes to go along with f0df27a299120baecf9ea88a9fb24ffe1dbe72fd:
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25867
diff changeset
2393 msn_table_add_error(cbs_table, "FQY", fqy_error);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2394 msn_table_add_error(cbs_table, "USR", usr_error);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2395
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2396 msn_table_add_msg_type(cbs_table,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2397 "text/x-msmsgsprofile",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2398 profile_msg);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2399 /*initial OIM notification*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2400 msn_table_add_msg_type(cbs_table,
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2401 "text/x-msmsgsinitialmdatanotification",
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
2402 initial_mdata_msg);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2403 /*OIM notification when user online*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2404 msn_table_add_msg_type(cbs_table,
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2405 "text/x-msmsgsoimnotification",
23300
5cdd93dac7a2 Delete trailing whitespace
Mark Doliner <mark@kingant.net>
parents: 22924
diff changeset
2406 initial_mdata_msg);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2407 msn_table_add_msg_type(cbs_table,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2408 "text/x-msmsgsinitialemailnotification",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2409 initial_email_msg);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2410 msn_table_add_msg_type(cbs_table,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2411 "text/x-msmsgsemailnotification",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2412 email_msg);
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2413 /*delete an offline Message notification*/
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2414 msn_table_add_msg_type(cbs_table,
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2415 "text/x-msmsgsactivemailnotification",
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2416 delete_oim_msg);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2417 msn_table_add_msg_type(cbs_table,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2418 "application/x-msmsgssystemmessage",
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2419 system_msg);
25040
a214dc3807f8 Setup message handlers on the MSN Notification server so that messages from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25034
diff changeset
2420 /* generic message handlers */
a214dc3807f8 Setup message handlers on the MSN Notification server so that messages from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25034
diff changeset
2421 msn_table_add_msg_type(cbs_table, "text/plain",
a214dc3807f8 Setup message handlers on the MSN Notification server so that messages from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25034
diff changeset
2422 msn_plain_msg);
a214dc3807f8 Setup message handlers on the MSN Notification server so that messages from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25034
diff changeset
2423 msn_table_add_msg_type(cbs_table, "text/x-msmsgscontrol",
a214dc3807f8 Setup message handlers on the MSN Notification server so that messages from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25034
diff changeset
2424 msn_control_msg);
a214dc3807f8 Setup message handlers on the MSN Notification server so that messages from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25034
diff changeset
2425 msn_table_add_msg_type(cbs_table, "text/x-msnmsgr-datacast",
a214dc3807f8 Setup message handlers on the MSN Notification server so that messages from
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25034
diff changeset
2426 msn_datacast_msg);
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2427 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2428
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2429 void
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2430 msn_notification_end(void)
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2431 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2432 msn_table_destroy(cbs_table);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2433 }
20394
4a099e4d0d09 propagate from branch 'im.pidgin.pidgin' (head 98b6b547b29ea1192b73cc4e1de1e674edef4328)
Richard Laager <rlaager@wiktel.com>
parents: 16063
diff changeset
2434