# HG changeset patch # User masca@cpw.pidgin.im # Date 1276032732 0 # Node ID 64e2fe53acc2ab3d407189c1237eca000d74a891 # Parent 320c0852b5cc2a432ccf9b2e5e5a918bd5161937 Use slp parse code that was just moved to SlpMessage since it belongs there instead of the one in MsnMessage (the code was just moved). Also, a little bit more drop of MsnMessage header and footer (this is in the same commit because It's not possible to split changes in the same file). diff -r 320c0852b5cc -r 64e2fe53acc2 libpurple/protocols/msn/msg.c --- a/libpurple/protocols/msn/msg.c Tue Jun 08 21:26:39 2010 +0000 +++ b/libpurple/protocols/msn/msg.c Tue Jun 08 21:32:12 2010 +0000 @@ -28,7 +28,7 @@ #include "msn.h" #include "msg.h" #include "msnutils.h" -#include "p2p.h" +#include "slpmsg.h" MsnMessage * msn_message_new(MsnMsgType type) @@ -161,6 +161,7 @@ return msg; } +#if 0 void msn_message_parse_slp_body(MsnMessage *msg, const char *body, size_t len) { @@ -197,6 +198,7 @@ tmp += body_len; } } +#endif void msn_message_parse_payload(MsnMessage *msg, @@ -294,7 +296,12 @@ content_type = msn_message_get_content_type(msg); if (content_type != NULL && - !strcmp(content_type, "application/x-msnmsgrp2p")) + !strcmp(content_type, "application/x-msnmsgrp2p")) { + msg->msnslp_message = TRUE; + msg->slpmsg = msn_slpmsg_new_from_data(tmp, payload_len - (tmp - tmp_base)); + } + +#if 0 { MsnP2PHeader *header; MsnP2PHeader wire; @@ -339,6 +346,7 @@ } else { +#endif if (payload_len - (tmp - tmp_base) > 0) { msg->body_len = payload_len - (tmp - tmp_base); g_free(msg->body); @@ -355,7 +363,9 @@ msg->body = body; msg->charset = g_strdup("UTF-8"); } +#if 0 } +#endif g_free(tmp_base); } @@ -379,6 +389,7 @@ char * msn_message_gen_slp_body(MsnMessage *msg, size_t *ret_size) { +#if 0 MsnP2PHeader *header; char *tmp, *base; @@ -410,6 +421,11 @@ *ret_size = tmp - base; return base; +#endif + char *tmp; + + tmp = msn_slpmsg_serialize(msg->slpmsg, ret_size); + return tmp; } char * @@ -464,6 +480,14 @@ if (msg->msnslp_message) { + size_t siz; + char *body; + + body = msn_slpmsg_serialize(msg->slpmsg, &siz); + + memcpy(n, body, siz); + n += siz; +#if 0 MsnP2PHeader *header; MsnP2PFooter footer; @@ -485,6 +509,7 @@ memcpy(n, &footer, 4); n += 4; +#endif } else { @@ -744,15 +769,15 @@ if (msg->msnslp_message) { - g_string_append_printf(str, "Session ID: %u\r\n", msg->msnslp_header.session_id); - g_string_append_printf(str, "ID: %u\r\n", msg->msnslp_header.id); - g_string_append_printf(str, "Offset: %" G_GUINT64_FORMAT "\r\n", msg->msnslp_header.offset); - g_string_append_printf(str, "Total size: %" G_GUINT64_FORMAT "\r\n", msg->msnslp_header.total_size); - g_string_append_printf(str, "Length: %u\r\n", msg->msnslp_header.length); - g_string_append_printf(str, "Flags: 0x%x\r\n", msg->msnslp_header.flags); - g_string_append_printf(str, "ACK ID: %u\r\n", msg->msnslp_header.ack_id); - g_string_append_printf(str, "SUB ID: %u\r\n", msg->msnslp_header.ack_sub_id); - g_string_append_printf(str, "ACK Size: %" G_GUINT64_FORMAT "\r\n", msg->msnslp_header.ack_size); + g_string_append_printf(str, "Session ID: %u\r\n", msg->slpmsg->header->session_id); + g_string_append_printf(str, "ID: %u\r\n", msg->slpmsg->header->id); + g_string_append_printf(str, "Offset: %" G_GUINT64_FORMAT "\r\n", msg->slpmsg->header->offset); + g_string_append_printf(str, "Total size: %" G_GUINT64_FORMAT "\r\n", msg->slpmsg->header->total_size); + g_string_append_printf(str, "Length: %u\r\n", msg->slpmsg->header->length); + g_string_append_printf(str, "Flags: 0x%x\r\n", msg->slpmsg->header->flags); + g_string_append_printf(str, "ACK ID: %u\r\n", msg->slpmsg->header->ack_id); + g_string_append_printf(str, "SUB ID: %u\r\n", msg->slpmsg->header->ack_sub_id); + g_string_append_printf(str, "ACK Size: %" G_GUINT64_FORMAT "\r\n", msg->slpmsg->header->ack_size); if (purple_debug_is_verbose() && body != NULL) { @@ -779,7 +804,7 @@ } } - g_string_append_printf(str, "Footer: %u\r\n", msg->msnslp_footer.value); + g_string_append_printf(str, "Footer: %u\r\n", msg->slpmsg->footer->value); } else {