# HG changeset patch # User masca@cpw.pidgin.im # Date 1276032399 0 # Node ID 320c0852b5cc2a432ccf9b2e5e5a918bd5161937 # Parent 09f2a7d2ac9912e9373018ccac450b47e96e1ac1 Drop slp header and footer from MsnMessage in favor of MsnSlpMessage->header and footer. diff -r 09f2a7d2ac99 -r 320c0852b5cc libpurple/protocols/msn/directconn.c --- a/libpurple/protocols/msn/directconn.c Tue Jun 08 21:21:49 2010 +0000 +++ b/libpurple/protocols/msn/directconn.c Tue Jun 08 21:26:39 2010 +0000 @@ -548,7 +548,7 @@ length = msg->body_len + P2P_PACKET_HEADER_SIZE; p = msn_dc_new_packet(length); - memcpy(p->data, &msg->msnslp_header, P2P_PACKET_HEADER_SIZE); + memcpy(p->data, msg->slpmsg->header, P2P_PACKET_HEADER_SIZE); memcpy(p->data + P2P_PACKET_HEADER_SIZE, msg->body, msg->body_len); p->sent_cb = msn_dc_send_packet_cb; diff -r 09f2a7d2ac99 -r 320c0852b5cc libpurple/protocols/msn/msg.h --- a/libpurple/protocols/msn/msg.h Tue Jun 08 21:21:49 2010 +0000 +++ b/libpurple/protocols/msn/msg.h Tue Jun 08 21:26:39 2010 +0000 @@ -58,7 +58,7 @@ #include "session.h" #include "transaction.h" #include "user.h" -#include "p2p.h" +#include "slpmsg.h" typedef void (*MsnMsgCb)(MsnMessage *, void *data); @@ -78,6 +78,7 @@ MsnMsgType type; gboolean msnslp_message; + MsnSlpMessage *slpmsg; char *remote_user; char flag; @@ -89,9 +90,6 @@ guint total_chunks; /**< How many chunks in this multi-part message */ guint received_chunks; /**< How many chunks we've received so far */ - MsnP2PHeader msnslp_header; - MsnP2PFooter msnslp_footer; - GHashTable *header_table; GList *header_list; diff -r 09f2a7d2ac99 -r 320c0852b5cc libpurple/protocols/msn/slp.c --- a/libpurple/protocols/msn/slp.c Tue Jun 08 21:21:49 2010 +0000 +++ b/libpurple/protocols/msn/slp.c Tue Jun 08 21:26:39 2010 +0000 @@ -1112,7 +1112,7 @@ data = msn_message_get_bin_data(msg, &len); - msn_slplink_process_msg(slplink, &msg->msnslp_header, data, len); + msn_slplink_process_msg(slplink, msg->slpmsg->header, data, len); } static void diff -r 09f2a7d2ac99 -r 320c0852b5cc libpurple/protocols/msn/slplink.c --- a/libpurple/protocols/msn/slplink.c Tue Jun 08 21:21:49 2010 +0000 +++ b/libpurple/protocols/msn/slplink.c Tue Jun 08 21:26:39 2010 +0000 @@ -319,8 +319,8 @@ msn_message_set_bin_data(msg, slpmsg->buffer + slpmsg->offset, len); } - msg->msnslp_header.offset = slpmsg->offset; - msg->msnslp_header.length = len; + slpmsg->header->offset = slpmsg->offset; + slpmsg->header->length = len; } if (purple_debug_is_verbose()) @@ -362,7 +362,7 @@ real_size = (slpmsg->flags == P2P_ACK) ? 0 : slpmsg->size; - slpmsg->offset += msg->msnslp_header.length; + slpmsg->offset += msg->slpmsg->header->length; slpmsg->msgs = g_list_remove(slpmsg->msgs, msg); @@ -418,17 +418,21 @@ slpmsg->msg = msg = msn_message_new_msnslp(); + msg->slpmsg = slpmsg; + msg->slpmsg->header = g_new0(MsnP2PHeader, 1); + msg->slpmsg->footer = g_new0(MsnP2PFooter, 1); + if (slpmsg->flags == P2P_NO_FLAG) { - msg->msnslp_header.session_id = slpmsg->session_id; - msg->msnslp_header.ack_id = rand() % 0xFFFFFF00; + msg->slpmsg->header->session_id = slpmsg->session_id; + msg->slpmsg->header->ack_id = rand() % 0xFFFFFF00; } else if (slpmsg->flags == P2P_ACK) { - msg->msnslp_header.session_id = slpmsg->session_id; - msg->msnslp_header.ack_id = slpmsg->ack_id; - msg->msnslp_header.ack_size = slpmsg->ack_size; - msg->msnslp_header.ack_sub_id = slpmsg->ack_sub_id; + msg->slpmsg->header->session_id = slpmsg->session_id; + msg->slpmsg->header->ack_id = slpmsg->ack_id; + msg->slpmsg->header->ack_size = slpmsg->ack_size; + msg->slpmsg->header->ack_sub_id = slpmsg->ack_sub_id; } else if (slpmsg->flags == P2P_MSN_OBJ_DATA || slpmsg->flags == (P2P_WML2009_COMP | P2P_MSN_OBJ_DATA) || @@ -438,21 +442,21 @@ slpcall = slpmsg->slpcall; g_return_if_fail(slpcall != NULL); - msg->msnslp_header.session_id = slpcall->session_id; - msg->msnslp_footer.value = slpcall->app_id; - msg->msnslp_header.ack_id = rand() % 0xFFFFFF00; + msg->slpmsg->header->session_id = slpcall->session_id; + msg->slpmsg->footer->value = slpcall->app_id; + msg->slpmsg->header->ack_id = rand() % 0xFFFFFF00; } else if (slpmsg->flags == 0x100) { - msg->msnslp_header.ack_id = slpmsg->ack_id; - msg->msnslp_header.ack_sub_id = slpmsg->ack_sub_id; - msg->msnslp_header.ack_size = slpmsg->ack_size; + msg->slpmsg->header->ack_id = slpmsg->ack_id; + msg->slpmsg->header->ack_sub_id = slpmsg->ack_sub_id; + msg->slpmsg->header->ack_size = slpmsg->ack_size; } - msg->msnslp_header.id = slpmsg->id; - msg->msnslp_header.flags = slpmsg->flags; + msg->slpmsg->header->id = slpmsg->id; + msg->slpmsg->header->flags = (guint32)slpmsg->flags; - msg->msnslp_header.total_size = slpmsg->size; + msg->slpmsg->header->total_size = slpmsg->size; passport = purple_normalize(slplink->session->account, slplink->remote_user); msn_message_set_header(msg, "P2P-Dest", passport); diff -r 09f2a7d2ac99 -r 320c0852b5cc libpurple/protocols/msn/slpmsg.c --- a/libpurple/protocols/msn/slpmsg.c Tue Jun 08 21:21:49 2010 +0000 +++ b/libpurple/protocols/msn/slpmsg.c Tue Jun 08 21:26:39 2010 +0000 @@ -172,7 +172,7 @@ text = FALSE; - flags = GUINT32_TO_LE(msg->msnslp_header.flags); + flags = GUINT32_TO_LE(msg->slpmsg->header->flags); switch (flags) {