# HG changeset patch # User masca@cpw.pidgin.im # Date 1276724750 0 # Node ID 37474bb06bad1f8760dbdb58b52e92040238d5c1 # Parent efe9b0338606f1a29df971c16eadf85ba6b540e7 Add support in SBConn to send parts instead of messages. diff -r efe9b0338606 -r 37474bb06bad libpurple/protocols/msn/sbconn.c --- a/libpurple/protocols/msn/sbconn.c Wed Jun 16 21:32:12 2010 +0000 +++ b/libpurple/protocols/msn/sbconn.c Wed Jun 16 21:45:50 2010 +0000 @@ -1,3 +1,6 @@ +#include "internal.h" + +#include "msg.h" #include "sbconn.h" /* We have received the message ack */ @@ -74,3 +77,30 @@ msn_switchboard_send_msg(slplink->swboard, msg, TRUE); } + +void msn_sbconn_send_part(MsnSlpLink *slplink, MsnSlpMessagePart *part) +{ + MsnMessage *msg; + char *data; + size_t size; + + msg = msn_message_new_msnslp(); + + data = msn_slpmsgpart_serialize(part, &size); + msg->part = part; + + msn_message_set_bin_data(msg, data, size); + + if (slplink->swboard == NULL) + { + slplink->swboard = msn_session_get_swboard(slplink->session, + slplink->remote_user, MSN_SB_FLAG_FT); + + g_return_if_fail(slplink->swboard != NULL); + + /* If swboard is destroyed we will be too */ + slplink->swboard->slplinks = g_list_prepend(slplink->swboard->slplinks, slplink); + } + + msn_switchboard_send_msg(slplink->swboard, msg, TRUE); +} diff -r efe9b0338606 -r 37474bb06bad libpurple/protocols/msn/sbconn.h --- a/libpurple/protocols/msn/sbconn.h Wed Jun 16 21:32:12 2010 +0000 +++ b/libpurple/protocols/msn/sbconn.h Wed Jun 16 21:45:50 2010 +0000 @@ -11,5 +11,6 @@ void msn_sbconn_msg_nak(MsnMessage *msg, void *data); void msn_sbconn_send_msg(MsnSlpLink *slplink, MsnMessage *msg); +void msn_sbconn_send_part(MsnSlpLink *slplink, MsnSlpMessagePart *part); #endif /* MSN_SBCONN_H */