libpurple/protocols/msn/slpmsg_part.c

Sun, 21 Nov 2010 09:56:48 +0000

author
Elliott Sales de Andrade <qulogic@pidgin.im>
date
Sun, 21 Nov 2010 09:56:48 +0000
changeset 31136
643ef83b4c67
parent 31135
f256308961f6
child 31146
9334bb4736ae
permissions
-rw-r--r--

Fix a lot more leaks, some old, some new.

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
1 #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
2 #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
3
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
4 #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
5 #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
6
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
7 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
8 {
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
9 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
10
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
11 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
12
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
13 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
14 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
15 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
16 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
17
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
18 part->ack_cb = msn_slpmsgpart_ack;
31024
4ac3dbb77737 Fix typo.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 30998
diff changeset
19 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
20
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
21 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
22 }
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
23
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
24 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
25 {
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
26 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
27 MsnP2PHeader *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
28 const 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
29 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
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 tmp = 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
32 part = msn_slpmsgpart_new(NULL, 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
33
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 if (data_len < sizeof(*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
35 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
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
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 /* Extract the binary SLP 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
39 part->header = msn_p2p_header_from_wire((MsnP2PHeader*)tmp);
31042
0a62bae1fe89 Update tmp pointer after reading the header.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31026
diff changeset
40 tmp += 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
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 /* 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
43 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
44 /* 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
45
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 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
47 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
48 part->buffer = g_malloc(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
49 memcpy(part->buffer, tmp, 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
50 tmp += 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
51 }
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
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
53 /* Extract the 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
54 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
55 part->footer = msn_p2p_footer_from_wire((MsnP2PFooter*)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
56
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
57 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
58 }
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
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
60 void msn_slpmsgpart_destroy(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
61 {
31026
4ded3bd4f3b8 Destroying Parts return silently when it's passed a NULL pointer.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31024
diff changeset
62 if (!part)
4ded3bd4f3b8 Destroying Parts return silently when it's passed a NULL pointer.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31024
diff changeset
63 return;
4ded3bd4f3b8 Destroying Parts return silently when it's passed a NULL pointer.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31024
diff changeset
64
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
65 if (part->ref_count > 0) {
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
66 msn_slpmsgpart_unref(part);
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
67
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
68 return;
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
69 }
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
70
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
71 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
72 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
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 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
75
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
76 }
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
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
78 MsnSlpMessagePart *msn_slpmsgpart_ref(MsnSlpMessagePart *part)
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
79 {
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
80 g_return_val_if_fail(part != NULL, NULL);
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
81 part->ref_count ++;
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
82
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
83 if (purple_debug_is_verbose())
31075
35d41c8c8ed7 ref_count is an int
Mark Doliner <markdoliner@pidgin.im>
parents: 31072
diff changeset
84 purple_debug_info("msn", "part ref (%p)[%d]\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
85
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
86 return part;
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
87 }
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
88
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
89 MsnSlpMessagePart *msn_slpmsgpart_unref(MsnSlpMessagePart *part)
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
90 {
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
91 g_return_val_if_fail(part != NULL, NULL);
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->ref_count > 0, NULL);
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
93
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
94 part->ref_count--;
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
95
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
96 if (purple_debug_is_verbose())
31075
35d41c8c8ed7 ref_count is an int
Mark Doliner <markdoliner@pidgin.im>
parents: 31072
diff changeset
97 purple_debug_info("msn", "part unref (%p)[%d]\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
98
31049
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
99 if (part->ref_count == 0) {
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
100 msn_slpmsgpart_destroy(part);
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
101
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
102 return NULL;
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
103 }
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
104
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
105 return part;
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
106 }
22a86713164e Add support to ref/unref SlpMessageParts.
Jorge Villaseñor <masca@cpw.pidgin.im>
parents: 31045
diff changeset
107
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
108 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
109 {
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
110 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
111
31136
643ef83b4c67 Fix a lot more leaks, some old, some new.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31135
diff changeset
112 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
113
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
114 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
115 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
116 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
117 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
118 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
119 } 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
120 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
121 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
122 }
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
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 }
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
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 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
127 {
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 MsnP2PHeader *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
129 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
130 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
131 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
132 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
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 base = g_malloc(P2P_PACKET_HEADER_SIZE + part->size + sizeof(MsnP2PFooter));
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 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
136
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
137 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
138 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
139
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 siz = sizeof(MsnP2PHeader);
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 /* Copy 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
142 memcpy(tmp, (char*)header, 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
143 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
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 /* 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
146 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
147 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
148
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 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
150 siz = sizeof(MsnP2PFooter);
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 memcpy(tmp, (char*)footer, 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 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
153
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 *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
155
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
156 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
157 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
158
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
159 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
160 }
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 /* 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
162 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
163 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
164 {
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
165 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
166 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
167
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 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
169
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
170 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
171
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
172 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
173
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 slpmsg->parts = g_list_remove(slpmsg->parts, 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
175
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
176 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
177 {
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
178 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
179 {
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
180 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
181 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
182 }
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
183 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
184 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
185 }
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 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
187 {
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 /* 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
189 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
190 {
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 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
192 {
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 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
194 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
195 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
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 }
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
198 }
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
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 /* 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
202 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
203 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
204 {
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 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
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 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
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 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
210
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 slpmsg->parts = g_list_remove(slpmsg->parts, 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
212 }

mercurial