Thu, 07 Aug 2008 07:07:32 +0000
take an extra reference to PurpleXfer so we can check whether the whole
thing went away. I haven't tested this because it's late, but it shouldn't
break things or at least shouldn't make things worse.
It would be great if someone can test this and let me know.
References #6246
|
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 | 4 | * purple |
|
9198
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
5 | * |
| 15884 | 6 | * Purple is the legal property of its developers, whose names are too numerous |
|
9198
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
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 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
30 | void msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
31 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
32 | #ifdef MSN_DEBUG_SLP_FILES |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
33 | static int m_sc = 0; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
34 | static int m_rc = 0; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
35 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
36 | static void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
37 | debug_msg_to_file(MsnMessage *msg, gboolean send) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
38 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
39 | char *tmp; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
40 | char *dir; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
41 | char *pload; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
42 | int c; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
43 | gsize pload_size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
44 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
45 | dir = send ? "send" : "recv"; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
46 | c = send ? m_sc++ : m_rc++; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
47 | 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
|
48 | 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
|
49 | 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
|
50 | { |
|
21384
ee8c8910330b
Patch from eperez to fix some debug code, Fixes #3524
Ka-Hing Cheung <khc@pidgin.im>
parents:
21018
diff
changeset
|
51 | purple_debug_error("msn", "could not save debug file"); |
|
13315
97ad5f28f254
[gaim-migrate @ 15680]
Glauber de Oliveira Costa <gcosta@redhat.com>
parents:
11607
diff
changeset
|
52 | } |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
53 | g_free(tmp); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
54 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
55 | #endif |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
56 | |
|
10602
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 | * Main |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
59 | **************************************************************************/ |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
60 | |
|
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
|
61 | static MsnSlpLink * |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
62 | msn_slplink_new(MsnSession *session, const char *username) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
63 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
64 | MsnSlpLink *slplink; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
65 | |
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
66 | g_return_val_if_fail(session != NULL, NULL); |
|
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
67 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
68 | slplink = g_new0(MsnSlpLink, 1); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
69 | |
|
10773
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
70 | #ifdef MSN_DEBUG_SLPLINK |
| 15884 | 71 | 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
|
72 | #endif |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
73 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
74 | slplink->session = session; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
75 | slplink->slp_seq_id = rand() % 0xFFFFFF00 + 4; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
76 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
77 | slplink->local_user = g_strdup(msn_user_get_passport(session->user)); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
78 | slplink->remote_user = g_strdup(username); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
79 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
80 | slplink->slp_msg_queue = g_queue_new(); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
81 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
82 | session->slplinks = |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
83 | g_list_append(session->slplinks, slplink); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
84 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
85 | return 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 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
88 | void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
89 | msn_slplink_destroy(MsnSlpLink *slplink) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
90 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
91 | MsnSession *session; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
92 | |
|
10773
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
93 | #ifdef MSN_DEBUG_SLPLINK |
| 15884 | 94 | 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
|
95 | #endif |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
96 | |
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
97 | g_return_if_fail(slplink != NULL); |
|
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
98 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
99 | if (slplink->swboard != NULL) |
|
14029
0e8ca0cb7054
[gaim-migrate @ 16523]
Mark Doliner <markdoliner@pidgin.im>
parents:
13315
diff
changeset
|
100 | 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
|
101 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
102 | session = slplink->session; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
103 | |
|
22981
b83a23981419
Fix a number of leaks. As far as I can tell, MSNP14 now logs in without
Daniel Atallah <datallah@pidgin.im>
parents:
22969
diff
changeset
|
104 | g_free(slplink->local_user); |
|
b83a23981419
Fix a number of leaks. As far as I can tell, MSNP14 now logs in without
Daniel Atallah <datallah@pidgin.im>
parents:
22969
diff
changeset
|
105 | g_free(slplink->remote_user); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
106 | |
|
20509
cec1267fa436
Disable building of directconn.c, nothing uses it, it has compile warnings
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20503
diff
changeset
|
107 | #if 0 |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
108 | if (slplink->directconn != NULL) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
109 | 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
|
110 | #endif |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
111 | |
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
112 | while (slplink->slp_calls != NULL) |
|
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
113 | msn_slp_call_destroy(slplink->slp_calls->data); |
|
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
114 | |
| 21018 | 115 | g_queue_free(slplink->slp_msg_queue); |
| 116 | ||
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
117 | session->slplinks = |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
118 | g_list_remove(session->slplinks, slplink); |
|
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 | g_free(slplink); |
|
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 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
123 | MsnSlpLink * |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
124 | msn_session_find_slplink(MsnSession *session, const char *who) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
125 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
126 | GList *l; |
|
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 | for (l = session->slplinks; l != NULL; l = l->next) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
129 | { |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
130 | MsnSlpLink *slplink; |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
131 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
132 | slplink = l->data; |
|
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 | if (!strcmp(slplink->remote_user, who)) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
135 | return slplink; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
136 | } |
|
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 | return NULL; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
139 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
140 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
141 | MsnSlpLink * |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
142 | msn_session_get_slplink(MsnSession *session, const char *username) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
143 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
144 | MsnSlpLink *slplink; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
145 | |
|
15049
d8749c39e1e4
[gaim-migrate @ 17766]
Daniel Atallah <datallah@pidgin.im>
parents:
14254
diff
changeset
|
146 | g_return_val_if_fail(session != NULL, NULL); |
|
d8749c39e1e4
[gaim-migrate @ 17766]
Daniel Atallah <datallah@pidgin.im>
parents:
14254
diff
changeset
|
147 | g_return_val_if_fail(username != NULL, NULL); |
|
d8749c39e1e4
[gaim-migrate @ 17766]
Daniel Atallah <datallah@pidgin.im>
parents:
14254
diff
changeset
|
148 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
149 | slplink = msn_session_find_slplink(session, username); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
150 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
151 | if (slplink == NULL) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
152 | slplink = msn_slplink_new(session, username); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
153 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
154 | return slplink; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
155 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
156 | |
|
10602
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
157 | void |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
158 | msn_slplink_add_slpcall(MsnSlpLink *slplink, MsnSlpCall *slpcall) |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
159 | { |
|
10621
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
160 | if (slplink->swboard != NULL) |
|
2b214ffb112b
[gaim-migrate @ 12090]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10602
diff
changeset
|
161 | slplink->swboard->flag |= MSN_SB_FLAG_FT; |
|
10602
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_append(slplink->slp_calls, slpcall); |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
164 | } |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
165 | |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
166 | void |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
167 | msn_slplink_remove_slpcall(MsnSlpLink *slplink, MsnSlpCall *slpcall) |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
168 | { |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
169 | slplink->slp_calls = g_list_remove(slplink->slp_calls, slpcall); |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
170 | |
|
10773
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
171 | /* The slplink has no slpcalls in it. If no one is using it, we might |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
172 | * destroy the switchboard, but we should be careful not to use the slplink |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
173 | * again. */ |
|
10602
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
174 | if (slplink->slp_calls == NULL) |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
175 | { |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
176 | if (slplink->swboard != NULL) |
|
10773
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
177 | { |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
178 | if (msn_switchboard_release(slplink->swboard, MSN_SB_FLAG_FT)) |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
179 | /* I'm not sure this is the best thing to do, but it's better |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
180 | * than nothing. */ |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
181 | slpcall->slplink = NULL; |
|
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
182 | } |
|
10602
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
183 | } |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
184 | } |
|
111ed237f509
[gaim-migrate @ 12032]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10589
diff
changeset
|
185 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
186 | MsnSlpCall * |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
187 | msn_slplink_find_slp_call(MsnSlpLink *slplink, const char *id) |
|
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 | GList *l; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
190 | MsnSlpCall *slpcall; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
191 | |
|
10107
a722b8760bed
[gaim-migrate @ 11139]
Evan Schoenberg <evands@pidgin.im>
parents:
10092
diff
changeset
|
192 | if (!id) |
|
a722b8760bed
[gaim-migrate @ 11139]
Evan Schoenberg <evands@pidgin.im>
parents:
10092
diff
changeset
|
193 | return NULL; |
|
a722b8760bed
[gaim-migrate @ 11139]
Evan Schoenberg <evands@pidgin.im>
parents:
10092
diff
changeset
|
194 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
195 | for (l = slplink->slp_calls; l != NULL; l = l->next) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
196 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
197 | slpcall = l->data; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
198 | |
|
10107
a722b8760bed
[gaim-migrate @ 11139]
Evan Schoenberg <evands@pidgin.im>
parents:
10092
diff
changeset
|
199 | if (slpcall->id && !strcmp(slpcall->id, id)) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
200 | return slpcall; |
|
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 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
203 | return NULL; |
|
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 | MsnSlpCall * |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
207 | 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
|
208 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
209 | GList *l; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
210 | MsnSlpCall *slpcall; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
211 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
212 | for (l = slplink->slp_calls; l != NULL; l = l->next) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
213 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
214 | slpcall = l->data; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
215 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
216 | if (slpcall->session_id == id) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
217 | return slpcall; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
218 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
219 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
220 | return NULL; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
221 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
222 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
223 | void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
224 | msn_slplink_send_msg(MsnSlpLink *slplink, MsnMessage *msg) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
225 | { |
|
20514
676caf300d2c
Finish commenting out references to directconn that would never be called
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20509
diff
changeset
|
226 | #if 0 |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
227 | if (slplink->directconn != NULL) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
228 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
229 | msn_directconn_send_msg(slplink->directconn, msg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
230 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
231 | else |
|
20514
676caf300d2c
Finish commenting out references to directconn that would never be called
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
20509
diff
changeset
|
232 | #endif |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
233 | { |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
234 | if (slplink->swboard == NULL) |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
235 | { |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
236 | slplink->swboard = msn_session_get_swboard(slplink->session, |
|
10773
ef88ffed66eb
[gaim-migrate @ 12382]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10621
diff
changeset
|
237 | slplink->remote_user, MSN_SB_FLAG_FT); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
238 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
239 | if (slplink->swboard == NULL) |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
240 | return; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
241 | |
|
10346
9c65a007b4a5
[gaim-migrate @ 11560]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10345
diff
changeset
|
242 | /* If swboard is destroyed we will be too */ |
|
14029
0e8ca0cb7054
[gaim-migrate @ 16523]
Mark Doliner <markdoliner@pidgin.im>
parents:
13315
diff
changeset
|
243 | 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
|
244 | } |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
245 | |
|
10481
a5d6b8e1717d
[gaim-migrate @ 11769]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10388
diff
changeset
|
246 | msn_switchboard_send_msg(slplink->swboard, msg, TRUE); |
|
9193
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 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
249 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
250 | /* We have received the message ack */ |
|
9571
8a462c9e01aa
[gaim-migrate @ 10414]
Mark Doliner <markdoliner@pidgin.im>
parents:
9330
diff
changeset
|
251 | static void |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
252 | msg_ack(MsnMessage *msg, void *data) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
253 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
254 | MsnSlpMessage *slpmsg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
255 | long long real_size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
256 | |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
257 | slpmsg = data; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
258 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
259 | real_size = (slpmsg->flags == 0x2) ? 0 : slpmsg->size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
260 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
261 | slpmsg->offset += msg->msnslp_header.length; |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
262 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
263 | if (slpmsg->offset < real_size) |
|
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 | msn_slplink_send_msgpart(slpmsg->slplink, slpmsg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
266 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
267 | else |
|
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 | /* The whole message has been sent */ |
|
9246
c2b1eeb1323f
[gaim-migrate @ 10045]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9231
diff
changeset
|
270 | if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
271 | { |
|
11595
fd22dcf805e8
[gaim-migrate @ 13865]
Daniel Atallah <datallah@pidgin.im>
parents:
11367
diff
changeset
|
272 | if (slpmsg->slpcall != NULL) |
|
9246
c2b1eeb1323f
[gaim-migrate @ 10045]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9231
diff
changeset
|
273 | { |
|
11595
fd22dcf805e8
[gaim-migrate @ 13865]
Daniel Atallah <datallah@pidgin.im>
parents:
11367
diff
changeset
|
274 | if (slpmsg->slpcall->cb) |
|
fd22dcf805e8
[gaim-migrate @ 13865]
Daniel Atallah <datallah@pidgin.im>
parents:
11367
diff
changeset
|
275 | slpmsg->slpcall->cb(slpmsg->slpcall, |
|
fd22dcf805e8
[gaim-migrate @ 13865]
Daniel Atallah <datallah@pidgin.im>
parents:
11367
diff
changeset
|
276 | NULL, 0); |
|
9246
c2b1eeb1323f
[gaim-migrate @ 10045]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9231
diff
changeset
|
277 | } |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
278 | } |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
279 | } |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
280 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
281 | slpmsg->msgs = g_list_remove(slpmsg->msgs, msg); |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
282 | } |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
283 | |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
284 | /* We have received the message nak. */ |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
285 | static void |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
286 | msg_nak(MsnMessage *msg, void *data) |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
287 | { |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
288 | MsnSlpMessage *slpmsg; |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
289 | |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
290 | slpmsg = data; |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
291 | |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
292 | msn_slplink_send_msgpart(slpmsg->slplink, slpmsg); |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
293 | |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
294 | slpmsg->msgs = g_list_remove(slpmsg->msgs, msg); |
|
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 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
297 | void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
298 | msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
299 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
300 | MsnMessage *msg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
301 | long long real_size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
302 | size_t len = 0; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
303 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
304 | /* 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
|
305 | * reusing the same one all the time. */ |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
306 | msg = slpmsg->msg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
307 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
308 | real_size = (slpmsg->flags == 0x2) ? 0 : slpmsg->size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
309 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
310 | if (slpmsg->offset < real_size) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
311 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
312 | if (slpmsg->fp) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
313 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
314 | char data[1202]; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
315 | len = fread(data, 1, sizeof(data), slpmsg->fp); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
316 | msn_message_set_bin_data(msg, data, len); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
317 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
318 | else |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
319 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
320 | len = slpmsg->size - slpmsg->offset; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
321 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
322 | if (len > 1202) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
323 | len = 1202; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
324 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
325 | msn_message_set_bin_data(msg, slpmsg->buffer + slpmsg->offset, len); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
326 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
327 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
328 | msg->msnslp_header.offset = slpmsg->offset; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
329 | msg->msnslp_header.length = len; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
330 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
331 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
332 | #ifdef MSN_DEBUG_SLP |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
333 | msn_message_show_readable(msg, slpmsg->info, slpmsg->text_body); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
334 | #endif |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
335 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
336 | #ifdef MSN_DEBUG_SLP_FILES |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
337 | debug_msg_to_file(msg, TRUE); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
338 | #endif |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
339 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
340 | slpmsg->msgs = |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
341 | g_list_append(slpmsg->msgs, msg); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
342 | msn_slplink_send_msg(slplink, msg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
343 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
344 | if ((slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) && |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
345 | (slpmsg->slpcall != NULL)) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
346 | { |
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
347 | slpmsg->slpcall->progress = TRUE; |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
348 | |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
349 | if (slpmsg->slpcall->progress_cb != NULL) |
|
9226
8eb466827540
[gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9219
diff
changeset
|
350 | { |
|
9231
aa417f2a801e
[gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9226
diff
changeset
|
351 | slpmsg->slpcall->progress_cb(slpmsg->slpcall, slpmsg->size, |
|
aa417f2a801e
[gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9226
diff
changeset
|
352 | len, slpmsg->offset); |
|
9226
8eb466827540
[gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9219
diff
changeset
|
353 | } |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
354 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
355 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
356 | /* slpmsg->offset += len; */ |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
357 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
358 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
359 | void |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
360 | msn_slplink_release_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
361 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
362 | MsnMessage *msg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
363 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
364 | slpmsg->msg = msg = msn_message_new_msnslp(); |
|
9198
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
365 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
366 | if (slpmsg->flags == 0x0) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
367 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
368 | msg->msnslp_header.session_id = slpmsg->session_id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
369 | msg->msnslp_header.ack_id = rand() % 0xFFFFFF00; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
370 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
371 | else if (slpmsg->flags == 0x2) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
372 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
373 | msg->msnslp_header.session_id = slpmsg->session_id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
374 | msg->msnslp_header.ack_id = slpmsg->ack_id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
375 | msg->msnslp_header.ack_size = slpmsg->ack_size; |
|
11321
a93121c0ea16
[gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11164
diff
changeset
|
376 | msg->msnslp_header.ack_sub_id = slpmsg->ack_sub_id; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
377 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
378 | else if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
379 | { |
|
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
|
380 | 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
|
381 | slpcall = slpmsg->slpcall; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
382 | |
|
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
|
383 | 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
|
384 | 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
|
385 | msg->msnslp_footer.value = slpcall->app_id; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
386 | msg->msnslp_header.ack_id = rand() % 0xFFFFFF00; |
|
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 | else if (slpmsg->flags == 0x100) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
389 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
390 | msg->msnslp_header.ack_id = slpmsg->ack_id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
391 | msg->msnslp_header.ack_sub_id = slpmsg->ack_sub_id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
392 | msg->msnslp_header.ack_size = slpmsg->ack_size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
393 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
394 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
395 | msg->msnslp_header.id = slpmsg->id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
396 | msg->msnslp_header.flags = slpmsg->flags; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
397 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
398 | msg->msnslp_header.total_size = slpmsg->size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
399 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
400 | msn_message_set_attr(msg, "P2P-Dest", slplink->remote_user); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
401 | |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
402 | msg->ack_cb = msg_ack; |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
403 | msg->nak_cb = msg_nak; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
404 | msg->ack_data = slpmsg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
405 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
406 | msn_slplink_send_msgpart(slplink, slpmsg); |
|
10284
257978b5df5b
[gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10225
diff
changeset
|
407 | |
|
257978b5df5b
[gaim-migrate @ 11454]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10225
diff
changeset
|
408 | msn_message_destroy(msg); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
409 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
410 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
411 | void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
412 | msn_slplink_queue_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) |
|
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 | slpmsg->id = slplink->slp_seq_id++; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
415 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
416 | g_queue_push_head(slplink->slp_msg_queue, slpmsg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
417 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
418 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
419 | void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
420 | msn_slplink_send_slpmsg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg) |
|
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 | slpmsg->id = slplink->slp_seq_id++; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
423 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
424 | msn_slplink_release_slpmsg(slplink, slpmsg); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
425 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
426 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
427 | void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
428 | msn_slplink_unleash(MsnSlpLink *slplink) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
429 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
430 | MsnSlpMessage *slpmsg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
431 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
432 | /* Send the queued msgs in the order they came. */ |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
433 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
434 | while ((slpmsg = g_queue_pop_tail(slplink->slp_msg_queue)) != NULL) |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
435 | { |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
436 | msn_slplink_release_slpmsg(slplink, slpmsg); |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
437 | } |
|
9193
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 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
440 | void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
441 | msn_slplink_send_ack(MsnSlpLink *slplink, MsnMessage *msg) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
442 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
443 | MsnSlpMessage *slpmsg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
444 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
445 | slpmsg = msn_slpmsg_new(slplink); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
446 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
447 | slpmsg->session_id = msg->msnslp_header.session_id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
448 | slpmsg->size = msg->msnslp_header.total_size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
449 | slpmsg->flags = 0x02; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
450 | slpmsg->ack_id = msg->msnslp_header.id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
451 | slpmsg->ack_sub_id = msg->msnslp_header.ack_id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
452 | slpmsg->ack_size = msg->msnslp_header.total_size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
453 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
454 | #ifdef MSN_DEBUG_SLP |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
455 | slpmsg->info = "SLP ACK"; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
456 | #endif |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
457 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
458 | msn_slplink_send_slpmsg(slplink, slpmsg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
459 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
460 | |
|
9571
8a462c9e01aa
[gaim-migrate @ 10414]
Mark Doliner <markdoliner@pidgin.im>
parents:
9330
diff
changeset
|
461 | 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
|
462 | send_file_cb(MsnSlpCall *slpcall) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
463 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
464 | MsnSlpMessage *slpmsg; |
|
17089
b27c8579750b
Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
465 | struct stat st; |
|
b27c8579750b
Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
466 | PurpleXfer *xfer; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
467 | |
|
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; |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
471 | #ifdef MSN_DEBUG_SLP |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
472 | slpmsg->info = "SLP FILE"; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
473 | #endif |
|
17089
b27c8579750b
Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
474 | xfer = (PurpleXfer *)slpcall->xfer; |
|
b27c8579750b
Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
475 | purple_xfer_start(slpcall->xfer, 0, NULL, 0); |
|
b27c8579750b
Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
476 | slpmsg->fp = xfer->dest_fp; |
|
b27c8579750b
Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
477 | if (g_stat(purple_xfer_get_local_filename(xfer), &st) == 0) |
|
b27c8579750b
Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
478 | slpmsg->size = st.st_size; |
|
b27c8579750b
Patch from sourceforge tracker 1652005 from wabz to fix displaying file
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
15884
diff
changeset
|
479 | xfer->dest_fp = NULL; /* Disable double fclose() */ |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
480 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
481 | msn_slplink_send_slpmsg(slpcall->slplink, slpmsg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
482 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
483 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
484 | void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
485 | msn_slplink_process_msg(MsnSlpLink *slplink, MsnMessage *msg) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
486 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
487 | MsnSlpMessage *slpmsg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
488 | const char *data; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
489 | gsize offset; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
490 | gsize len; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
491 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
492 | #ifdef MSN_DEBUG_SLP |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
493 | msn_slpmsg_show(msg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
494 | #endif |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
495 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
496 | #ifdef MSN_DEBUG_SLP_FILES |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
497 | debug_msg_to_file(msg, FALSE); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
498 | #endif |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
499 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
500 | if (msg->msnslp_header.total_size < msg->msnslp_header.length) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
501 | { |
| 15884 | 502 | purple_debug_error("msn", "This can't be good\n"); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
503 | g_return_if_reached(); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
504 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
505 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
506 | slpmsg = NULL; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
507 | data = msn_message_get_bin_data(msg, &len); |
|
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 | /* |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
510 | OVERHEAD! |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
511 | if (msg->msnslp_header.length < msg->msnslp_header.total_size) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
512 | */ |
|
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 | offset = msg->msnslp_header.offset; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
515 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
516 | if (offset == 0) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
517 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
518 | slpmsg = msn_slpmsg_new(slplink); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
519 | slpmsg->id = msg->msnslp_header.id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
520 | slpmsg->session_id = msg->msnslp_header.session_id; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
521 | slpmsg->size = msg->msnslp_header.total_size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
522 | slpmsg->flags = msg->msnslp_header.flags; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
523 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
524 | if (slpmsg->session_id) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
525 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
526 | if (slpmsg->slpcall == NULL) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
527 | 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
|
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 | { |
|
9226
8eb466827540
[gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9219
diff
changeset
|
531 | if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) |
|
8eb466827540
[gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9219
diff
changeset
|
532 | { |
| 15884 | 533 | PurpleXfer *xfer; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
534 | |
|
9226
8eb466827540
[gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9219
diff
changeset
|
535 | xfer = slpmsg->slpcall->xfer; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
536 | |
|
9226
8eb466827540
[gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9219
diff
changeset
|
537 | if (xfer != NULL) |
|
8eb466827540
[gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9219
diff
changeset
|
538 | { |
|
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
|
539 | purple_xfer_ref(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
|
540 | purple_xfer_start(xfer, 0, NULL, 0); |
|
7f0f58aafd57
take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents:
23938
diff
changeset
|
541 | |
|
7f0f58aafd57
take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents:
23938
diff
changeset
|
542 | 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
|
543 | 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
|
544 | return; |
|
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 | } 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
|
546 | 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
|
547 | slpmsg->fp = xfer->dest_fp; |
|
7f0f58aafd57
take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents:
23938
diff
changeset
|
548 | xfer->dest_fp = NULL; /* Disable double fclose() */ |
|
7f0f58aafd57
take an extra reference to PurpleXfer so we can check whether the whole
Ka-Hing Cheung <khc@pidgin.im>
parents:
23938
diff
changeset
|
549 | } |
|
9226
8eb466827540
[gaim-migrate @ 10022]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9219
diff
changeset
|
550 | } |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
551 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
552 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
553 | } |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
554 | if (!slpmsg->fp && slpmsg->size) |
|
10092
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
555 | { |
|
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
556 | slpmsg->buffer = g_try_malloc(slpmsg->size); |
|
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
557 | if (slpmsg->buffer == NULL) |
|
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
558 | { |
| 15884 | 559 | purple_debug_error("msn", "Failed to allocate buffer for slpmsg\n"); |
|
10092
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
560 | return; |
|
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
561 | } |
|
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
562 | } |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
563 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
564 | else |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
565 | { |
|
10092
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
566 | slpmsg = msn_slplink_message_find(slplink, msg->msnslp_header.session_id, msg->msnslp_header.id); |
|
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 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
569 | if (slpmsg == NULL) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
570 | { |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
571 | /* Probably the transfer was canceled */ |
| 15884 | 572 | purple_debug_error("msn", "Couldn't find slpmsg\n"); |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
573 | return; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
574 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
575 | |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
576 | if (slpmsg->fp) |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
577 | { |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
578 | /* fseek(slpmsg->fp, offset, SEEK_SET); */ |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
579 | len = fwrite(data, 1, len, slpmsg->fp); |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
580 | } |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
581 | else if (slpmsg->size) |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
582 | { |
| 23199 | 583 | if (G_MAXSIZE - len < offset || (offset + len) > slpmsg->size) |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
584 | { |
|
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
|
585 | purple_debug_error("msn", |
|
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
|
586 | "Oversized slpmsg - msgsize=%lld offset=%" G_GSIZE_FORMAT " len=%" G_GSIZE_FORMAT "\n", |
|
51f5e7777915
This cleans up a bunch of warnings that stem from the fact that size_t and
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
22709
diff
changeset
|
587 | slpmsg->size, offset, len); |
|
10345
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
588 | g_return_if_reached(); |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
589 | } |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
590 | else |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
591 | memcpy(slpmsg->buffer + offset, data, len); |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
592 | } |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
593 | |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
594 | if ((slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) && |
|
7d7f8cfa2b4f
[gaim-migrate @ 11556]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10296
diff
changeset
|
595 | (slpmsg->slpcall != NULL)) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
596 | { |
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
597 | slpmsg->slpcall->progress = TRUE; |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
598 | |
|
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
599 | if (slpmsg->slpcall->progress_cb != NULL) |
|
9231
aa417f2a801e
[gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9226
diff
changeset
|
600 | { |
|
aa417f2a801e
[gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9226
diff
changeset
|
601 | slpmsg->slpcall->progress_cb(slpmsg->slpcall, slpmsg->size, |
|
aa417f2a801e
[gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9226
diff
changeset
|
602 | len, offset); |
|
aa417f2a801e
[gaim-migrate @ 10027]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9226
diff
changeset
|
603 | } |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
604 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
605 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
606 | #if 0 |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
607 | if (slpmsg->buffer == NULL) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
608 | return; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
609 | #endif |
|
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 | if (msg->msnslp_header.offset + msg->msnslp_header.length |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
612 | >= msg->msnslp_header.total_size) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
613 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
614 | /* All the pieces of the slpmsg have been received */ |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
615 | MsnSlpCall *slpcall; |
|
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 | slpcall = msn_slp_process_msg(slplink, slpmsg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
618 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
619 | if (slpmsg->flags == 0x100) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
620 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
621 | MsnDirectConn *directconn; |
|
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 | 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
|
624 | #if 0 |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
625 | if (!directconn->acked) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
626 | 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
|
627 | #endif |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
628 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
629 | else if (slpmsg->flags == 0x0 || slpmsg->flags == 0x20 || |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
630 | slpmsg->flags == 0x1000030) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
631 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
632 | /* Release all the messages and send the ACK */ |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
633 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
634 | msn_slplink_send_ack(slplink, msg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
635 | msn_slplink_unleash(slplink); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
636 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
637 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
638 | msn_slpmsg_destroy(slpmsg); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
639 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
640 | if (slpcall != NULL && slpcall->wasted) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
641 | msn_slp_call_destroy(slpcall); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
642 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
643 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
644 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
645 | MsnSlpMessage * |
|
10092
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
646 | msn_slplink_message_find(MsnSlpLink *slplink, long session_id, long id) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
647 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
648 | GList *e; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
649 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
650 | for (e = slplink->slp_msgs; e != NULL; e = e->next) |
|
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 | MsnSlpMessage *slpmsg = e->data; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
653 | |
|
10092
48f870a068a1
[gaim-migrate @ 11109]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
10088
diff
changeset
|
654 | if ((slpmsg->session_id == session_id) && (slpmsg->id == id)) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
655 | return slpmsg; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
656 | } |
|
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 | return NULL; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
659 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
660 | |
|
9198
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
661 | typedef struct |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
662 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
663 | guint32 length; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
664 | guint32 unk1; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
665 | guint32 file_size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
666 | guint32 unk2; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
667 | guint32 unk3; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
668 | } MsnContextHeader; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
669 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
670 | #define MAX_FILE_NAME_LEN 0x226 |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
671 | |
|
11367
98a6c86c1331
[gaim-migrate @ 13591]
Richard Laager <rlaager@pidgin.im>
parents:
11321
diff
changeset
|
672 | static gchar * |
| 10047 | 673 | gen_context(const char *file_name, const char *file_path) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
674 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
675 | struct stat st; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
676 | gsize size = 0; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
677 | MsnContextHeader header; |
| 10047 | 678 | gchar *u8 = NULL; |
|
11367
98a6c86c1331
[gaim-migrate @ 13591]
Richard Laager <rlaager@pidgin.im>
parents:
11321
diff
changeset
|
679 | guchar *base; |
|
98a6c86c1331
[gaim-migrate @ 13591]
Richard Laager <rlaager@pidgin.im>
parents:
11321
diff
changeset
|
680 | guchar *n; |
|
98a6c86c1331
[gaim-migrate @ 13591]
Richard Laager <rlaager@pidgin.im>
parents:
11321
diff
changeset
|
681 | gchar *ret; |
| 10047 | 682 | gunichar2 *uni = NULL; |
| 683 | glong currentChar = 0; | |
| 684 | glong uni_len = 0; | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
685 | gsize len; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
686 | |
|
10589
4e10236e06d4
[gaim-migrate @ 11994]
Daniel Atallah <datallah@pidgin.im>
parents:
10481
diff
changeset
|
687 | if (g_stat(file_path, &st) == 0) |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
688 | size = st.st_size; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
689 | |
| 10047 | 690 | if(!file_name) { |
| 15884 | 691 | u8 = purple_utf8_try_convert(g_basename(file_path)); |
| 10047 | 692 | file_name = u8; |
| 693 | } | |
| 694 | ||
| 695 | uni = g_utf8_to_utf16(file_name, -1, NULL, &uni_len, NULL); | |
| 696 | ||
| 697 | if(u8) { | |
| 698 | g_free(u8); | |
| 699 | file_name = NULL; | |
| 700 | u8 = NULL; | |
| 701 | } | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
702 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
703 | len = sizeof(MsnContextHeader) + MAX_FILE_NAME_LEN + 4; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
704 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
705 | header.length = GUINT32_TO_LE(len); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
706 | header.unk1 = GUINT32_TO_LE(2); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
707 | header.file_size = GUINT32_TO_LE(size); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
708 | header.unk2 = GUINT32_TO_LE(0); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
709 | header.unk3 = GUINT32_TO_LE(0); |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
710 | |
| 10047 | 711 | base = g_malloc(len + 1); |
| 712 | n = base; | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
713 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
714 | memcpy(n, &header, sizeof(MsnContextHeader)); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
715 | n += sizeof(MsnContextHeader); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
716 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
717 | memset(n, 0x00, MAX_FILE_NAME_LEN); |
| 10047 | 718 | for(currentChar = 0; currentChar < uni_len; currentChar++) { |
| 719 | *((gunichar2 *)n + currentChar) = GUINT16_TO_LE(uni[currentChar]); | |
| 720 | } | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
721 | n += MAX_FILE_NAME_LEN; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
722 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
723 | memset(n, 0xFF, 4); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
724 | n += 4; |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
725 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
726 | g_free(uni); |
| 15884 | 727 | ret = purple_base64_encode(base, len); |
|
11321
a93121c0ea16
[gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11164
diff
changeset
|
728 | g_free(base); |
|
a93121c0ea16
[gaim-migrate @ 13525]
Stu Tomlinson <nosnilmot@pidgin.im>
parents:
11164
diff
changeset
|
729 | return ret; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
730 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
731 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
732 | void |
| 15884 | 733 | msn_slplink_request_ft(MsnSlpLink *slplink, PurpleXfer *xfer) |
|
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 | MsnSlpCall *slpcall; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
736 | char *context; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
737 | const char *fn; |
| 10047 | 738 | const char *fp; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
739 | |
| 15884 | 740 | fn = purple_xfer_get_filename(xfer); |
| 741 | fp = purple_xfer_get_local_filename(xfer); | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
742 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
743 | g_return_if_fail(slplink != NULL); |
| 10047 | 744 | g_return_if_fail(fp != NULL); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
745 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
746 | slpcall = msn_slp_call_new(slplink); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
747 | msn_slp_call_init(slpcall, MSN_SLPCALL_DC); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
748 | |
|
9571
8a462c9e01aa
[gaim-migrate @ 10414]
Mark Doliner <markdoliner@pidgin.im>
parents:
9330
diff
changeset
|
749 | slpcall->session_init_cb = send_file_cb; |
|
9715
e1ec476ea395
[gaim-migrate @ 10576]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9571
diff
changeset
|
750 | slpcall->end_cb = msn_xfer_end_cb; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
751 | slpcall->progress_cb = msn_xfer_progress_cb; |
|
9259
03ac0392aa0b
[gaim-migrate @ 10058]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9246
diff
changeset
|
752 | slpcall->cb = msn_xfer_completed_cb; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
753 | 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
|
754 | purple_xfer_ref(slpcall->xfer); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
755 | |
|
10296
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
756 | slpcall->pending = TRUE; |
|
9badf1cedc6e
[gaim-migrate @ 11476]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10284
diff
changeset
|
757 | |
| 15884 | 758 | purple_xfer_set_cancel_send_fnc(xfer, msn_xfer_cancel); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
759 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
760 | xfer->data = slpcall; |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
761 | |
| 10047 | 762 | context = gen_context(fn, fp); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
763 | |
|
23817
aff31c9b1fad
Clean up some #define's in msn.h and various supporting changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23447
diff
changeset
|
764 | msn_slp_call_invite(slpcall, MSN_FT_GUID, 2, context); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
765 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
766 | g_free(context); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
767 | } |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
768 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
769 | void |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
770 | msn_slplink_request_object(MsnSlpLink *slplink, |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
771 | const char *info, |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
772 | MsnSlpCb cb, |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
773 | MsnSlpEndCb end_cb, |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
774 | const MsnObject *obj) |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
775 | { |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
776 | MsnSlpCall *slpcall; |
|
11164
4396374c0cd9
[gaim-migrate @ 13265]
Mark Doliner <markdoliner@pidgin.im>
parents:
10773
diff
changeset
|
777 | char *msnobj_data; |
|
4396374c0cd9
[gaim-migrate @ 13265]
Mark Doliner <markdoliner@pidgin.im>
parents:
10773
diff
changeset
|
778 | char *msnobj_base64; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
779 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
780 | g_return_if_fail(slplink != NULL); |
|
9861
2aae2032f2bf
[gaim-migrate @ 10740]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
9788
diff
changeset
|
781 | g_return_if_fail(obj != NULL); |
|
9198
e8eb6d5eb9eb
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
782 | |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
783 | msnobj_data = msn_object_to_string(obj); |
| 15884 | 784 | 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
|
785 | g_free(msnobj_data); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
786 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
787 | slpcall = msn_slp_call_new(slplink); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
788 | msn_slp_call_init(slpcall, MSN_SLPCALL_ANY); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
789 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
790 | slpcall->data_info = g_strdup(info); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
791 | slpcall->cb = cb; |
|
10225
0dfea1bc8695
[gaim-migrate @ 11357]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
10107
diff
changeset
|
792 | slpcall->end_cb = end_cb; |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
793 | |
|
23817
aff31c9b1fad
Clean up some #define's in msn.h and various supporting changes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23447
diff
changeset
|
794 | msn_slp_call_invite(slpcall, MSN_OBJ_GUID, 1, msnobj_base64); |
|
9193
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
795 | |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
796 | g_free(msnobj_base64); |
|
6e76f1367896
[gaim-migrate @ 9988]
Felipe Contreras <felipe.contreras@gmail.com>
parents:
diff
changeset
|
797 | } |