libpurple/protocols/msn/slplink.c

Mon, 28 Dec 2009 21:19:51 +0000

author
Paul Aurich <darkrain42@pidgin.im>
date
Mon, 28 Dec 2009 21:19:51 +0000
changeset 29167
8f50a1b6fdfc
parent 29135
84c866941530
child 29176
20c17274cc44
permissions
-rw-r--r--

msn: Use the PurpleXfer size if available.

This fixes file transfers not being detected as complete when there is
no file on the system (the receiving end isn't able to tell how much
data to expect).

9198
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
1 /**
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
2 * @file slplink.c MSNSLP Link support
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4 * purple
9198
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
5 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
9198
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
8 * source distribution.
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
9 *
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
10 * This program is free software; you can redistribute it and/or modify
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
11 * it under the terms of the GNU General Public License as published by
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
13 * (at your option) any later version.
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
14 *
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
15 * This program is distributed in the hope that it will be useful,
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
18 * GNU General Public License for more details.
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
19 *
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
20 * You should have received a copy of the GNU General Public License
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
21 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 19832
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
9198
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
23 */
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
24 #include "msn.h"
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
25 #include "slplink.h"
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
26
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
27 #include "switchboard.h"
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
28 #include "slp.h"
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
29
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
30 #ifdef MSN_DEBUG_SLP_FILES
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
31 static int m_sc = 0;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
32 static int m_rc = 0;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
33
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
34 static void
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
35 debug_msg_to_file(MsnMessage *msg, gboolean send)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
36 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
37 char *tmp;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
38 char *dir;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
39 char *pload;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
40 int c;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
41 gsize pload_size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
42
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
43 dir = send ? "send" : "recv";
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
44 c = send ? m_sc++ : m_rc++;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
45 tmp = g_strdup_printf("%s/msntest/%s/%03d", g_get_home_dir(), dir, c);
21384
ee8c8910330b Patch from eperez to fix some debug code, Fixes #3524
Ka-Hing Cheung <khc@pidgin.im>
parents: 21018
diff changeset
46 pload = msn_message_gen_payload(msg, &pload_size);
ee8c8910330b Patch from eperez to fix some debug code, Fixes #3524
Ka-Hing Cheung <khc@pidgin.im>
parents: 21018
diff changeset
47 if (!purple_util_write_data_to_file_absolute(tmp, pload, pload_size))
13315
97ad5f28f254 [gaim-migrate @ 15680]
Glauber de Oliveira Costa <gcosta@redhat.com>
parents: 11607
diff changeset
48 {
26726
b81bcec8f359 Updates for GTK+ 3.0. Remove some deprecated functions (someone should
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25436
diff changeset
49 purple_debug_error("msn", "could not save debug file\n");
13315
97ad5f28f254 [gaim-migrate @ 15680]
Glauber de Oliveira Costa <gcosta@redhat.com>
parents: 11607
diff changeset
50 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
51 g_free(tmp);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
52 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
53 #endif
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
54
10602
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
55 /**************************************************************************
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
56 * Main
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
57 **************************************************************************/
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
58
23447
3217bd0cb9bb msn_slplink_new() is only used within slplink.c, so make it static and
Mark Doliner <markdoliner@pidgin.im>
parents: 22981
diff changeset
59 static MsnSlpLink *
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
60 msn_slplink_new(MsnSession *session, const char *username)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
61 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
62 MsnSlpLink *slplink;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
63
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
64 g_return_val_if_fail(session != NULL, NULL);
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
65
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
66 slplink = g_new0(MsnSlpLink, 1);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
67
27770
9d4cc577fe26 Apparently, I missed a few changes for purple_debug_is_verbose().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27361
diff changeset
68 if (purple_debug_is_verbose())
9d4cc577fe26 Apparently, I missed a few changes for purple_debug_is_verbose().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27361
diff changeset
69 purple_debug_info("msn", "slplink_new: slplink(%p)\n", slplink);
10773
ef88ffed66eb [gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10621
diff changeset
70
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
71 slplink->session = session;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
72 slplink->slp_seq_id = rand() % 0xFFFFFF00 + 4;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
73
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
74 slplink->remote_user = g_strdup(username);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
75
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
76 slplink->slp_msg_queue = g_queue_new();
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
77
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
78 session->slplinks =
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
79 g_list_append(session->slplinks, slplink);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
80
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
81 return slplink;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
82 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
83
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
84 void
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
85 msn_slplink_destroy(MsnSlpLink *slplink)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
86 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
87 MsnSession *session;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
88
27770
9d4cc577fe26 Apparently, I missed a few changes for purple_debug_is_verbose().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27361
diff changeset
89 if (purple_debug_is_verbose())
9d4cc577fe26 Apparently, I missed a few changes for purple_debug_is_verbose().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27361
diff changeset
90 purple_debug_info("msn", "slplink_destroy: slplink(%p)\n", slplink);
10773
ef88ffed66eb [gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10621
diff changeset
91
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
92 g_return_if_fail(slplink != NULL);
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
93
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
94 if (slplink->swboard != NULL)
14029
0e8ca0cb7054 [gaim-migrate @ 16523]
Mark Doliner <markdoliner@pidgin.im>
parents: 13315
diff changeset
95 slplink->swboard->slplinks = g_list_remove(slplink->swboard->slplinks, slplink);
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
96
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
97 session = slplink->session;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
98
20509
cec1267fa436 Disable building of directconn.c, nothing uses it, it has compile warnings
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20503
diff changeset
99 #if 0
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
100 if (slplink->directconn != NULL)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
101 msn_directconn_destroy(slplink->directconn);
20509
cec1267fa436 Disable building of directconn.c, nothing uses it, it has compile warnings
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20503
diff changeset
102 #endif
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
103
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
104 while (slplink->slp_calls != NULL)
24618
190103ba3381 For some reason the slpmsg and slplink functions don't have underscores
Mark Doliner <markdoliner@pidgin.im>
parents: 24616
diff changeset
105 msn_slpcall_destroy(slplink->slp_calls->data);
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
106
21018
aed40ed25d54 Leak fix.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
107 g_queue_free(slplink->slp_msg_queue);
aed40ed25d54 Leak fix.
Daniel Atallah <datallah@pidgin.im>
parents: 20597
diff changeset
108
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
109 session->slplinks =
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
110 g_list_remove(session->slplinks, slplink);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
111
24005
c3ac92d3222f Re-arrange msn_slplink_destroy and msn_slp_call_destroy. Might help
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23938
diff changeset
112 g_free(slplink->remote_user);
c3ac92d3222f Re-arrange msn_slplink_destroy and msn_slp_call_destroy. Might help
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23938
diff changeset
113
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
114 g_free(slplink);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
115 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
116
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
117 MsnSlpLink *
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
118 msn_session_find_slplink(MsnSession *session, const char *who)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
119 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
120 GList *l;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
121
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
122 for (l = session->slplinks; l != NULL; l = l->next)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
123 {
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
124 MsnSlpLink *slplink;
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
125
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
126 slplink = l->data;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
127
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
128 if (!strcmp(slplink->remote_user, who))
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
129 return slplink;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
130 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
131
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
132 return NULL;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
133 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
134
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
135 MsnSlpLink *
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
136 msn_session_get_slplink(MsnSession *session, const char *username)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
137 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
138 MsnSlpLink *slplink;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
139
15049
d8749c39e1e4 [gaim-migrate @ 17766]
Daniel Atallah <datallah@pidgin.im>
parents: 14254
diff changeset
140 g_return_val_if_fail(session != NULL, NULL);
d8749c39e1e4 [gaim-migrate @ 17766]
Daniel Atallah <datallah@pidgin.im>
parents: 14254
diff changeset
141 g_return_val_if_fail(username != NULL, NULL);
d8749c39e1e4 [gaim-migrate @ 17766]
Daniel Atallah <datallah@pidgin.im>
parents: 14254
diff changeset
142
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
143 slplink = msn_session_find_slplink(session, username);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
144
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
145 if (slplink == NULL)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
146 slplink = msn_slplink_new(session, username);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
147
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
148 return slplink;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
149 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
150
10602
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
151 void
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
152 msn_slplink_add_slpcall(MsnSlpLink *slplink, MsnSlpCall *slpcall)
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
153 {
10621
2b214ffb112b [gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10602
diff changeset
154 if (slplink->swboard != NULL)
2b214ffb112b [gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10602
diff changeset
155 slplink->swboard->flag |= MSN_SB_FLAG_FT;
10602
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
156
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
157 slplink->slp_calls = g_list_append(slplink->slp_calls, slpcall);
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
158 }
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
159
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
160 void
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
161 msn_slplink_remove_slpcall(MsnSlpLink *slplink, MsnSlpCall *slpcall)
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
162 {
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
163 slplink->slp_calls = g_list_remove(slplink->slp_calls, slpcall);
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
164
24615
9a156dbd94c4 msn_slplink_remove_slpcall() shouldn't be responsible for setting
Mark Doliner <markdoliner@pidgin.im>
parents: 24613
diff changeset
165 /* The slplink has no slpcalls in it, release it from MSN_SB_FLAG_FT.
9a156dbd94c4 msn_slplink_remove_slpcall() shouldn't be responsible for setting
Mark Doliner <markdoliner@pidgin.im>
parents: 24613
diff changeset
166 * If nothing else is using it then this might cause swboard to be
9a156dbd94c4 msn_slplink_remove_slpcall() shouldn't be responsible for setting
Mark Doliner <markdoliner@pidgin.im>
parents: 24613
diff changeset
167 * destroyed. */
9a156dbd94c4 msn_slplink_remove_slpcall() shouldn't be responsible for setting
Mark Doliner <markdoliner@pidgin.im>
parents: 24613
diff changeset
168 if (slplink->slp_calls == NULL && slplink->swboard != NULL)
9a156dbd94c4 msn_slplink_remove_slpcall() shouldn't be responsible for setting
Mark Doliner <markdoliner@pidgin.im>
parents: 24613
diff changeset
169 msn_switchboard_release(slplink->swboard, MSN_SB_FLAG_FT);
10602
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
170 }
111ed237f509 [gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10589
diff changeset
171
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
172 MsnSlpCall *
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
173 msn_slplink_find_slp_call(MsnSlpLink *slplink, const char *id)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
174 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
175 GList *l;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
176 MsnSlpCall *slpcall;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
177
10107
a722b8760bed [gaim-migrate @ 11139]
Evan Schoenberg <evands@pidgin.im>
parents: 10092
diff changeset
178 if (!id)
a722b8760bed [gaim-migrate @ 11139]
Evan Schoenberg <evands@pidgin.im>
parents: 10092
diff changeset
179 return NULL;
a722b8760bed [gaim-migrate @ 11139]
Evan Schoenberg <evands@pidgin.im>
parents: 10092
diff changeset
180
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
181 for (l = slplink->slp_calls; l != NULL; l = l->next)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
182 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
183 slpcall = l->data;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
184
10107
a722b8760bed [gaim-migrate @ 11139]
Evan Schoenberg <evands@pidgin.im>
parents: 10092
diff changeset
185 if (slpcall->id && !strcmp(slpcall->id, id))
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
186 return slpcall;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
187 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
188
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
189 return NULL;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
190 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
191
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
192 MsnSlpCall *
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
193 msn_slplink_find_slp_call_with_session_id(MsnSlpLink *slplink, long id)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
194 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
195 GList *l;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
196 MsnSlpCall *slpcall;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
197
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
198 for (l = slplink->slp_calls; l != NULL; l = l->next)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
199 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
200 slpcall = l->data;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
201
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
202 if (slpcall->session_id == id)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
203 return slpcall;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
204 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
205
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
206 return NULL;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
207 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
208
24616
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
209 static void
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
210 msn_slplink_send_msg(MsnSlpLink *slplink, MsnMessage *msg)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
211 {
20514
676caf300d2c Finish commenting out references to directconn that would never be called
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20509
diff changeset
212 #if 0
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
213 if (slplink->directconn != NULL)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
214 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
215 msn_directconn_send_msg(slplink->directconn, msg);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
216 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
217 else
20514
676caf300d2c Finish commenting out references to directconn that would never be called
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20509
diff changeset
218 #endif
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
219 {
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
220 if (slplink->swboard == NULL)
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
221 {
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
222 slplink->swboard = msn_session_get_swboard(slplink->session,
10773
ef88ffed66eb [gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10621
diff changeset
223 slplink->remote_user, MSN_SB_FLAG_FT);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
224
24611
059ab8d16e46 slplink->swboard will only be null if slplink->session is null. This
Mark Doliner <markdoliner@pidgin.im>
parents: 24610
diff changeset
225 g_return_if_fail(slplink->swboard != NULL);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
226
10346
9c65a007b4a5 [gaim-migrate @ 11560]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10345
diff changeset
227 /* If swboard is destroyed we will be too */
14029
0e8ca0cb7054 [gaim-migrate @ 16523]
Mark Doliner <markdoliner@pidgin.im>
parents: 13315
diff changeset
228 slplink->swboard->slplinks = g_list_prepend(slplink->swboard->slplinks, slplink);
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
229 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
230
10481
a5d6b8e1717d [gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10388
diff changeset
231 msn_switchboard_send_msg(slplink->swboard, msg, TRUE);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
232 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
233 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
234
28694
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
235 void
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
236 msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
237 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
238 MsnMessage *msg;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
239 long long real_size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
240 size_t len = 0;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
241
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
242 /* Maybe we will want to create a new msg for this slpmsg instead of
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
243 * reusing the same one all the time. */
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
244 msg = slpmsg->msg;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
245
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
246 real_size = (slpmsg->flags == 0x2) ? 0 : slpmsg->size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
247
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
248 if (slpmsg->offset < real_size)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
249 {
28694
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
250 if (slpmsg->slpcall && slpmsg->slpcall->xfer && purple_xfer_get_type(slpmsg->slpcall->xfer) == PURPLE_XFER_SEND &&
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
251 purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED)
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
252 {
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
253 len = MIN(1202, slpmsg->slpcall->u.outgoing.len);
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
254 msn_message_set_bin_data(msg, slpmsg->slpcall->u.outgoing.data, len);
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
255 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
256 else
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
257 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
258 len = slpmsg->size - slpmsg->offset;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
259
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
260 if (len > 1202)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
261 len = 1202;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
262
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
263 msn_message_set_bin_data(msg, slpmsg->buffer + slpmsg->offset, len);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
264 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
265
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
266 msg->msnslp_header.offset = slpmsg->offset;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
267 msg->msnslp_header.length = len;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
268 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
269
27770
9d4cc577fe26 Apparently, I missed a few changes for purple_debug_is_verbose().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27361
diff changeset
270 if (purple_debug_is_verbose())
9d4cc577fe26 Apparently, I missed a few changes for purple_debug_is_verbose().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27361
diff changeset
271 msn_message_show_readable(msg, slpmsg->info, slpmsg->text_body);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
272
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
273 #ifdef MSN_DEBUG_SLP_FILES
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
274 debug_msg_to_file(msg, TRUE);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
275 #endif
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
276
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
277 slpmsg->msgs =
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
278 g_list_append(slpmsg->msgs, msg);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
279 msn_slplink_send_msg(slplink, msg);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
280
25436
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
281 if ((slpmsg->flags == 0x20 || slpmsg->flags == 0x1000020 ||
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
282 slpmsg->flags == 0x1000030) &&
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
283 (slpmsg->slpcall != NULL))
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
284 {
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
285 slpmsg->slpcall->progress = TRUE;
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
286
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
287 if (slpmsg->slpcall->progress_cb != NULL)
9226
8eb466827540 [gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9219
diff changeset
288 {
9231
aa417f2a801e [gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9226
diff changeset
289 slpmsg->slpcall->progress_cb(slpmsg->slpcall, slpmsg->size,
aa417f2a801e [gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9226
diff changeset
290 len, slpmsg->offset);
9226
8eb466827540 [gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9219
diff changeset
291 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
292 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
293
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
294 /* slpmsg->offset += len; */
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
295 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
296
24613
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
297 /* We have received the message ack */
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
298 static void
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
299 msg_ack(MsnMessage *msg, void *data)
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
300 {
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
301 MsnSlpMessage *slpmsg;
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
302 long long real_size;
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
303
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
304 slpmsg = data;
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
305
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
306 real_size = (slpmsg->flags == 0x2) ? 0 : slpmsg->size;
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
307
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
308 slpmsg->offset += msg->msnslp_header.length;
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
309
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
310 if (slpmsg->offset < real_size)
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
311 {
29012
41e43f529c49 Fix sending an MSN file transfer request.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29010
diff changeset
312 if (slpmsg->slpcall->xfer && purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED)
28694
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
313 {
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
314 slpmsg->slpcall->xfer_msg = slpmsg;
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
315 purple_xfer_prpl_ready(slpmsg->slpcall->xfer);
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
316 }
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
317 else
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
318 msn_slplink_send_msgpart(slpmsg->slplink, slpmsg);
24613
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
319 }
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
320 else
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
321 {
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
322 /* The whole message has been sent */
25436
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
323 if (slpmsg->flags == 0x20 ||
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
324 slpmsg->flags == 0x1000020 || slpmsg->flags == 0x1000030)
24613
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
325 {
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
326 if (slpmsg->slpcall != NULL)
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
327 {
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
328 if (slpmsg->slpcall->cb)
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
329 slpmsg->slpcall->cb(slpmsg->slpcall,
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
330 NULL, 0);
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
331 }
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
332 }
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
333 }
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
334
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
335 slpmsg->msgs = g_list_remove(slpmsg->msgs, msg);
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
336 }
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
337
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
338 /* We have received the message nak. */
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
339 static void
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
340 msg_nak(MsnMessage *msg, void *data)
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
341 {
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
342 MsnSlpMessage *slpmsg;
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
343
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
344 slpmsg = data;
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
345
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
346 msn_slplink_send_msgpart(slpmsg->slplink, slpmsg);
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
347
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
348 slpmsg->msgs = g_list_remove(slpmsg->msgs, msg);
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
349 }
3b06e8f7c8f0 Move msn_slplink_send_msgpart() that it doesn't need a forward declaration
Mark Doliner <markdoliner@pidgin.im>
parents: 24611
diff changeset
350
24622
5e09935657d4 Make another function static
Mark Doliner <markdoliner@pidgin.im>
parents: 24621
diff changeset
351 static void
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
352 msn_slplink_release_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
353 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
354 MsnMessage *msg;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
355
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
356 slpmsg->msg = msg = msn_message_new_msnslp();
9198
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
357
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
358 if (slpmsg->flags == 0x0)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
359 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
360 msg->msnslp_header.session_id = slpmsg->session_id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
361 msg->msnslp_header.ack_id = rand() % 0xFFFFFF00;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
362 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
363 else if (slpmsg->flags == 0x2)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
364 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
365 msg->msnslp_header.session_id = slpmsg->session_id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
366 msg->msnslp_header.ack_id = slpmsg->ack_id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
367 msg->msnslp_header.ack_size = slpmsg->ack_size;
11321
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11164
diff changeset
368 msg->msnslp_header.ack_sub_id = slpmsg->ack_sub_id;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
369 }
25436
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
370 else if (slpmsg->flags == 0x20 ||
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
371 slpmsg->flags == 0x1000020 || slpmsg->flags == 0x1000030)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
372 {
23938
4570d6e22b9e Get rid of MsnSlpSession entirely. It only seems to link to MsnSlpCall
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23822
diff changeset
373 MsnSlpCall *slpcall;
4570d6e22b9e Get rid of MsnSlpSession entirely. It only seems to link to MsnSlpCall
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23822
diff changeset
374 slpcall = slpmsg->slpcall;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
375
23938
4570d6e22b9e Get rid of MsnSlpSession entirely. It only seems to link to MsnSlpCall
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23822
diff changeset
376 g_return_if_fail(slpcall != NULL);
4570d6e22b9e Get rid of MsnSlpSession entirely. It only seems to link to MsnSlpCall
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23822
diff changeset
377 msg->msnslp_header.session_id = slpcall->session_id;
4570d6e22b9e Get rid of MsnSlpSession entirely. It only seems to link to MsnSlpCall
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23822
diff changeset
378 msg->msnslp_footer.value = slpcall->app_id;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
379 msg->msnslp_header.ack_id = rand() % 0xFFFFFF00;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
380 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
381 else if (slpmsg->flags == 0x100)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
382 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
383 msg->msnslp_header.ack_id = slpmsg->ack_id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
384 msg->msnslp_header.ack_sub_id = slpmsg->ack_sub_id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
385 msg->msnslp_header.ack_size = slpmsg->ack_size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
386 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
387
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
388 msg->msnslp_header.id = slpmsg->id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
389 msg->msnslp_header.flags = slpmsg->flags;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
390
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
391 msg->msnslp_header.total_size = slpmsg->size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
392
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
393 msn_message_set_attr(msg, "P2P-Dest", slplink->remote_user);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
394
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
395 msg->ack_cb = msg_ack;
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
396 msg->nak_cb = msg_nak;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
397 msg->ack_data = slpmsg;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
398
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
399 msn_slplink_send_msgpart(slplink, slpmsg);
10284
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10225
diff changeset
400
257978b5df5b [gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10225
diff changeset
401 msn_message_destroy(msg);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
402 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
403
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
404 void
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
405 msn_slplink_queue_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
406 {
25434
095988451602 This should prevent the crash in #8109 by stopping an invalid message from
Daniel Atallah <datallah@pidgin.im>
parents: 24622
diff changeset
407 g_return_if_fail(slpmsg != NULL);
095988451602 This should prevent the crash in #8109 by stopping an invalid message from
Daniel Atallah <datallah@pidgin.im>
parents: 24622
diff changeset
408
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
409 slpmsg->id = slplink->slp_seq_id++;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
410
24621
abf83be6a71f This doesn't matter, but I think the metaphor tends to be that you push
Mark Doliner <markdoliner@pidgin.im>
parents: 24620
diff changeset
411 g_queue_push_tail(slplink->slp_msg_queue, slpmsg);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
412 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
413
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
414 void
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
415 msn_slplink_send_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
416 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
417 slpmsg->id = slplink->slp_seq_id++;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
418
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
419 msn_slplink_release_slpmsg(slplink, slpmsg);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
420 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
421
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
422 void
24620
96c993e8f462 Reame msn_slplink_unleash to msn_slplink_send_queued_slpmsgs, which I
Mark Doliner <markdoliner@pidgin.im>
parents: 24618
diff changeset
423 msn_slplink_send_queued_slpmsgs(MsnSlpLink *slplink)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
424 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
425 MsnSlpMessage *slpmsg;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
426
24620
96c993e8f462 Reame msn_slplink_unleash to msn_slplink_send_queued_slpmsgs, which I
Mark Doliner <markdoliner@pidgin.im>
parents: 24618
diff changeset
427 /* Send the queued msgs in the order they were created */
24621
abf83be6a71f This doesn't matter, but I think the metaphor tends to be that you push
Mark Doliner <markdoliner@pidgin.im>
parents: 24620
diff changeset
428 while ((slpmsg = g_queue_pop_head(slplink->slp_msg_queue)) != NULL)
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
429 {
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
430 msn_slplink_release_slpmsg(slplink, slpmsg);
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
431 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
432 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
433
24616
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
434 static void
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
435 msn_slplink_send_ack(MsnSlpLink *slplink, MsnMessage *msg)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
436 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
437 MsnSlpMessage *slpmsg;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
438
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
439 slpmsg = msn_slpmsg_new(slplink);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
440
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
441 slpmsg->session_id = msg->msnslp_header.session_id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
442 slpmsg->size = msg->msnslp_header.total_size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
443 slpmsg->flags = 0x02;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
444 slpmsg->ack_id = msg->msnslp_header.id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
445 slpmsg->ack_sub_id = msg->msnslp_header.ack_id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
446 slpmsg->ack_size = msg->msnslp_header.total_size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
447 slpmsg->info = "SLP ACK";
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
448
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
449 msn_slplink_send_slpmsg(slplink, slpmsg);
28204
28e981286c52 Patch written by Mark Doliner and Paul Aurich to fix a remote crash on MSN
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 28164
diff changeset
450 msn_slpmsg_destroy(slpmsg);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
451 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
452
9571
8a462c9e01aa [gaim-migrate @ 10414]
Mark Doliner <markdoliner@pidgin.im>
parents: 9330
diff changeset
453 static void
23938
4570d6e22b9e Get rid of MsnSlpSession entirely. It only seems to link to MsnSlpCall
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 23822
diff changeset
454 send_file_cb(MsnSlpCall *slpcall)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
455 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
456 MsnSlpMessage *slpmsg;
17089
b27c8579750b Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
457 PurpleXfer *xfer;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
458
29131
ed2f55cc6ad9 Calling purple_xfer_start may actually cancel the transfer (if the file
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29130
diff changeset
459 xfer = (PurpleXfer *)slpcall->xfer;
ed2f55cc6ad9 Calling purple_xfer_start may actually cancel the transfer (if the file
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29130
diff changeset
460 purple_xfer_ref(xfer);
ed2f55cc6ad9 Calling purple_xfer_start may actually cancel the transfer (if the file
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29130
diff changeset
461 purple_xfer_start(xfer, -1, NULL, 0);
ed2f55cc6ad9 Calling purple_xfer_start may actually cancel the transfer (if the file
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29130
diff changeset
462 if (purple_xfer_get_status(xfer) != PURPLE_XFER_STATUS_STARTED) {
ed2f55cc6ad9 Calling purple_xfer_start may actually cancel the transfer (if the file
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29130
diff changeset
463 purple_xfer_unref(xfer);
ed2f55cc6ad9 Calling purple_xfer_start may actually cancel the transfer (if the file
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29130
diff changeset
464 return;
ed2f55cc6ad9 Calling purple_xfer_start may actually cancel the transfer (if the file
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29130
diff changeset
465 }
ed2f55cc6ad9 Calling purple_xfer_start may actually cancel the transfer (if the file
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29130
diff changeset
466 purple_xfer_unref(xfer);
ed2f55cc6ad9 Calling purple_xfer_start may actually cancel the transfer (if the file
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29130
diff changeset
467
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
468 slpmsg = msn_slpmsg_new(slpcall->slplink);
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
469 slpmsg->slpcall = slpcall;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
470 slpmsg->flags = 0x1000030;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
471 slpmsg->info = "SLP FILE";
29129
d203bc28f252 I don't think there's any reason to stat this file instead of using the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29012
diff changeset
472 slpmsg->size = purple_xfer_get_size(xfer);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
473
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
474 msn_slplink_send_slpmsg(slpcall->slplink, slpmsg);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
475 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
476
24616
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
477 static MsnSlpMessage *
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
478 msn_slplink_message_find(MsnSlpLink *slplink, long session_id, long id)
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
479 {
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
480 GList *e;
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
481
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
482 for (e = slplink->slp_msgs; e != NULL; e = e->next)
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
483 {
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
484 MsnSlpMessage *slpmsg = e->data;
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
485
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
486 if ((slpmsg->session_id == session_id) && (slpmsg->id == id))
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
487 return slpmsg;
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
488 }
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
489
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
490 return NULL;
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
491 }
5c788a8a8160 Make a few more functions static and remove a few declarations for
Mark Doliner <markdoliner@pidgin.im>
parents: 24615
diff changeset
492
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
493 void
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
494 msn_slplink_process_msg(MsnSlpLink *slplink, MsnMessage *msg)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
495 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
496 MsnSlpMessage *slpmsg;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
497 const char *data;
25738
1dbaaa263c96 *** Plucked rev 9dd1c4c3 (khc@pidgin.im):
Paul Aurich <darkrain42@pidgin.im>
parents: 25436
diff changeset
498 guint64 offset;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
499 gsize len;
28694
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
500 PurpleXfer *xfer = NULL;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
501
27770
9d4cc577fe26 Apparently, I missed a few changes for purple_debug_is_verbose().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27361
diff changeset
502 if (purple_debug_is_verbose())
9d4cc577fe26 Apparently, I missed a few changes for purple_debug_is_verbose().
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27361
diff changeset
503 msn_slpmsg_show(msg);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
504
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
505 #ifdef MSN_DEBUG_SLP_FILES
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
506 debug_msg_to_file(msg, FALSE);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
507 #endif
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
508
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
509 if (msg->msnslp_header.total_size < msg->msnslp_header.length)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
510 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
511 purple_debug_error("msn", "This can't be good\n");
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
512 g_return_if_reached();
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
513 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
514
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
515 data = msn_message_get_bin_data(msg, &len);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
516
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
517 offset = msg->msnslp_header.offset;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
518
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
519 if (offset == 0)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
520 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
521 slpmsg = msn_slpmsg_new(slplink);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
522 slpmsg->id = msg->msnslp_header.id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
523 slpmsg->session_id = msg->msnslp_header.session_id;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
524 slpmsg->size = msg->msnslp_header.total_size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
525 slpmsg->flags = msg->msnslp_header.flags;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
526
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
527 if (slpmsg->session_id)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
528 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
529 if (slpmsg->slpcall == NULL)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
530 slpmsg->slpcall = msn_slplink_find_slp_call_with_session_id(slplink, slpmsg->session_id);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
531
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
532 if (slpmsg->slpcall != NULL)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
533 {
25436
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
534 if (slpmsg->flags == 0x20 ||
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
535 slpmsg->flags == 0x1000020 || slpmsg->flags == 0x1000030)
9226
8eb466827540 [gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9219
diff changeset
536 {
8eb466827540 [gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9219
diff changeset
537 xfer = slpmsg->slpcall->xfer;
8eb466827540 [gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9219
diff changeset
538 if (xfer != NULL)
8eb466827540 [gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9219
diff changeset
539 {
28694
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
540 slpmsg->ft = TRUE;
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
541 slpmsg->slpcall->xfer_msg = slpmsg;
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
542
23991
7f0f58aafd57 take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents: 23938
diff changeset
543 purple_xfer_ref(xfer);
28152
e9800c07eb5b ft: Fix a bunch of uses of 0 as an 'invalid' fd.
Paul Aurich <darkrain42@pidgin.im>
parents: 28017
diff changeset
544 purple_xfer_start(xfer, -1, NULL, 0);
23991
7f0f58aafd57 take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents: 23938
diff changeset
545
7f0f58aafd57 take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents: 23938
diff changeset
546 if (xfer->data == NULL) {
7f0f58aafd57 take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents: 23938
diff changeset
547 purple_xfer_unref(xfer);
28017
7fdad79d010a I don't understand how this branch could be reached, but don't leak the slp
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27770
diff changeset
548 msn_slpmsg_destroy(slpmsg);
7fdad79d010a I don't understand how this branch could be reached, but don't leak the slp
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 27770
diff changeset
549 g_return_if_reached();
23991
7f0f58aafd57 take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents: 23938
diff changeset
550 } else {
7f0f58aafd57 take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents: 23938
diff changeset
551 purple_xfer_unref(xfer);
7f0f58aafd57 take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents: 23938
diff changeset
552 }
9226
8eb466827540 [gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9219
diff changeset
553 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
554 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
555 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
556 }
29010
2ddb58c7f71e Get rid of slpmsg->fp since the core is handling all the partial reads and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28694
diff changeset
557 if (!slpmsg->ft && slpmsg->size)
10092
48f870a068a1 [gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10088
diff changeset
558 {
48f870a068a1 [gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10088
diff changeset
559 slpmsg->buffer = g_try_malloc(slpmsg->size);
48f870a068a1 [gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10088
diff changeset
560 if (slpmsg->buffer == NULL)
48f870a068a1 [gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10088
diff changeset
561 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
562 purple_debug_error("msn", "Failed to allocate buffer for slpmsg\n");
25738
1dbaaa263c96 *** Plucked rev 9dd1c4c3 (khc@pidgin.im):
Paul Aurich <darkrain42@pidgin.im>
parents: 25436
diff changeset
563 msn_slpmsg_destroy(slpmsg);
10092
48f870a068a1 [gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10088
diff changeset
564 return;
48f870a068a1 [gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10088
diff changeset
565 }
48f870a068a1 [gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10088
diff changeset
566 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
567 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
568 else
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
569 {
10092
48f870a068a1 [gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 10088
diff changeset
570 slpmsg = msn_slplink_message_find(slplink, msg->msnslp_header.session_id, msg->msnslp_header.id);
28164
6a9089f8abf1 Move this check inside the else condition. The other half of the if
Mark Doliner <markdoliner@pidgin.im>
parents: 28152
diff changeset
571 if (slpmsg == NULL)
6a9089f8abf1 Move this check inside the else condition. The other half of the if
Mark Doliner <markdoliner@pidgin.im>
parents: 28152
diff changeset
572 {
6a9089f8abf1 Move this check inside the else condition. The other half of the if
Mark Doliner <markdoliner@pidgin.im>
parents: 28152
diff changeset
573 /* Probably the transfer was canceled */
6a9089f8abf1 Move this check inside the else condition. The other half of the if
Mark Doliner <markdoliner@pidgin.im>
parents: 28152
diff changeset
574 purple_debug_error("msn", "Couldn't find slpmsg\n");
6a9089f8abf1 Move this check inside the else condition. The other half of the if
Mark Doliner <markdoliner@pidgin.im>
parents: 28152
diff changeset
575 return;
6a9089f8abf1 Move this check inside the else condition. The other half of the if
Mark Doliner <markdoliner@pidgin.im>
parents: 28152
diff changeset
576 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
577 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
578
29010
2ddb58c7f71e Get rid of slpmsg->fp since the core is handling all the partial reads and
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 28694
diff changeset
579 if (slpmsg->ft)
28694
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
580 {
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
581 xfer = slpmsg->slpcall->xfer;
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
582 slpmsg->slpcall->u.incoming_data =
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
583 g_byte_array_append(slpmsg->slpcall->u.incoming_data, (const guchar *)data, len);
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
584 purple_xfer_prpl_ready(xfer);
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
585 }
28204
28e981286c52 Patch written by Mark Doliner and Paul Aurich to fix a remote crash on MSN
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 28164
diff changeset
586 else if (slpmsg->size && slpmsg->buffer)
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
587 {
23199
c8a241b5a5b5 MSN SLP fix
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 23197
diff changeset
588 if (G_MAXSIZE - len < offset || (offset + len) > slpmsg->size)
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
589 {
22969
51f5e7777915 This cleans up a bunch of warnings that stem from the fact that size_t and
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22709
diff changeset
590 purple_debug_error("msn",
27149
f8462e36cb98 Fix two warnings when building on OS X
Paul Aurich <darkrain42@pidgin.im>
parents: 27085
diff changeset
591 "Oversized slpmsg - msgsize=%lld offset=%" G_GUINT64_FORMAT " len=%" G_GSIZE_FORMAT "\n",
22969
51f5e7777915 This cleans up a bunch of warnings that stem from the fact that size_t and
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 22709
diff changeset
592 slpmsg->size, offset, len);
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
593 g_return_if_reached();
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
594 }
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
595 else
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
596 memcpy(slpmsg->buffer + offset, data, len);
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
597 }
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
598
25436
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
599 if ((slpmsg->flags == 0x20 ||
816489458249 A patch from Thomas Gibson-Robinson to fix receiving buddy icons, custom
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25434
diff changeset
600 slpmsg->flags == 0x1000020 || slpmsg->flags == 0x1000030) &&
10345
7d7f8cfa2b4f [gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10296
diff changeset
601 (slpmsg->slpcall != NULL))
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
602 {
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
603 slpmsg->slpcall->progress = TRUE;
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
604
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
605 if (slpmsg->slpcall->progress_cb != NULL)
9231
aa417f2a801e [gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9226
diff changeset
606 {
aa417f2a801e [gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9226
diff changeset
607 slpmsg->slpcall->progress_cb(slpmsg->slpcall, slpmsg->size,
aa417f2a801e [gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9226
diff changeset
608 len, offset);
aa417f2a801e [gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9226
diff changeset
609 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
610 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
611
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
612 #if 0
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
613 if (slpmsg->buffer == NULL)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
614 return;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
615 #endif
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
616
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
617 if (msg->msnslp_header.offset + msg->msnslp_header.length
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
618 >= msg->msnslp_header.total_size)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
619 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
620 /* All the pieces of the slpmsg have been received */
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
621 MsnSlpCall *slpcall;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
622
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
623 slpcall = msn_slp_process_msg(slplink, slpmsg);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
624
29133
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
625 if (slpcall == NULL) {
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
626 msn_slpmsg_destroy(slpmsg);
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
627 return;
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
628 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
629
29133
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
630 if (!slpcall->wasted) {
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
631 if (slpmsg->flags == 0x100)
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
632 {
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
633 MsnDirectConn *directconn;
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
634
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
635 directconn = slplink->directconn;
20514
676caf300d2c Finish commenting out references to directconn that would never be called
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20509
diff changeset
636 #if 0
29133
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
637 if (!directconn->acked)
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
638 msn_directconn_send_handshake(directconn);
20514
676caf300d2c Finish commenting out references to directconn that would never be called
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 20509
diff changeset
639 #endif
29133
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
640 }
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
641 else if (slpmsg->flags == 0x00 || slpmsg->flags == 0x1000000 ||
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
642 slpmsg->flags == 0x20 || slpmsg->flags == 0x1000020 ||
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
643 slpmsg->flags == 0x1000030)
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
644 {
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
645 /* Release all the messages and send the ACK */
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
646
29133
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
647 msn_slplink_send_ack(slplink, msg);
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
648 msn_slplink_send_queued_slpmsgs(slplink);
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
649 }
295451fe7ee7 Don't sent an ACK to a SLP message if the SlpCall has been marked as wasted
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29131
diff changeset
650
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
651 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
652
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
653 msn_slpmsg_destroy(slpmsg);
29135
84c866941530 Oops, don't break things for successfully receiving of a file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29134
diff changeset
654
84c866941530 Oops, don't break things for successfully receiving of a file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29134
diff changeset
655 if (slpcall->wasted)
84c866941530 Oops, don't break things for successfully receiving of a file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 29134
diff changeset
656 msn_slpcall_destroy(slpcall);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
657 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
658 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
659
9198
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
660 typedef struct
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
661 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
662 guint32 length;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
663 guint32 unk1;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
664 guint32 file_size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
665 guint32 unk2;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
666 guint32 unk3;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
667 } MsnContextHeader;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
668
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
669 #define MAX_FILE_NAME_LEN 0x226
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
670
11367
98a6c86c1331 [gaim-migrate @ 13591]
Richard Laager <rlaager@pidgin.im>
parents: 11321
diff changeset
671 static gchar *
29167
8f50a1b6fdfc msn: Use the PurpleXfer size if available.
Paul Aurich <darkrain42@pidgin.im>
parents: 29135
diff changeset
672 gen_context(PurpleXfer *xfer, const char *file_name, const char *file_path)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
673 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
674 struct stat st;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
675 gsize size = 0;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
676 MsnContextHeader header;
10047
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
677 gchar *u8 = NULL;
11367
98a6c86c1331 [gaim-migrate @ 13591]
Richard Laager <rlaager@pidgin.im>
parents: 11321
diff changeset
678 guchar *base;
98a6c86c1331 [gaim-migrate @ 13591]
Richard Laager <rlaager@pidgin.im>
parents: 11321
diff changeset
679 guchar *n;
98a6c86c1331 [gaim-migrate @ 13591]
Richard Laager <rlaager@pidgin.im>
parents: 11321
diff changeset
680 gchar *ret;
10047
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
681 gunichar2 *uni = NULL;
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
682 glong currentChar = 0;
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
683 glong uni_len = 0;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
684 gsize len;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
685
29167
8f50a1b6fdfc msn: Use the PurpleXfer size if available.
Paul Aurich <darkrain42@pidgin.im>
parents: 29135
diff changeset
686 if (xfer)
8f50a1b6fdfc msn: Use the PurpleXfer size if available.
Paul Aurich <darkrain42@pidgin.im>
parents: 29135
diff changeset
687 size = purple_xfer_get_size(xfer);
8f50a1b6fdfc msn: Use the PurpleXfer size if available.
Paul Aurich <darkrain42@pidgin.im>
parents: 29135
diff changeset
688
8f50a1b6fdfc msn: Use the PurpleXfer size if available.
Paul Aurich <darkrain42@pidgin.im>
parents: 29135
diff changeset
689 if (size == 0 && g_stat(file_path, &st) == 0)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
690 size = st.st_size;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
691
10047
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
692 if(!file_name) {
27085
b2ae59736f80 Fix a signed-ness warning.
Paul Aurich <darkrain42@pidgin.im>
parents: 27001
diff changeset
693 gchar *basename = g_path_get_basename(file_path);
b2ae59736f80 Fix a signed-ness warning.
Paul Aurich <darkrain42@pidgin.im>
parents: 27001
diff changeset
694 u8 = purple_utf8_try_convert(basename);
b2ae59736f80 Fix a signed-ness warning.
Paul Aurich <darkrain42@pidgin.im>
parents: 27001
diff changeset
695 g_free(basename);
10047
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
696 file_name = u8;
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
697 }
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
698
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
699 uni = g_utf8_to_utf16(file_name, -1, NULL, &uni_len, NULL);
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
700
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
701 if(u8) {
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
702 g_free(u8);
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
703 file_name = NULL;
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
704 u8 = NULL;
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
705 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
706
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
707 len = sizeof(MsnContextHeader) + MAX_FILE_NAME_LEN + 4;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
708
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
709 header.length = GUINT32_TO_LE(len);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
710 header.unk1 = GUINT32_TO_LE(2);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
711 header.file_size = GUINT32_TO_LE(size);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
712 header.unk2 = GUINT32_TO_LE(0);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
713 header.unk3 = GUINT32_TO_LE(0);
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
714
10047
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
715 base = g_malloc(len + 1);
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
716 n = base;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
717
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
718 memcpy(n, &header, sizeof(MsnContextHeader));
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
719 n += sizeof(MsnContextHeader);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
720
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
721 memset(n, 0x00, MAX_FILE_NAME_LEN);
10047
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
722 for(currentChar = 0; currentChar < uni_len; currentChar++) {
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
723 *((gunichar2 *)n + currentChar) = GUINT16_TO_LE(uni[currentChar]);
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
724 }
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
725 n += MAX_FILE_NAME_LEN;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
726
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
727 memset(n, 0xFF, 4);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
728 n += 4;
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
729
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
730 g_free(uni);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
731 ret = purple_base64_encode(base, len);
11321
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11164
diff changeset
732 g_free(base);
a93121c0ea16 [gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 11164
diff changeset
733 return ret;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
734 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
735
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
736 void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
737 msn_slplink_request_ft(MsnSlpLink *slplink, PurpleXfer *xfer)
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
738 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
739 MsnSlpCall *slpcall;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
740 char *context;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
741 const char *fn;
10047
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
742 const char *fp;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
743
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
744 fn = purple_xfer_get_filename(xfer);
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
745 fp = purple_xfer_get_local_filename(xfer);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
746
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
747 g_return_if_fail(slplink != NULL);
10047
b7324b8a4517 [gaim-migrate @ 11008]
Jean-Francois Roy
parents: 9861
diff changeset
748 g_return_if_fail(fp != NULL);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
749
24618
190103ba3381 For some reason the slpmsg and slplink functions don't have underscores
Mark Doliner <markdoliner@pidgin.im>
parents: 24616
diff changeset
750 slpcall = msn_slpcall_new(slplink);
190103ba3381 For some reason the slpmsg and slplink functions don't have underscores
Mark Doliner <markdoliner@pidgin.im>
parents: 24616
diff changeset
751 msn_slpcall_init(slpcall, MSN_SLPCALL_DC);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
752
9571
8a462c9e01aa [gaim-migrate @ 10414]
Mark Doliner <markdoliner@pidgin.im>
parents: 9330
diff changeset
753 slpcall->session_init_cb = send_file_cb;
9715
e1ec476ea395 [gaim-migrate @ 10576]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9571
diff changeset
754 slpcall->end_cb = msn_xfer_end_cb;
9259
03ac0392aa0b [gaim-migrate @ 10058]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9246
diff changeset
755 slpcall->cb = msn_xfer_completed_cb;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
756 slpcall->xfer = xfer;
17135
f17d0ae4cbd0 slpcall now explicitlt references its xfer and unreferences it when it is destroyed. While it *looks* like this should *probably* have happened anyways due to the interactins between xfer_init, xfer_end, and xfer_cancel_remote, having the xfer's owner make this explicit makes the process less fragile and more obvious, and it may fix a crash as the slp is destroyed. Fixes #1070
Evan Schoenberg <evands@pidgin.im>
parents: 17134
diff changeset
757 purple_xfer_ref(slpcall->xfer);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
758
10296
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
759 slpcall->pending = TRUE;
9badf1cedc6e [gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10284
diff changeset
760
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
761 purple_xfer_set_cancel_send_fnc(xfer, msn_xfer_cancel);
28694
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
762 purple_xfer_set_read_fnc(xfer, msn_xfer_read);
76761af122e8 A quick and dirty hack to make MSN use the in-core code to perform FT.
Paul Aurich <darkrain42@pidgin.im>
parents: 28238
diff changeset
763 purple_xfer_set_write_fnc(xfer, msn_xfer_write);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
764
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
765 xfer->data = slpcall;
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
766
29167
8f50a1b6fdfc msn: Use the PurpleXfer size if available.
Paul Aurich <darkrain42@pidgin.im>
parents: 29135
diff changeset
767 context = gen_context(xfer, fn, fp);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
768
24618
190103ba3381 For some reason the slpmsg and slplink functions don't have underscores
Mark Doliner <markdoliner@pidgin.im>
parents: 24616
diff changeset
769 msn_slpcall_invite(slpcall, MSN_FT_GUID, 2, context);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
770
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
771 g_free(context);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
772 }
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
773
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
774 void
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
775 msn_slplink_request_object(MsnSlpLink *slplink,
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
776 const char *info,
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
777 MsnSlpCb cb,
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
778 MsnSlpEndCb end_cb,
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
779 const MsnObject *obj)
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
780 {
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
781 MsnSlpCall *slpcall;
11164
4396374c0cd9 [gaim-migrate @ 13265]
Mark Doliner <markdoliner@pidgin.im>
parents: 10773
diff changeset
782 char *msnobj_data;
4396374c0cd9 [gaim-migrate @ 13265]
Mark Doliner <markdoliner@pidgin.im>
parents: 10773
diff changeset
783 char *msnobj_base64;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
784
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
785 g_return_if_fail(slplink != NULL);
9861
2aae2032f2bf [gaim-migrate @ 10740]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 9788
diff changeset
786 g_return_if_fail(obj != NULL);
9198
e8eb6d5eb9eb [gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents: 9193
diff changeset
787
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
788 msnobj_data = msn_object_to_string(obj);
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
789 msnobj_base64 = purple_base64_encode((const guchar *)msnobj_data, strlen(msnobj_data));
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
790 g_free(msnobj_data);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
791
24618
190103ba3381 For some reason the slpmsg and slplink functions don't have underscores
Mark Doliner <markdoliner@pidgin.im>
parents: 24616
diff changeset
792 slpcall = msn_slpcall_new(slplink);
190103ba3381 For some reason the slpmsg and slplink functions don't have underscores
Mark Doliner <markdoliner@pidgin.im>
parents: 24616
diff changeset
793 msn_slpcall_init(slpcall, MSN_SLPCALL_ANY);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
794
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
795 slpcall->data_info = g_strdup(info);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
796 slpcall->cb = cb;
10225
0dfea1bc8695 [gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents: 10107
diff changeset
797 slpcall->end_cb = end_cb;
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
798
24618
190103ba3381 For some reason the slpmsg and slplink functions don't have underscores
Mark Doliner <markdoliner@pidgin.im>
parents: 24616
diff changeset
799 msn_slpcall_invite(slpcall, MSN_OBJ_GUID, 1, msnobj_base64);
9193
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
800
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
801 g_free(msnobj_base64);
6e76f1367896 [gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff changeset
802 }

mercurial