# HG changeset patch # User masca@cpw.pidgin.im # Date 1276377726 0 # Node ID 64a6ce55aa632eeb2bed8b45952bd9d5eb33c95c # Parent 545fa069c531b48b53830de8856479dc4634185c Move more SlpMessage creation to its module. diff -r 545fa069c531 -r 64a6ce55aa63 libpurple/protocols/msn/slp.c --- a/libpurple/protocols/msn/slp.c Thu Jun 10 22:40:44 2010 +0000 +++ b/libpurple/protocols/msn/slp.c Sat Jun 12 21:22:06 2010 +0000 @@ -509,19 +509,13 @@ if (img != NULL) { /* DATA PREP */ - slpmsg = msn_slpmsg_new(slplink); - slpmsg->slpcall = slpcall; - slpmsg->session_id = slpcall->session_id; - msn_slpmsg_set_body(slpmsg, NULL, 4); - slpmsg->info = "SLP DATA PREP"; + slpmsg = msn_slpmsg_new_dataprep(slpcall); + msn_slpmsg_set_slplink(slpmsg, slplink); msn_slplink_queue_slpmsg(slplink, slpmsg); /* DATA */ - slpmsg = msn_slpmsg_new(slplink); - slpmsg->slpcall = slpcall; - slpmsg->flags = P2P_MSN_OBJ_DATA; - slpmsg->info = "SLP DATA"; - msn_slpmsg_set_image(slpmsg, img); + slpmsg = msn_slpmsg_new_obj(slpcall, img); + msn_slpmsg_set_slplink(slpmsg, slplink); msn_slplink_queue_slpmsg(slplink, slpmsg); purple_imgstore_unref(img); diff -r 545fa069c531 -r 64a6ce55aa63 libpurple/protocols/msn/slplink.c --- a/libpurple/protocols/msn/slplink.c Thu Jun 10 22:40:44 2010 +0000 +++ b/libpurple/protocols/msn/slplink.c Sat Jun 12 21:22:06 2010 +0000 @@ -538,11 +538,8 @@ } purple_xfer_unref(xfer); - slpmsg = msn_slpmsg_new(slpcall->slplink); - slpmsg->slpcall = slpcall; - slpmsg->flags = P2P_FILE_DATA; - slpmsg->info = "SLP FILE"; - slpmsg->size = purple_xfer_get_size(xfer); + slpmsg = msn_slpmsg_new_file(slpcall, purple_xfer_get_size(xfer)); + msn_slpmsg_set_slplink(slpmsg, slpcall->slplink); msn_slplink_send_slpmsg(slpcall->slplink, slpmsg); } diff -r 545fa069c531 -r 64a6ce55aa63 libpurple/protocols/msn/slpmsg.c --- a/libpurple/protocols/msn/slpmsg.c Thu Jun 10 22:40:44 2010 +0000 +++ b/libpurple/protocols/msn/slpmsg.c Sat Jun 12 21:22:06 2010 +0000 @@ -280,6 +280,48 @@ return slpmsg; } +MsnSlpMessage *msn_slpmsg_new_obj(MsnSlpCall *slpcall,PurpleStoredImage *img) +{ + MsnSlpMessage *slpmsg; + + slpmsg = msn_slpmsg_new(NULL); + slpmsg->slpcall = slpcall; + slpmsg->flags = P2P_MSN_OBJ_DATA; + slpmsg->info = "SLP DATA"; + + msn_slpmsg_set_image(slpmsg, img); + + return slpmsg; +} + +MsnSlpMessage *msn_slpmsg_new_dataprep(MsnSlpCall *slpcall) +{ + MsnSlpMessage *slpmsg; + + slpmsg = msn_slpmsg_new(NULL); + slpmsg->slpcall = slpcall; + slpmsg->session_id = slpcall->session_id; + msn_slpmsg_set_body(slpmsg, NULL, 4); + slpmsg->info = "SLP DATA PREP"; + + return slpmsg; + +} + +MsnSlpMessage *msn_slpmsg_new_file(MsnSlpCall *slpcall, size_t size) +{ + MsnSlpMessage *slpmsg; + + slpmsg = msn_slpmsg_new(NULL); + + slpmsg->slpcall = slpcall; + slpmsg->flags = P2P_FILE_DATA; + slpmsg->info = "SLP FILE"; + slpmsg->size = size; + + return slpmsg; +} + char *msn_slpmsg_serialize(MsnSlpMessage *slpmsg, size_t *ret_size) { MsnP2PHeader *header; diff -r 545fa069c531 -r 64a6ce55aa63 libpurple/protocols/msn/slpmsg.h --- a/libpurple/protocols/msn/slpmsg.h Thu Jun 10 22:40:44 2010 +0000 +++ b/libpurple/protocols/msn/slpmsg.h Sat Jun 12 21:22:06 2010 +0000 @@ -138,6 +138,35 @@ */ MsnSlpMessage *msn_slpmsg_new_ack(MsnP2PHeader *header); +/** + * Create a new SLP message for MsnObject data. + * + * @param slpcall The slpcall that manages this message. + * @param img The image to be sent in this message. + * + * @return A new SlpMessage with MsnObject info. + */ +MsnSlpMessage *msn_slpmsg_new_obj(MsnSlpCall *slpcall, PurpleStoredImage *img); + +/** + * Create a new SLP message for data preparation. + * + * @param slpcall The slpcall that manages this message. + * + * @return A new SlpMessage with data preparation info. + */ +MsnSlpMessage *msn_slpmsg_new_dataprep(MsnSlpCall *slpcall); + +/** + * Create a new SLP message for File transfer. + * + * @param slpcall The slpcall that manages this message. + * @param size The size of the file being transsmited. + * + * @return A new SlpMessage with the file transfer info. + */ +MsnSlpMessage *msn_slpmsg_new_file(MsnSlpCall *slpcall, size_t size); + void msn_slpmsg_show(MsnMessage *msg); /**