libpurple/protocols/msn/directconn.c

changeset 31334
c892163971f2
parent 31303
0571191a11b2
child 31781
e847bafa5e00
--- a/libpurple/protocols/msn/directconn.c	Thu Jan 06 04:15:28 2011 +0000
+++ b/libpurple/protocols/msn/directconn.c	Thu Jan 06 05:12:00 2011 +0000
@@ -539,13 +539,11 @@
 msn_dc_enqueue_part(MsnDirectConn *dc, MsnSlpMessagePart *part)
 {
 	MsnDirectConnPacket *p;
-	guint32 length;
+	size_t length;
 
-	length = part->size + P2P_PACKET_HEADER_SIZE;
-	p = msn_dc_new_packet(length);
-
-	memcpy(p->data, part->header, P2P_PACKET_HEADER_SIZE);
-	memcpy(p->data + P2P_PACKET_HEADER_SIZE, part->buffer, part->size);
+	p = msn_dc_new_packet(0);
+	p->data = (guchar *)msn_slpmsgpart_serialize(part, &length);
+	p->length = length - P2P_PACKET_FOOTER_SIZE; /* DC doesn't need footer? */
 
 	p->sent_cb = msn_dc_send_packet_cb;
 	p->part = msn_slpmsgpart_ref(part);

mercurial