summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Villase?or <masca@cpw.pidgin.im>2010-08-04 04:30:03 +0000
committerJorge Villase?or <masca@cpw.pidgin.im>2010-08-04 04:30:03 +0000
commitcccab064fa538704a4878822db3b48a423afdf8a (patch)
tree8d45d33e9c4291285f259578b1b2ac9155b72087
parent1a55484d81be32a2bce2db582ade07a736454811 (diff)
downloadpidgin-cccab064fa538704a4878822db3b48a423afdf8a.tar.gz
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.
-rw-r--r--libpurple/protocols/msn/slplink.c9
-rw-r--r--libpurple/protocols/msn/slpmsg_part.c4
2 files changed, 6 insertions, 7 deletions
diff --git a/libpurple/protocols/msn/slplink.c b/libpurple/protocols/msn/slplink.c
index f11fb901f5..8c5e662167 100644
--- a/libpurple/protocols/msn/slplink.c
+++ b/libpurple/protocols/msn/slplink.c
@@ -298,7 +298,7 @@ msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
real_size = (slpmsg->flags == P2P_ACK) ? 0 : slpmsg->size;
- if (slpmsg->offset < real_size)
+ if (slpmsg->header->offset < real_size)
{
if (slpmsg->slpcall && slpmsg->slpcall->xfer && purple_xfer_get_type(slpmsg->slpcall->xfer) == PURPLE_XFER_SEND &&
purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED)
@@ -308,15 +308,14 @@ msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
}
else
{
- len = slpmsg->size - slpmsg->offset;
+ len = slpmsg->size - slpmsg->header->offset;
if (len > MSN_SBCONN_MAX_SIZE)
len = MSN_SBCONN_MAX_SIZE;
- msn_slpmsgpart_set_bin_data(part, slpmsg->buffer + slpmsg->offset, len);
+ msn_slpmsgpart_set_bin_data(part, slpmsg->buffer + slpmsg->header->offset, len);
}
- slpmsg->header->offset = slpmsg->offset;
slpmsg->header->length = len;
}
@@ -343,7 +342,7 @@ msn_slplink_send_msgpart(MsnSlpLink *slplink, MsnSlpMessage *slpmsg)
if (slpmsg->slpcall->progress_cb != NULL)
{
slpmsg->slpcall->progress_cb(slpmsg->slpcall, slpmsg->size,
- len, slpmsg->offset);
+ len, slpmsg->header->offset);
}
}
diff --git a/libpurple/protocols/msn/slpmsg_part.c b/libpurple/protocols/msn/slpmsg_part.c
index da5ea5b4e1..b57d9af2e6 100644
--- a/libpurple/protocols/msn/slpmsg_part.c
+++ b/libpurple/protocols/msn/slpmsg_part.c
@@ -167,11 +167,11 @@ msn_slpmsgpart_ack(MsnSlpMessagePart *part, void *data)
real_size = (slpmsg->flags == P2P_ACK) ? 0 : slpmsg->size;
- slpmsg->offset += part->header->length;
+ slpmsg->header->offset += part->header->length;
slpmsg->parts = g_list_remove(slpmsg->parts, part);
- if (slpmsg->offset < real_size)
+ if (slpmsg->header->offset < real_size)
{
if (slpmsg->slpcall->xfer && purple_xfer_get_status(slpmsg->slpcall->xfer) == PURPLE_XFER_STATUS_STARTED)
{