Mercurial > pidgin
comparison libpurple/protocols/msn/sbconn.c @ 30793:f84fb808e8ed
Move MsnMessage stuff out of slplink to SBConn.
author | masca@cpw.pidgin.im |
---|---|
date | Tue, 15 Jun 2010 00:42:05 +0000 |
parents | |
children | 22f26c372797 |
comparison
equal
deleted
inserted
replaced
30792:9192c59f2f84 | 30793:f84fb808e8ed |
---|---|
1 #include "sbconn.h" | |
2 | |
3 /* We have received the message ack */ | |
4 void | |
5 msn_sbconn_msg_ack(MsnMessage *msg, void *data) | |
6 { | |
7 MsnSlpMessage *slpmsg; | |
8 long long real_size; | |
9 | |
10 slpmsg = data; | |
11 | |
12 real_size = (slpmsg->flags == P2P_ACK) ? 0 : slpmsg->size; | |
13 | |
14 slpmsg->offset += msg->slpmsg->header->length; | |
15 | |
16 slpmsg->msgs = g_list_remove(slpmsg->msgs, msg); | |
17 | |
18 if (slpmsg->offset < real_size) | |
19 { | |
20 if (slpmsg->slpcall->xfer && purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED) | |
21 { | |
22 slpmsg->slpcall->xfer_msg = slpmsg; | |
23 msn_message_ref(msg); | |
24 purple_xfer_prpl_ready(slpmsg->slpcall->xfer); | |
25 } | |
26 else | |
27 msn_slplink_send_msgpart(slpmsg->slplink, slpmsg); | |
28 } | |
29 else | |
30 { | |
31 /* The whole message has been sent */ | |
32 if (slpmsg->flags == P2P_MSN_OBJ_DATA || | |
33 slpmsg->flags == (P2P_WML2009_COMP | P2P_MSN_OBJ_DATA) || | |
34 slpmsg->flags == P2P_FILE_DATA) | |
35 { | |
36 if (slpmsg->slpcall != NULL) | |
37 { | |
38 if (slpmsg->slpcall->cb) | |
39 slpmsg->slpcall->cb(slpmsg->slpcall, | |
40 NULL, 0); | |
41 } | |
42 } | |
43 } | |
44 | |
45 msn_message_unref(msg); | |
46 } | |
47 | |
48 /* We have received the message nak. */ | |
49 void | |
50 msn_sbconn_msg_nak(MsnMessage *msg, void *data) | |
51 { | |
52 MsnSlpMessage *slpmsg; | |
53 | |
54 slpmsg = data; | |
55 | |
56 msn_slplink_send_msgpart(slpmsg->slplink, slpmsg); | |
57 | |
58 slpmsg->msgs = g_list_remove(slpmsg->msgs, msg); | |
59 msn_message_unref(msg); | |
60 } | |
61 |