libpurple/protocols/msn/slpmsg_part.c

Tue, 04 Jan 2011 06:55:30 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Tue, 04 Jan 2011 06:55:30 +0000
changeset 31294
73607ab89c6f
parent 31248
6bd3caec2b28
child 31302
0f41ef5d6b17
permissions
-rw-r--r--

Remove trailing whitespace

31180
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
1 /**
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
2 * @file slpmsg_part.c MSNSLP Parts
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
3 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
4 * purple
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
5 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
8 * source distribution.
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
9 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
10 * This program is free software; you can redistribute it and/or modify
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
11 * it under the terms of the GNU General Public License as published by
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
13 * (at your option) any later version.
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
14 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
15 * This program is distributed in the hope that it will be useful,
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
18 * GNU General Public License for more details.
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
19 *
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
20 * You should have received a copy of the GNU General Public License
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
21 * along with this program; if not, write to the Free Software
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
23 */
3f527ea0d2ea These new files are missing GPL headers. And fix a couple incorrect
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31146
diff changeset
24
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
25 #include "internal.h"
31051
342d8b8c7611 Add a ref to the part at sbconn and add some debug output.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31049
diff changeset
26 #include "debug.h"
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
27
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
28 #include "slpmsg.h"
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
29 #include "slpmsg_part.h"
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
30
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
31 MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PHeader *header, MsnP2PFooter *footer)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
32 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
33 MsnSlpMessagePart *part;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
34
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
35 part = g_new0(MsnSlpMessagePart, 1);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
36
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
37 if (header)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
38 part->header = g_memdup(header, P2P_PACKET_HEADER_SIZE);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
39 if (footer)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
40 part->footer = g_memdup(footer, P2P_PACKET_FOOTER_SIZE);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
41
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
42 part->ack_cb = msn_slpmsgpart_ack;
31024
4ac3dbb77737 Fix typo.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30998
diff changeset
43 part->nak_cb = msn_slpmsgpart_nak;
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
44
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
45 return msn_slpmsgpart_ref(part);
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
46 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
47
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
48 MsnSlpMessagePart *msn_slpmsgpart_new_from_data(const char *data, size_t data_len)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
49 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
50 MsnSlpMessagePart *part;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
51 int body_len;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
52
31248
6bd3caec2b28 Remove extra variables, and this sizeof() is wrong.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31247
diff changeset
53 if (data_len < P2P_PACKET_HEADER_SIZE) {
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
54 return NULL;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
55 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
56
31146
9334bb4736ae Fix the possible leak in the function that's actually used.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31136
diff changeset
57 part = msn_slpmsgpart_new(NULL, NULL);
9334bb4736ae Fix the possible leak in the function that's actually used.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31136
diff changeset
58
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
59 /* Extract the binary SLP header */
31248
6bd3caec2b28 Remove extra variables, and this sizeof() is wrong.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31247
diff changeset
60 part->header = msn_p2p_header_from_wire(data);
6bd3caec2b28 Remove extra variables, and this sizeof() is wrong.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31247
diff changeset
61 data += P2P_PACKET_HEADER_SIZE;
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
62
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
63 /* Extract the body */
31045
07dad377f716 Properly set the body_len of the SlpMessagePart, this set correctly the footer value.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31042
diff changeset
64 body_len = data_len - P2P_PACKET_HEADER_SIZE - P2P_PACKET_FOOTER_SIZE;
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
65 /* msg->body_len = msg->msnslp_header.length; */
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
66
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
67 if (body_len > 0) {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
68 part->size = body_len;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
69 part->buffer = g_malloc(body_len);
31248
6bd3caec2b28 Remove extra variables, and this sizeof() is wrong.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31247
diff changeset
70 memcpy(part->buffer, data, body_len);
6bd3caec2b28 Remove extra variables, and this sizeof() is wrong.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31247
diff changeset
71 data += body_len;
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
72 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
73
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
74 /* Extract the footer */
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 31248
diff changeset
75 if (body_len >= 0)
31248
6bd3caec2b28 Remove extra variables, and this sizeof() is wrong.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31247
diff changeset
76 part->footer = msn_p2p_footer_from_wire(data);
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
77
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
78 return part;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
79 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
80
31240
db0cb3d72bc9 Use the unref functions everywhere, instead of destroy. I also removed
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31235
diff changeset
81 static void msn_slpmsgpart_destroy(MsnSlpMessagePart *part)
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
82 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
83 g_free(part->header);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
84 g_free(part->footer);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
85
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
86 g_free(part);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
87
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
88 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
89
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
90 MsnSlpMessagePart *msn_slpmsgpart_ref(MsnSlpMessagePart *part)
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
91 {
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
92 g_return_val_if_fail(part != NULL, NULL);
31235
d347d296b0e6 As Mark did before, we probably don't need a return value from these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31180
diff changeset
93 part->ref_count++;
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
94
31051
342d8b8c7611 Add a ref to the part at sbconn and add some debug output.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31049
diff changeset
95 if (purple_debug_is_verbose())
31235
d347d296b0e6 As Mark did before, we probably don't need a return value from these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31180
diff changeset
96 purple_debug_info("msn", "part ref (%p)[%u]\n", part, part->ref_count);
31051
342d8b8c7611 Add a ref to the part at sbconn and add some debug output.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31049
diff changeset
97
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
98 return part;
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
99 }
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
100
31235
d347d296b0e6 As Mark did before, we probably don't need a return value from these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31180
diff changeset
101 void msn_slpmsgpart_unref(MsnSlpMessagePart *part)
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
102 {
31235
d347d296b0e6 As Mark did before, we probably don't need a return value from these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31180
diff changeset
103 g_return_if_fail(part != NULL);
d347d296b0e6 As Mark did before, we probably don't need a return value from these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31180
diff changeset
104 g_return_if_fail(part->ref_count > 0);
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
105
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
106 part->ref_count--;
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
107
31051
342d8b8c7611 Add a ref to the part at sbconn and add some debug output.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31049
diff changeset
108 if (purple_debug_is_verbose())
31235
d347d296b0e6 As Mark did before, we probably don't need a return value from these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31180
diff changeset
109 purple_debug_info("msn", "part unref (%p)[%u]\n", part, part->ref_count);
31051
342d8b8c7611 Add a ref to the part at sbconn and add some debug output.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31049
diff changeset
110
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
111 if (part->ref_count == 0) {
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
112 msn_slpmsgpart_destroy(part);
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
113 }
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
114 }
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
115
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
116 void msn_slpmsgpart_set_bin_data(MsnSlpMessagePart *part, const void *data, size_t len)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
117 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
118 g_return_if_fail(part != NULL);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
119
31136
643ef83b4c67 Fix a lot more leaks, some old, some new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31135
diff changeset
120 g_free(part->buffer);
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
121
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
122 if (data != NULL && len > 0) {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
123 part->buffer = g_malloc(len + 1);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
124 memcpy(part->buffer, data, len);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
125 part->buffer[len] = '\0';
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
126 part->size = len;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
127 } else {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
128 part->buffer = NULL;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
129 part->size = 0;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
130 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
131
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
132 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
133
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
134 char *msn_slpmsgpart_serialize(MsnSlpMessagePart *part, size_t *ret_size)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
135 {
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31241
diff changeset
136 char *header;
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31241
diff changeset
137 char *footer;
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
138 char *base;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
139 char *tmp;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
140 size_t siz;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
141
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31241
diff changeset
142 base = g_malloc(P2P_PACKET_HEADER_SIZE + part->size + P2P_PACKET_FOOTER_SIZE);
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
143 tmp = base;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
144
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
145 header = msn_p2p_header_to_wire(part->header);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
146 footer = msn_p2p_footer_to_wire(part->footer);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
147
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31241
diff changeset
148 siz = P2P_PACKET_HEADER_SIZE;
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
149 /* Copy header */
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31241
diff changeset
150 memcpy(tmp, header, siz);
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
151 tmp += siz;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
152
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
153 /* Copy body */
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
154 memcpy(tmp, part->buffer, part->size);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
155 tmp += part->size;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
156
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
157 /* Copy footer */
31247
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31241
diff changeset
158 siz = P2P_PACKET_FOOTER_SIZE;
57079aab03d0 Change SLP P2P functions to use the new buffer access functions
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31241
diff changeset
159 memcpy(tmp, footer, siz);
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
160 tmp += siz;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
161
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
162 *ret_size = tmp - base;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
163
31135
f256308961f6 Fix some leaks. Header and footer are allocated, copied and not freed.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31075
diff changeset
164 g_free(header);
f256308961f6 Fix some leaks. Header and footer are allocated, copied and not freed.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31075
diff changeset
165 g_free(footer);
f256308961f6 Fix some leaks. Header and footer are allocated, copied and not freed.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31075
diff changeset
166
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
167 return base;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
168 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
169 /* We have received the message ack */
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
170 void
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
171 msn_slpmsgpart_ack(MsnSlpMessagePart *part, void *data)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
172 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
173 MsnSlpMessage *slpmsg;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
174 long long real_size;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
175
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
176 slpmsg = data;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
177
31072
55bfe976adfe Get rid of the Flags field in the SlpMessage in favor of the one in the Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31071
diff changeset
178 real_size = (slpmsg->header->flags == P2P_ACK) ? 0 : slpmsg->size;
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
179
31064
6d422455a312 Use the SlpMessage header offset only instead of it and the one on the SlpMessage when sending it. This fixes sending big data which needs to be split in multiple messages.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31051
diff changeset
180 slpmsg->header->offset += part->header->length;
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
181
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
182 slpmsg->parts = g_list_remove(slpmsg->parts, part);
31241
cc8a2c660694 Correct the ref counts on the SlpMsgParts. When it's removed from the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31240
diff changeset
183 msn_slpmsgpart_unref(part);
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
184
31064
6d422455a312 Use the SlpMessage header offset only instead of it and the one on the SlpMessage when sending it. This fixes sending big data which needs to be split in multiple messages.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31051
diff changeset
185 if (slpmsg->header->offset < real_size)
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
186 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
187 if (slpmsg->slpcall->xfer && purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
188 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
189 slpmsg->slpcall->xfer_msg = slpmsg;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
190 purple_xfer_prpl_ready(slpmsg->slpcall->xfer);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
191 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
192 else
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
193 msn_slplink_send_msgpart(slpmsg->slplink, slpmsg);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
194 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
195 else
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
196 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
197 /* The whole message has been sent */
31072
55bfe976adfe Get rid of the Flags field in the SlpMessage in favor of the one in the Header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31071
diff changeset
198 if (msn_p2p_msg_is_data(slpmsg->header->flags))
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
199 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
200 if (slpmsg->slpcall != NULL)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
201 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
202 if (slpmsg->slpcall->cb)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
203 slpmsg->slpcall->cb(slpmsg->slpcall,
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
204 NULL, 0);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
205 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
206 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
207 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
208 }
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
209
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
210 /* We have received the message nak. */
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
211 void
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
212 msn_slpmsgpart_nak(MsnSlpMessagePart *part, void *data)
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
213 {
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
214 MsnSlpMessage *slpmsg;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
215
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
216 slpmsg = data;
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
217
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
218 msn_slplink_send_msgpart(slpmsg->slplink, slpmsg);
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
219
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
220 slpmsg->parts = g_list_remove(slpmsg->parts, part);
31241
cc8a2c660694 Correct the ref counts on the SlpMsgParts. When it's removed from the
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31240
diff changeset
221 msn_slpmsgpart_unref(part);
30998
d6daed2e1e30 Introduce SlpMessagePart, It will replace MsnMessage in every Slp related code so MsnMessage just get used where it makes sense, in the Switchboard.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents:
diff changeset
222 }
31235
d347d296b0e6 As Mark did before, we probably don't need a return value from these
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31180
diff changeset
223

mercurial