Mercurial > pidgin
annotate libpurple/protocols/msnp9/switchboard.c @ 21312:a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
old fools like me who prefer the stability of our MSNP9 code over the
features of MSNP14 can enable this using the --disable-msnp14 ./configure
option.
If we want to release from i.p.p and MSN stability is the only blocker, we
can trivially flick the default to use MSNP9 in configure.ac
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Sun, 11 Nov 2007 12:57:52 +0000 |
parents | |
children | 23fef20a0ef2 |
rev | line source |
---|---|
21312
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1 /** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
2 * @file switchboard.c MSN switchboard functions |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
3 * |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
4 * purple |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
5 * |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
6 * Purple is the legal property of its developers, whose names are too numerous |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
7 * to list here. Please refer to the COPYRIGHT file distributed with this |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
8 * source distribution. |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
9 * |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
10 * This program is free software; you can redistribute it and/or modify |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
11 * it under the terms of the GNU General Public License as published by |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
12 * the Free Software Foundation; either version 2 of the License, or |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
13 * (at your option) any later version. |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
14 * |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
15 * This program is distributed in the hope that it will be useful, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
18 * GNU General Public License for more details. |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
19 * |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
20 * You should have received a copy of the GNU General Public License |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
21 * along with this program; if not, write to the Free Software |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
23 */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
24 #include "msn.h" |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
25 #include "prefs.h" |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
26 #include "switchboard.h" |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
27 #include "notification.h" |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
28 #include "msn-utils.h" |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
29 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
30 #include "error.h" |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
31 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
32 static MsnTable *cbs_table; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
33 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
34 static void msg_error_helper(MsnCmdProc *cmdproc, MsnMessage *msg, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
35 MsnMsgErrorType error); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
36 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
37 /************************************************************************** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
38 * Main |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
39 **************************************************************************/ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
40 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
41 MsnSwitchBoard * |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
42 msn_switchboard_new(MsnSession *session) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
43 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
44 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
45 MsnServConn *servconn; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
46 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
47 g_return_val_if_fail(session != NULL, NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
48 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
49 swboard = g_new0(MsnSwitchBoard, 1); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
50 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
51 swboard->session = session; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
52 swboard->servconn = servconn = msn_servconn_new(session, MSN_SERVCONN_SB); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
53 swboard->cmdproc = servconn->cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
54 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
55 swboard->msg_queue = g_queue_new(); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
56 swboard->empty = TRUE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
57 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
58 swboard->cmdproc->data = swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
59 swboard->cmdproc->cbs_table = cbs_table; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
60 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
61 session->switches = g_list_append(session->switches, swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
62 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
63 return swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
64 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
65 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
66 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
67 msn_switchboard_destroy(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
68 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
69 MsnSession *session; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
70 MsnMessage *msg; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
71 GList *l; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
72 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
73 #ifdef MSN_DEBUG_SB |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
74 purple_debug_info("msn", "switchboard_destroy: swboard(%p)\n", swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
75 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
76 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
77 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
78 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
79 if (swboard->destroying) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
80 return; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
81 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
82 swboard->destroying = TRUE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
83 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
84 /* If it linked us is because its looking for trouble */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
85 while (swboard->slplinks != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
86 msn_slplink_destroy(swboard->slplinks->data); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
87 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
88 /* Destroy the message queue */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
89 while ((msg = g_queue_pop_head(swboard->msg_queue)) != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
90 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
91 if (swboard->error != MSN_SB_ERROR_NONE) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
92 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
93 /* The messages could not be sent due to a switchboard error */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
94 msg_error_helper(swboard->cmdproc, msg, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
95 MSN_MSG_ERROR_SB); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
96 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
97 msn_message_unref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
98 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
99 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
100 g_queue_free(swboard->msg_queue); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
101 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
102 /* msg_error_helper will both remove the msg from ack_list and |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
103 unref it, so we don't need to do either here */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
104 while ((l = swboard->ack_list) != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
105 msg_error_helper(swboard->cmdproc, l->data, MSN_MSG_ERROR_SB); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
106 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
107 g_free(swboard->im_user); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
108 g_free(swboard->auth_key); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
109 g_free(swboard->session_id); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
110 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
111 for (l = swboard->users; l != NULL; l = l->next) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
112 g_free(l->data); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
113 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
114 session = swboard->session; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
115 session->switches = g_list_remove(session->switches, swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
116 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
117 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
118 /* This should never happen or we are in trouble. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
119 if (swboard->servconn != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
120 msn_servconn_destroy(swboard->servconn); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
121 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
122 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
123 swboard->cmdproc->data = NULL; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
124 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
125 msn_servconn_set_disconnect_cb(swboard->servconn, NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
126 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
127 msn_servconn_destroy(swboard->servconn); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
128 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
129 g_free(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
130 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
131 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
132 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
133 msn_switchboard_set_auth_key(MsnSwitchBoard *swboard, const char *key) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
134 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
135 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
136 g_return_if_fail(key != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
137 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
138 swboard->auth_key = g_strdup(key); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
139 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
140 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
141 const char * |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
142 msn_switchboard_get_auth_key(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
143 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
144 g_return_val_if_fail(swboard != NULL, NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
145 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
146 return swboard->auth_key; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
147 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
148 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
149 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
150 msn_switchboard_set_session_id(MsnSwitchBoard *swboard, const char *id) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
151 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
152 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
153 g_return_if_fail(id != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
154 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
155 if (swboard->session_id != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
156 g_free(swboard->session_id); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
157 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
158 swboard->session_id = g_strdup(id); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
159 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
160 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
161 const char * |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
162 msn_switchboard_get_session_id(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
163 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
164 g_return_val_if_fail(swboard != NULL, NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
165 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
166 return swboard->session_id; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
167 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
168 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
169 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
170 msn_switchboard_set_invited(MsnSwitchBoard *swboard, gboolean invited) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
171 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
172 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
173 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
174 swboard->invited = invited; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
175 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
176 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
177 gboolean |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
178 msn_switchboard_is_invited(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
179 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
180 g_return_val_if_fail(swboard != NULL, FALSE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
181 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
182 return swboard->invited; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
183 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
184 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
185 /************************************************************************** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
186 * Utility |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
187 **************************************************************************/ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
188 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
189 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
190 send_clientcaps(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
191 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
192 MsnMessage *msg; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
193 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
194 msg = msn_message_new(MSN_MSG_CAPS); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
195 msn_message_set_content_type(msg, "text/x-clientcaps"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
196 msn_message_set_flag(msg, 'U'); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
197 msn_message_set_bin_data(msg, MSN_CLIENTINFO, strlen(MSN_CLIENTINFO)); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
198 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
199 msn_switchboard_send_msg(swboard, msg, TRUE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
200 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
201 msn_message_destroy(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
202 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
203 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
204 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
205 msn_switchboard_add_user(MsnSwitchBoard *swboard, const char *user) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
206 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
207 MsnCmdProc *cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
208 PurpleAccount *account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
209 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
210 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
211 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
212 cmdproc = swboard->cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
213 account = cmdproc->session->account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
214 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
215 swboard->users = g_list_prepend(swboard->users, g_strdup(user)); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
216 swboard->current_users++; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
217 swboard->empty = FALSE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
218 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
219 #ifdef MSN_DEBUG_CHAT |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
220 purple_debug_info("msn", "user=[%s], total=%d\n", user, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
221 swboard->current_users); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
222 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
223 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
224 if (!(swboard->flag & MSN_SB_FLAG_IM) && (swboard->conv != NULL)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
225 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
226 /* This is a helper switchboard. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
227 purple_debug_error("msn", "switchboard_add_user: conv != NULL\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
228 return; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
229 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
230 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
231 if ((swboard->conv != NULL) && |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
232 (purple_conversation_get_type(swboard->conv) == PURPLE_CONV_TYPE_CHAT)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
233 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
234 purple_conv_chat_add_user(PURPLE_CONV_CHAT(swboard->conv), user, NULL, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
235 PURPLE_CBFLAGS_NONE, TRUE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
236 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
237 else if (swboard->current_users > 1 || swboard->total_users > 1) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
238 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
239 if (swboard->conv == NULL || |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
240 purple_conversation_get_type(swboard->conv) != PURPLE_CONV_TYPE_CHAT) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
241 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
242 GList *l; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
243 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
244 #ifdef MSN_DEBUG_CHAT |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
245 purple_debug_info("msn", "[chat] Switching to chat.\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
246 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
247 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
248 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
249 /* this is bad - it causes msn_switchboard_close to be called on the |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
250 * switchboard we're in the middle of using :( */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
251 if (swboard->conv != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
252 purple_conversation_destroy(swboard->conv); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
253 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
254 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
255 swboard->chat_id = cmdproc->session->conv_seq++; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
256 swboard->flag |= MSN_SB_FLAG_IM; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
257 swboard->conv = serv_got_joined_chat(account->gc, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
258 swboard->chat_id, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
259 "MSN Chat"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
260 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
261 for (l = swboard->users; l != NULL; l = l->next) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
262 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
263 const char *tmp_user; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
264 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
265 tmp_user = l->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
266 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
267 #ifdef MSN_DEBUG_CHAT |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
268 purple_debug_info("msn", "[chat] Adding [%s].\n", tmp_user); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
269 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
270 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
271 purple_conv_chat_add_user(PURPLE_CONV_CHAT(swboard->conv), |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
272 tmp_user, NULL, PURPLE_CBFLAGS_NONE, TRUE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
273 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
274 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
275 #ifdef MSN_DEBUG_CHAT |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
276 purple_debug_info("msn", "[chat] We add ourselves.\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
277 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
278 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
279 purple_conv_chat_add_user(PURPLE_CONV_CHAT(swboard->conv), |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
280 purple_account_get_username(account), |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
281 NULL, PURPLE_CBFLAGS_NONE, TRUE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
282 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
283 g_free(swboard->im_user); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
284 swboard->im_user = NULL; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
285 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
286 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
287 else if (swboard->conv == NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
288 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
289 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
290 user, account); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
291 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
292 else |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
293 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
294 purple_debug_warning("msn", "switchboard_add_user: This should not happen!\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
295 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
296 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
297 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
298 static PurpleConversation * |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
299 msn_switchboard_get_conv(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
300 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
301 PurpleAccount *account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
302 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
303 g_return_val_if_fail(swboard != NULL, NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
304 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
305 if (swboard->conv != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
306 return swboard->conv; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
307 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
308 purple_debug_error("msn", "Switchboard with unassigned conversation\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
309 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
310 account = swboard->session->account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
311 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
312 return (swboard->conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
313 account, swboard->im_user)); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
314 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
315 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
316 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
317 msn_switchboard_report_user(MsnSwitchBoard *swboard, PurpleMessageFlags flags, const char *msg) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
318 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
319 PurpleConversation *conv; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
320 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
321 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
322 g_return_if_fail(msg != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
323 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
324 if ((conv = msn_switchboard_get_conv(swboard)) != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
325 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
326 purple_conversation_write(conv, NULL, msg, flags, time(NULL)); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
327 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
328 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
329 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
330 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
331 swboard_error_helper(MsnSwitchBoard *swboard, int reason, const char *passport) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
332 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
333 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
334 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
335 purple_debug_warning("msg", "Error: Unable to call the user %s for reason %i\n", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
336 passport ? passport : "(null)", reason); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
337 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
338 /* TODO: if current_users > 0, this is probably a chat and an invite failed, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
339 * we should report that in the chat or something */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
340 if (swboard->current_users == 0) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
341 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
342 swboard->error = reason; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
343 msn_switchboard_close(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
344 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
345 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
346 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
347 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
348 cal_error_helper(MsnTransaction *trans, int reason) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
349 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
350 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
351 const char *passport; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
352 char **params; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
353 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
354 params = g_strsplit(trans->params, " ", 0); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
355 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
356 passport = params[0]; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
357 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
358 swboard = trans->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
359 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
360 purple_debug_warning("msn", "cal_error_helper: command %s failed for reason %i\n",trans->command,reason); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
361 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
362 swboard_error_helper(swboard, reason, passport); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
363 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
364 g_strfreev(params); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
365 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
366 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
367 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
368 msg_error_helper(MsnCmdProc *cmdproc, MsnMessage *msg, MsnMsgErrorType error) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
369 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
370 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
371 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
372 g_return_if_fail(cmdproc != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
373 g_return_if_fail(msg != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
374 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
375 if ((error != MSN_MSG_ERROR_SB) && (msg->nak_cb != NULL)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
376 msg->nak_cb(msg, msg->ack_data); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
377 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
378 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
379 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
380 /* This is not good, and should be fixed somewhere else. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
381 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
382 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
383 if (msg->type == MSN_MSG_TEXT) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
384 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
385 const char *format, *str_reason; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
386 char *body_str, *body_enc, *pre, *post; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
387 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
388 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
389 if (swboard->conv == NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
390 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
391 if (msg->ack_ref) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
392 msn_message_unref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
393 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
394 return; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
395 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
396 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
397 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
398 if (error == MSN_MSG_ERROR_TIMEOUT) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
399 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
400 str_reason = _("Message may have not been sent " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
401 "because a timeout occurred:"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
402 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
403 else if (error == MSN_MSG_ERROR_SB) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
404 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
405 switch (swboard->error) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
406 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
407 case MSN_SB_ERROR_OFFLINE: |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
408 str_reason = _("Message could not be sent, " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
409 "not allowed while invisible:"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
410 break; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
411 case MSN_SB_ERROR_USER_OFFLINE: |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
412 str_reason = _("Message could not be sent " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
413 "because the user is offline:"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
414 break; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
415 case MSN_SB_ERROR_CONNECTION: |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
416 str_reason = _("Message could not be sent " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
417 "because a connection error occurred:"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
418 break; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
419 case MSN_SB_ERROR_TOO_FAST: |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
420 str_reason = _("Message could not be sent " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
421 "because we are sending too quickly:"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
422 break; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
423 case MSN_SB_ERROR_AUTHFAILED: |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
424 str_reason = _("Message could not be sent " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
425 "because we were unable to establish a " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
426 "session with the server. This is " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
427 "likely a server problem, try again in " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
428 "a few minutes:"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
429 break; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
430 default: |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
431 str_reason = _("Message could not be sent " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
432 "because an error with " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
433 "the switchboard occurred:"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
434 break; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
435 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
436 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
437 else |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
438 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
439 str_reason = _("Message may have not been sent " |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
440 "because an unknown error occurred:"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
441 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
442 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
443 body_str = msn_message_to_string(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
444 body_enc = g_markup_escape_text(body_str, -1); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
445 g_free(body_str); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
446 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
447 format = msn_message_get_attr(msg, "X-MMS-IM-Format"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
448 msn_parse_format(format, &pre, &post); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
449 body_str = g_strdup_printf("%s%s%s", pre ? pre : "", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
450 body_enc ? body_enc : "", post ? post : ""); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
451 g_free(body_enc); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
452 g_free(pre); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
453 g_free(post); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
454 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
455 msn_switchboard_report_user(swboard, PURPLE_MESSAGE_ERROR, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
456 str_reason); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
457 msn_switchboard_report_user(swboard, PURPLE_MESSAGE_RAW, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
458 body_str); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
459 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
460 g_free(body_str); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
461 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
462 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
463 /* If a timeout occures we will want the msg around just in case we |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
464 * receive the ACK after the timeout. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
465 if (msg->ack_ref && error != MSN_MSG_ERROR_TIMEOUT) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
466 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
467 swboard->ack_list = g_list_remove(swboard->ack_list, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
468 msn_message_unref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
469 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
470 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
471 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
472 /************************************************************************** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
473 * Message Stuff |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
474 **************************************************************************/ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
475 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
476 /** Called when a message times out. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
477 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
478 msg_timeout(MsnCmdProc *cmdproc, MsnTransaction *trans) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
479 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
480 MsnMessage *msg; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
481 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
482 msg = trans->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
483 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
484 msg_error_helper(cmdproc, msg, MSN_MSG_ERROR_TIMEOUT); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
485 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
486 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
487 /** Called when we receive an error of a message. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
488 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
489 msg_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
490 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
491 msg_error_helper(cmdproc, trans->data, MSN_MSG_ERROR_UNKNOWN); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
492 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
493 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
494 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
495 /** Called when we receive an ack of a special message. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
496 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
497 msg_ack(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
498 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
499 MsnMessage *msg; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
500 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
501 msg = cmd->trans->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
502 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
503 if (msg->ack_cb != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
504 msg->ack_cb(msg->ack_data); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
505 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
506 msn_message_unref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
507 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
508 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
509 /** Called when we receive a nak of a special message. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
510 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
511 msg_nak(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
512 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
513 MsnMessage *msg; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
514 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
515 msg = cmd->trans->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
516 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
517 msn_message_unref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
518 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
519 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
520 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
521 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
522 release_msg(MsnSwitchBoard *swboard, MsnMessage *msg) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
523 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
524 MsnCmdProc *cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
525 MsnTransaction *trans; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
526 char *payload; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
527 gsize payload_len; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
528 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
529 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
530 g_return_if_fail(msg != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
531 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
532 cmdproc = swboard->cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
533 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
534 payload = msn_message_gen_payload(msg, &payload_len); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
535 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
536 #ifdef MSN_DEBUG_SB |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
537 msn_message_show_readable(msg, "SB SEND", FALSE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
538 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
539 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
540 trans = msn_transaction_new(cmdproc, "MSG", "%c %d", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
541 msn_message_get_flag(msg), payload_len); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
542 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
543 /* Data for callbacks */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
544 msn_transaction_set_data(trans, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
545 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
546 if (msg->type == MSN_MSG_TEXT) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
547 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
548 msg->ack_ref = TRUE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
549 msn_message_ref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
550 swboard->ack_list = g_list_append(swboard->ack_list, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
551 msn_transaction_set_timeout_cb(trans, msg_timeout); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
552 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
553 else if (msg->type == MSN_MSG_SLP) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
554 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
555 msg->ack_ref = TRUE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
556 msn_message_ref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
557 swboard->ack_list = g_list_append(swboard->ack_list, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
558 msn_transaction_set_timeout_cb(trans, msg_timeout); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
559 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
560 if (msg->ack_cb != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
561 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
562 msn_transaction_add_cb(trans, "ACK", msg_ack); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
563 msn_transaction_add_cb(trans, "NAK", msg_nak); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
564 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
565 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
566 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
567 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
568 trans->payload = payload; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
569 trans->payload_len = payload_len; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
570 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
571 msg->trans = trans; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
572 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
573 msn_cmdproc_send_trans(cmdproc, trans); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
574 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
575 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
576 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
577 queue_msg(MsnSwitchBoard *swboard, MsnMessage *msg) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
578 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
579 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
580 g_return_if_fail(msg != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
581 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
582 purple_debug_info("msn", "Appending message to queue.\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
583 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
584 g_queue_push_tail(swboard->msg_queue, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
585 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
586 msn_message_ref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
587 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
588 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
589 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
590 process_queue(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
591 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
592 MsnMessage *msg; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
593 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
594 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
595 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
596 purple_debug_info("msn", "Processing queue\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
597 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
598 while ((msg = g_queue_pop_head(swboard->msg_queue)) != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
599 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
600 purple_debug_info("msn", "Sending message\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
601 release_msg(swboard, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
602 msn_message_unref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
603 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
604 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
605 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
606 gboolean |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
607 msn_switchboard_can_send(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
608 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
609 g_return_val_if_fail(swboard != NULL, FALSE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
610 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
611 if (swboard->empty || !g_queue_is_empty(swboard->msg_queue)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
612 return FALSE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
613 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
614 return TRUE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
615 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
616 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
617 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
618 msn_switchboard_send_msg(MsnSwitchBoard *swboard, MsnMessage *msg, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
619 gboolean queue) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
620 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
621 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
622 g_return_if_fail(msg != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
623 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
624 if (msn_switchboard_can_send(swboard)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
625 release_msg(swboard, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
626 else if (queue) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
627 queue_msg(swboard, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
628 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
629 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
630 /************************************************************************** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
631 * Switchboard Commands |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
632 **************************************************************************/ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
633 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
634 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
635 ans_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
636 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
637 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
638 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
639 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
640 swboard->ready = TRUE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
641 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
642 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
643 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
644 bye_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
645 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
646 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
647 const char *user; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
648 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
649 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
650 user = cmd->params[0]; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
651 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
652 /* cmdproc->data is set to NULL when the switchboard is destroyed; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
653 * we may get a bye shortly thereafter. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
654 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
655 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
656 if (!(swboard->flag & MSN_SB_FLAG_IM) && (swboard->conv != NULL)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
657 purple_debug_error("msn_switchboard", "bye_cmd: helper bug\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
658 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
659 if (swboard->conv == NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
660 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
661 /* This is a helper switchboard */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
662 msn_switchboard_destroy(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
663 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
664 else if ((swboard->current_users > 1) || |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
665 (purple_conversation_get_type(swboard->conv) == PURPLE_CONV_TYPE_CHAT)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
666 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
667 /* This is a switchboard used for a chat */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
668 purple_conv_chat_remove_user(PURPLE_CONV_CHAT(swboard->conv), user, NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
669 swboard->current_users--; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
670 if (swboard->current_users == 0) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
671 msn_switchboard_destroy(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
672 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
673 else |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
674 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
675 /* This is a switchboard used for a im session */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
676 msn_switchboard_destroy(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
677 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
678 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
679 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
680 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
681 iro_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
682 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
683 PurpleAccount *account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
684 PurpleConnection *gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
685 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
686 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
687 account = cmdproc->session->account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
688 gc = account->gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
689 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
690 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
691 swboard->total_users = atoi(cmd->params[2]); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
692 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
693 msn_switchboard_add_user(swboard, cmd->params[3]); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
694 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
695 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
696 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
697 joi_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
698 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
699 MsnSession *session; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
700 PurpleAccount *account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
701 PurpleConnection *gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
702 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
703 const char *passport; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
704 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
705 passport = cmd->params[0]; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
706 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
707 session = cmdproc->session; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
708 account = session->account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
709 gc = account->gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
710 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
711 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
712 msn_switchboard_add_user(swboard, passport); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
713 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
714 process_queue(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
715 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
716 if (!session->http_method) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
717 send_clientcaps(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
718 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
719 if (swboard->closed) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
720 msn_switchboard_close(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
721 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
722 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
723 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
724 msg_cmd_post(MsnCmdProc *cmdproc, MsnCommand *cmd, char *payload, size_t len) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
725 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
726 MsnMessage *msg; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
727 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
728 msg = msn_message_new_from_cmd(cmdproc->session, cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
729 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
730 msn_message_parse_payload(msg, payload, len); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
731 #ifdef MSN_DEBUG_SB |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
732 msn_message_show_readable(msg, "SB RECV", FALSE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
733 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
734 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
735 if (msg->remote_user != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
736 g_free (msg->remote_user); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
737 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
738 msg->remote_user = g_strdup(cmd->params[0]); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
739 msn_cmdproc_process_msg(cmdproc, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
740 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
741 msn_message_destroy(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
742 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
743 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
744 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
745 msg_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
746 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
747 cmdproc->servconn->payload_len = atoi(cmd->params[2]); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
748 cmdproc->last_cmd->payload_cb = msg_cmd_post; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
749 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
750 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
751 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
752 nak_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
753 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
754 MsnMessage *msg; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
755 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
756 msg = cmd->trans->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
757 g_return_if_fail(msg != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
758 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
759 msg_error_helper(cmdproc, msg, MSN_MSG_ERROR_NAK); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
760 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
761 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
762 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
763 ack_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
764 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
765 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
766 MsnMessage *msg; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
767 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
768 msg = cmd->trans->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
769 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
770 if (msg->ack_cb != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
771 msg->ack_cb(msg, msg->ack_data); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
772 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
773 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
774 if (swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
775 swboard->ack_list = g_list_remove(swboard->ack_list, msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
776 msn_message_unref(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
777 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
778 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
779 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
780 out_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
781 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
782 PurpleConnection *gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
783 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
784 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
785 gc = cmdproc->session->account->gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
786 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
787 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
788 if (swboard->current_users > 1) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
789 serv_got_chat_left(gc, swboard->chat_id); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
790 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
791 msn_switchboard_disconnect(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
792 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
793 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
794 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
795 usr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
796 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
797 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
798 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
799 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
800 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
801 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
802 GList *l; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
803 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
804 for (l = swboard->users; l != NULL; l = l->next) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
805 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
806 const char *user; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
807 user = l->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
808 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
809 msn_cmdproc_send(cmdproc, "CAL", "%s", user); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
810 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
811 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
812 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
813 swboard->ready = TRUE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
814 msn_cmdproc_process_queue(cmdproc); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
815 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
816 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
817 /************************************************************************** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
818 * Message Handlers |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
819 **************************************************************************/ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
820 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
821 plain_msg(MsnCmdProc *cmdproc, MsnMessage *msg) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
822 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
823 PurpleConnection *gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
824 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
825 const char *body; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
826 char *body_str; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
827 char *body_enc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
828 char *body_final; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
829 size_t body_len; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
830 const char *passport; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
831 const char *value; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
832 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
833 gc = cmdproc->session->account->gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
834 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
835 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
836 body = msn_message_get_bin_data(msg, &body_len); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
837 body_str = g_strndup(body, body_len); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
838 body_enc = g_markup_escape_text(body_str, -1); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
839 g_free(body_str); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
840 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
841 passport = msg->remote_user; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
842 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
843 if (!strcmp(passport, "messenger@microsoft.com") && |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
844 strstr(body, "immediate security update")) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
845 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
846 return; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
847 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
848 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
849 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
850 if ((value = msn_message_get_attr(msg, "User-Agent")) != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
851 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
852 purple_debug_misc("msn", "User-Agent = '%s'\n", value); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
853 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
854 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
855 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
856 if ((value = msn_message_get_attr(msg, "X-MMS-IM-Format")) != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
857 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
858 char *pre, *post; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
859 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
860 msn_parse_format(value, &pre, &post); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
861 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
862 body_final = g_strdup_printf("%s%s%s", pre ? pre : "", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
863 body_enc ? body_enc : "", post ? post : ""); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
864 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
865 g_free(pre); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
866 g_free(post); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
867 g_free(body_enc); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
868 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
869 else |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
870 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
871 body_final = body_enc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
872 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
873 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
874 swboard->flag |= MSN_SB_FLAG_IM; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
875 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
876 if (swboard->current_users > 1 || |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
877 ((swboard->conv != NULL) && |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
878 purple_conversation_get_type(swboard->conv) == PURPLE_CONV_TYPE_CHAT)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
879 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
880 /* If current_users is always ok as it should then there is no need to |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
881 * check if this is a chat. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
882 if (swboard->current_users <= 1) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
883 purple_debug_misc("msn", "plain_msg: current_users(%d)\n", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
884 swboard->current_users); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
885 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
886 serv_got_chat_in(gc, swboard->chat_id, passport, 0, body_final, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
887 time(NULL)); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
888 if (swboard->conv == NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
889 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
890 swboard->conv = purple_find_chat(gc, swboard->chat_id); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
891 swboard->flag |= MSN_SB_FLAG_IM; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
892 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
893 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
894 else |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
895 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
896 serv_got_im(gc, passport, body_final, 0, time(NULL)); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
897 if (swboard->conv == NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
898 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
899 swboard->conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
900 passport, purple_connection_get_account(gc)); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
901 swboard->flag |= MSN_SB_FLAG_IM; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
902 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
903 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
904 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
905 g_free(body_final); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
906 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
907 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
908 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
909 control_msg(MsnCmdProc *cmdproc, MsnMessage *msg) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
910 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
911 PurpleConnection *gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
912 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
913 char *passport; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
914 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
915 gc = cmdproc->session->account->gc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
916 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
917 passport = msg->remote_user; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
918 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
919 if (swboard->current_users == 1 && |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
920 msn_message_get_attr(msg, "TypingUser") != NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
921 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
922 serv_got_typing(gc, passport, MSN_TYPING_RECV_TIMEOUT, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
923 PURPLE_TYPING); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
924 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
925 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
926 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
927 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
928 clientcaps_msg(MsnCmdProc *cmdproc, MsnMessage *msg) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
929 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
930 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
931 MsnSession *session; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
932 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
933 MsnUser *user; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
934 GHashTable *clientcaps; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
935 const char *value; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
936 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
937 char *passport = msg->sender; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
938 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
939 session = cmdproc->session; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
940 swboard = cmdproc->servconn->swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
941 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
942 clientcaps = msn_message_get_hashtable_from_body(msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
943 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
944 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
945 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
946 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
947 nudge_msg(MsnCmdProc *cmdproc, MsnMessage *msg) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
948 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
949 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
950 PurpleAccount *account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
951 const char *user; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
952 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
953 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
954 account = cmdproc->session->account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
955 user = msg->remote_user; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
956 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
957 serv_got_attention(account->gc, user, MSN_NUDGE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
958 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
959 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
960 /************************************************************************** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
961 * Connect stuff |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
962 **************************************************************************/ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
963 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
964 ans_usr_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
965 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
966 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
967 connect_cb(MsnServConn *servconn) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
968 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
969 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
970 MsnTransaction *trans; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
971 MsnCmdProc *cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
972 PurpleAccount *account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
973 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
974 cmdproc = servconn->cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
975 g_return_if_fail(cmdproc != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
976 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
977 account = cmdproc->session->account; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
978 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
979 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
980 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
981 if (msn_switchboard_is_invited(swboard)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
982 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
983 swboard->empty = FALSE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
984 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
985 trans = msn_transaction_new(cmdproc, "ANS", "%s %s %s", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
986 purple_account_get_username(account), |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
987 swboard->auth_key, swboard->session_id); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
988 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
989 else |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
990 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
991 trans = msn_transaction_new(cmdproc, "USR", "%s %s", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
992 purple_account_get_username(account), |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
993 swboard->auth_key); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
994 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
995 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
996 msn_transaction_set_error_cb(trans, ans_usr_error); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
997 msn_transaction_set_data(trans, swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
998 msn_cmdproc_send_trans(cmdproc, trans); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
999 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1000 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1001 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1002 ans_usr_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1003 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1004 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1005 char **params; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1006 char *passport; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1007 int reason = MSN_SB_ERROR_UNKNOWN; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1008 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1009 if (error == 911) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1010 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1011 reason = MSN_SB_ERROR_AUTHFAILED; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1012 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1013 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1014 purple_debug_warning("msn", "ans_usr_error: command %s gave error %i\n", trans->command, error); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1015 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1016 params = g_strsplit(trans->params, " ", 0); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1017 passport = params[0]; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1018 swboard = trans->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1019 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1020 swboard_error_helper(swboard, reason, passport); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1021 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1022 g_strfreev(params); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1023 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1024 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1025 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1026 disconnect_cb(MsnServConn *servconn) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1027 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1028 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1029 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1030 swboard = servconn->cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1031 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1032 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1033 msn_servconn_set_disconnect_cb(swboard->servconn, NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1034 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1035 msn_switchboard_destroy(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1036 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1037 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1038 gboolean |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1039 msn_switchboard_connect(MsnSwitchBoard *swboard, const char *host, int port) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1040 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1041 g_return_val_if_fail(swboard != NULL, FALSE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1042 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1043 msn_servconn_set_connect_cb(swboard->servconn, connect_cb); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1044 msn_servconn_set_disconnect_cb(swboard->servconn, disconnect_cb); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1045 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1046 return msn_servconn_connect(swboard->servconn, host, port); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1047 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1048 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1049 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1050 msn_switchboard_disconnect(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1051 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1052 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1053 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1054 msn_servconn_disconnect(swboard->servconn); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1055 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1056 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1057 /************************************************************************** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1058 * Call stuff |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1059 **************************************************************************/ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1060 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1061 got_cal(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1062 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1063 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1064 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1065 const char *user; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1066 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1067 swboard = cmdproc->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1068 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1069 user = cmd->params[0]; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1070 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1071 msn_switchboard_add_user(swboard, user); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1072 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1073 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1074 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1075 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1076 cal_timeout(MsnCmdProc *cmdproc, MsnTransaction *trans) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1077 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1078 purple_debug_warning("msn", "cal_timeout: command %s timed out\n", trans->command); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1079 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1080 cal_error_helper(trans, MSN_SB_ERROR_UNKNOWN); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1081 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1082 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1083 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1084 cal_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1085 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1086 int reason = MSN_SB_ERROR_UNKNOWN; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1087 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1088 if (error == 215) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1089 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1090 purple_debug_info("msn", "Invited user already in switchboard\n"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1091 return; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1092 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1093 else if (error == 217) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1094 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1095 reason = MSN_SB_ERROR_USER_OFFLINE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1096 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1097 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1098 purple_debug_warning("msn", "cal_error: command %s gave error %i\n", trans->command, error); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1099 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1100 cal_error_helper(trans, reason); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1101 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1102 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1103 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1104 msn_switchboard_request_add_user(MsnSwitchBoard *swboard, const char *user) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1105 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1106 MsnTransaction *trans; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1107 MsnCmdProc *cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1108 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1109 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1110 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1111 cmdproc = swboard->cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1112 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1113 trans = msn_transaction_new(cmdproc, "CAL", "%s", user); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1114 /* this doesn't do anything, but users seem to think that |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1115 * 'Unhandled command' is some kind of error, so we don't report it */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1116 msn_transaction_add_cb(trans, "CAL", got_cal); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1117 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1118 msn_transaction_set_data(trans, swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1119 msn_transaction_set_timeout_cb(trans, cal_timeout); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1120 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1121 if (swboard->ready) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1122 msn_cmdproc_send_trans(cmdproc, trans); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1123 else |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1124 msn_cmdproc_queue_trans(cmdproc, trans); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1125 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1126 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1127 /************************************************************************** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1128 * Create & Transfer stuff |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1129 **************************************************************************/ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1130 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1131 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1132 got_swboard(MsnCmdProc *cmdproc, MsnCommand *cmd) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1133 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1134 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1135 char *host; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1136 int port; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1137 swboard = cmd->trans->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1138 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1139 if (g_list_find(cmdproc->session->switches, swboard) == NULL) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1140 /* The conversation window was closed. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1141 return; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1142 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1143 msn_switchboard_set_auth_key(swboard, cmd->params[4]); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1144 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1145 msn_parse_socket(cmd->params[2], &host, &port); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1146 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1147 if (!msn_switchboard_connect(swboard, host, port)) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1148 msn_switchboard_destroy(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1149 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1150 g_free(host); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1151 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1152 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1153 static void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1154 xfr_error(MsnCmdProc *cmdproc, MsnTransaction *trans, int error) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1155 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1156 MsnSwitchBoard *swboard; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1157 int reason = MSN_SB_ERROR_UNKNOWN; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1158 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1159 if (error == 913) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1160 reason = MSN_SB_ERROR_OFFLINE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1161 else if (error == 800) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1162 reason = MSN_SB_ERROR_TOO_FAST; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1163 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1164 swboard = trans->data; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1165 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1166 purple_debug_info("msn", "xfr_error %i for %s: trans %x, command %s, reason %i\n", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1167 error, (swboard->im_user ? swboard->im_user : "(null)"), trans, |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1168 (trans->command ? trans->command : "(null)"), reason); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1169 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1170 swboard_error_helper(swboard, reason, swboard->im_user); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1171 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1172 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1173 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1174 msn_switchboard_request(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1175 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1176 MsnCmdProc *cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1177 MsnTransaction *trans; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1178 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1179 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1180 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1181 cmdproc = swboard->session->notification->cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1182 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1183 trans = msn_transaction_new(cmdproc, "XFR", "%s", "SB"); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1184 msn_transaction_add_cb(trans, "XFR", got_swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1185 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1186 msn_transaction_set_data(trans, swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1187 msn_transaction_set_error_cb(trans, xfr_error); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1188 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1189 msn_cmdproc_send_trans(cmdproc, trans); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1190 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1191 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1192 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1193 msn_switchboard_close(MsnSwitchBoard *swboard) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1194 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1195 g_return_if_fail(swboard != NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1196 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1197 if (swboard->error != MSN_SB_ERROR_NONE) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1198 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1199 msn_switchboard_destroy(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1200 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1201 else if (g_queue_is_empty(swboard->msg_queue) || |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1202 !swboard->session->connected) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1203 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1204 MsnCmdProc *cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1205 cmdproc = swboard->cmdproc; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1206 msn_cmdproc_send_quick(cmdproc, "OUT", NULL, NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1207 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1208 msn_switchboard_destroy(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1209 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1210 else |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1211 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1212 swboard->closed = TRUE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1213 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1214 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1215 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1216 gboolean |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1217 msn_switchboard_release(MsnSwitchBoard *swboard, MsnSBFlag flag) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1218 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1219 g_return_val_if_fail(swboard != NULL, FALSE); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1220 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1221 swboard->flag &= ~flag; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1222 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1223 if (flag == MSN_SB_FLAG_IM) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1224 /* Forget any conversation that used to be associated with this |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1225 * swboard. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1226 swboard->conv = NULL; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1227 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1228 if (swboard->flag == 0) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1229 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1230 msn_switchboard_close(swboard); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1231 return TRUE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1232 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1233 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1234 return FALSE; |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1235 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1236 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1237 /************************************************************************** |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1238 * Init stuff |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1239 **************************************************************************/ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1240 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1241 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1242 msn_switchboard_init(void) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1243 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1244 cbs_table = msn_table_new(); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1245 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1246 msn_table_add_cmd(cbs_table, "ANS", "ANS", ans_cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1247 msn_table_add_cmd(cbs_table, "ANS", "IRO", iro_cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1248 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1249 msn_table_add_cmd(cbs_table, "MSG", "ACK", ack_cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1250 msn_table_add_cmd(cbs_table, "MSG", "NAK", nak_cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1251 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1252 msn_table_add_cmd(cbs_table, "USR", "USR", usr_cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1253 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1254 msn_table_add_cmd(cbs_table, NULL, "MSG", msg_cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1255 msn_table_add_cmd(cbs_table, NULL, "JOI", joi_cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1256 msn_table_add_cmd(cbs_table, NULL, "BYE", bye_cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1257 msn_table_add_cmd(cbs_table, NULL, "OUT", out_cmd); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1258 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1259 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1260 /* They might skip the history */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1261 msn_table_add_cmd(cbs_table, NULL, "ACK", NULL); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1262 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1263 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1264 msn_table_add_error(cbs_table, "MSG", msg_error); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1265 msn_table_add_error(cbs_table, "CAL", cal_error); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1266 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1267 /* Register the message type callbacks. */ |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1268 msn_table_add_msg_type(cbs_table, "text/plain", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1269 plain_msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1270 msn_table_add_msg_type(cbs_table, "text/x-msmsgscontrol", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1271 control_msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1272 msn_table_add_msg_type(cbs_table, "text/x-clientcaps", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1273 clientcaps_msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1274 msn_table_add_msg_type(cbs_table, "text/x-clientinfo", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1275 clientcaps_msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1276 msn_table_add_msg_type(cbs_table, "application/x-msnmsgrp2p", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1277 msn_p2p_msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1278 msn_table_add_msg_type(cbs_table, "text/x-mms-emoticon", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1279 msn_emoticon_msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1280 msn_table_add_msg_type(cbs_table, "text/x-mms-animemoticon", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1281 msn_emoticon_msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1282 msn_table_add_msg_type(cbs_table, "text/x-msnmsgr-datacast", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1283 nudge_msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1284 #if 0 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1285 msn_table_add_msg_type(cbs_table, "text/x-msmmsginvite", |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1286 msn_invite_msg); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1287 #endif |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1288 } |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1289 |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1290 void |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1291 msn_switchboard_end(void) |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1292 { |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1293 msn_table_destroy(cbs_table); |
a07cfce78345
Add MSNP9 back as an alternative alongside the existing MSN prpl. Cowardly
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff
changeset
|
1294 } |