# HG changeset patch # User masca@cpw.pidgin.im # Date 1276723932 0 # Node ID efe9b0338606f1a29df971c16eadf85ba6b540e7 # Parent e545b2b6f66a943876af59f7452aee646158b29c Add a function that enqueue a Part instead of a Message since directconn does not sends messages. diff -r e545b2b6f66a -r efe9b0338606 libpurple/protocols/msn/directconn.c --- a/libpurple/protocols/msn/directconn.c Wed Jun 16 21:25:11 2010 +0000 +++ b/libpurple/protocols/msn/directconn.c Wed Jun 16 21:32:12 2010 +0000 @@ -557,6 +557,23 @@ msn_dc_enqueue_packet(dc, p); } +void +msn_dc_enqueue_part(MsnDirectConn *dc, MsnSlpMessagePart *part) +{ + MsnDirectConnPacket *p; + guint32 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->sent_cb = msn_dc_send_packet_cb; + + msn_dc_enqueue_packet(dc, p); +} + static int msn_dc_process_packet(MsnDirectConn *dc, guint32 packet_length) { diff -r e545b2b6f66a -r efe9b0338606 libpurple/protocols/msn/directconn.h --- a/libpurple/protocols/msn/directconn.h Wed Jun 16 21:25:11 2010 +0000 +++ b/libpurple/protocols/msn/directconn.h Wed Jun 16 21:32:12 2010 +0000 @@ -34,6 +34,7 @@ #include "slp.h" #include "slplink.h" #include "slpmsg.h" +#include "slpmsg_part.h" #include "p2p.h" #define MSN_DCCONN_MAX_SIZE 1352 @@ -129,6 +130,8 @@ */ void msn_dc_enqueue_msg(MsnDirectConn *dc, MsnMessage *msg); +void +msn_dc_enqueue_part(MsnDirectConn *dc, MsnSlpMessagePart *part); /* * Creates, initializes, and returns a new MsnDirectConn structure.