Sun, 21 Nov 2010 09:56:48 +0000
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 | 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 | 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 | 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 | } |