Mercurial > pidgin.yaz
changeset 32031:02ece73986f5
merge of 'd09f79ede5d30c1f516d4af546eb9a0f1d052593'
and 'f6f1584f72ad1c5035410dc939f2251e873b5d54'
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Mon, 09 May 2011 08:34:25 +0000 |
parents | 9a23c70bdb7a (diff) 134d37f441b2 (current diff) |
children | 1bc846bf4200 |
files | |
diffstat | 9 files changed, 35 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/msn/directconn.c Mon May 09 08:33:42 2011 +0000 +++ b/libpurple/protocols/msn/directconn.c Mon May 09 08:34:25 2011 +0000 @@ -593,7 +593,9 @@ case DC_STATE_ESTABLISHED: if (packet_length) { - part = msn_slpmsgpart_new_from_data(dc->in_buffer + 4, packet_length); + MsnP2PVersion p2p; + p2p = msn_p2p_get_user_support(dc->slplink->remote_user); + part = msn_slpmsgpart_new_from_data(p2p, dc->in_buffer + 4, packet_length); if (part) { msn_slplink_process_msg(dc->slplink, part); msn_slpmsgpart_unref(part);
--- a/libpurple/protocols/msn/msg.c Mon May 09 08:33:42 2011 +0000 +++ b/libpurple/protocols/msn/msg.c Mon May 09 08:34:25 2011 +0000 @@ -253,8 +253,10 @@ if (content_type != NULL && !strcmp(content_type, "application/x-msnmsgrp2p")) { + MsnP2PVersion p2p; msg->msnslp_message = TRUE; - msg->part = msn_slpmsgpart_new_from_data(tmp, payload_len - (tmp - tmp_base)); + p2p = msn_p2p_get_user_support(msg->remote_user); + msg->part = msn_slpmsgpart_new_from_data(p2p, tmp, payload_len - (tmp - tmp_base)); } if (payload_len - (tmp - tmp_base) > 0) {
--- a/libpurple/protocols/msn/p2p.c Mon May 09 08:33:42 2011 +0000 +++ b/libpurple/protocols/msn/p2p.c Mon May 09 08:34:25 2011 +0000 @@ -489,6 +489,12 @@ } } +MsnP2PVersion +msn_p2p_get_user_support(const char *passport) +{ + return MSN_P2P_VERSION_ONE; +} + guint32 msn_p2p_info_get_session_id(MsnP2PInfo *info) {
--- a/libpurple/protocols/msn/p2p.h Mon May 09 08:33:42 2011 +0000 +++ b/libpurple/protocols/msn/p2p.h Mon May 09 08:34:25 2011 +0000 @@ -203,6 +203,9 @@ void msn_p2p_info_init_first(MsnP2PInfo *new_info, MsnP2PInfo *old_info); +MsnP2PVersion +msn_p2p_get_user_support(const char *passport); + guint32 msn_p2p_info_get_session_id(MsnP2PInfo *info);
--- a/libpurple/protocols/msn/slplink.c Mon May 09 08:33:42 2011 +0000 +++ b/libpurple/protocols/msn/slplink.c Mon May 09 08:34:25 2011 +0000 @@ -405,21 +405,10 @@ } } -static MsnSlpMessage * -msn_slplink_create_ack(MsnSlpLink *slplink, MsnP2PInfo *info) -{ - MsnSlpMessage *slpmsg; - - slpmsg = msn_slpmsg_ack_new(info); - msn_slpmsg_set_slplink(slpmsg, slplink); - - return slpmsg; -} - static void msn_slplink_send_ack(MsnSlpLink *slplink, MsnP2PInfo *info) { - MsnSlpMessage *slpmsg = msn_slplink_create_ack(slplink, info); + MsnSlpMessage *slpmsg = msn_slpmsg_ack_new(slplink, info); msn_slplink_send_slpmsg(slplink, slpmsg); msn_slpmsg_destroy(slpmsg); @@ -447,7 +436,7 @@ MsnSlpMessage *slpmsg; guint32 session_id; - slpmsg = msn_slpmsg_new(slplink); + slpmsg = msn_slpmsg_new(slplink, NULL); slpmsg->id = msn_p2p_info_get_id(info); session_id = msn_p2p_info_get_session_id(info); slpmsg->size = msn_p2p_info_get_total_size(info); @@ -521,7 +510,7 @@ */ purple_debug_info("msn", "msn_slplink_process_msg: save ACK\n"); - slpcall->slplink->dc->prev_ack = msn_slplink_create_ack(slplink, info); + slpcall->slplink->dc->prev_ack = msn_slpmsg_ack_new(slplink, info); } else if (!slpcall->wasted) { purple_debug_info("msn", "msn_slplink_process_msg: send ACK\n");
--- a/libpurple/protocols/msn/slpmsg.c Mon May 09 08:33:42 2011 +0000 +++ b/libpurple/protocols/msn/slpmsg.c Mon May 09 08:34:25 2011 +0000 @@ -34,9 +34,10 @@ **************************************************************************/ MsnSlpMessage * -msn_slpmsg_new(MsnSlpLink *slplink) +msn_slpmsg_new(MsnSlpLink *slplink, MsnSlpCall *slpcall) { MsnSlpMessage *slpmsg; + MsnP2PVersion p2p; slpmsg = g_new0(MsnSlpMessage, 1); @@ -47,8 +48,10 @@ msn_slpmsg_set_slplink(slpmsg, slplink); else slpmsg->slplink = NULL; + slpmsg->slpcall = slpcall; - slpmsg->p2p_info = msn_p2p_info_new(MSN_P2P_VERSION_ONE); + p2p = msn_p2p_get_user_support(slplink->remote_user); + slpmsg->p2p_info = msn_p2p_info_new(p2p); return slpmsg; } @@ -103,7 +106,6 @@ slplink->slp_msgs = g_list_append(slplink->slp_msgs, slpmsg); - } void @@ -188,22 +190,20 @@ g_strlcat(body, content, body_len); } - slpmsg = msn_slpmsg_new(slplink); + slpmsg = msn_slpmsg_new(slplink, slpcall); msn_slpmsg_set_body(slpmsg, body, body_len); - slpmsg->slpcall = slpcall; - g_free(body); return slpmsg; } -MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PInfo *ack_info) +MsnSlpMessage *msn_slpmsg_ack_new(MsnSlpLink *slplink, MsnP2PInfo *ack_info) { MsnSlpMessage *slpmsg; MsnP2PInfo *new_info; - slpmsg = msn_slpmsg_new(NULL); + slpmsg = msn_slpmsg_new(slplink, NULL); new_info = slpmsg->p2p_info; msn_p2p_info_create_ack(ack_info, new_info); @@ -217,8 +217,7 @@ { MsnSlpMessage *slpmsg; - slpmsg = msn_slpmsg_new(NULL); - slpmsg->slpcall = slpcall; + slpmsg = msn_slpmsg_new(slpcall->slplink, slpcall); msn_p2p_info_set_flags(slpmsg->p2p_info, P2P_MSN_OBJ_DATA); slpmsg->info = "SLP DATA"; @@ -231,9 +230,8 @@ { MsnSlpMessage *slpmsg; - slpmsg = msn_slpmsg_new(NULL); + slpmsg = msn_slpmsg_new(slpcall->slplink, slpcall); - slpmsg->slpcall = slpcall; msn_p2p_info_set_session_id(slpmsg->p2p_info, slpcall->session_id); msn_slpmsg_set_body(slpmsg, NULL, 4); slpmsg->info = "SLP DATA PREP"; @@ -246,9 +244,8 @@ { MsnSlpMessage *slpmsg; - slpmsg = msn_slpmsg_new(NULL); + slpmsg = msn_slpmsg_new(slpcall->slplink, slpcall); - slpmsg->slpcall = slpcall; msn_p2p_info_set_flags(slpmsg->p2p_info, P2P_FILE_DATA); slpmsg->info = "SLP FILE"; slpmsg->size = size;
--- a/libpurple/protocols/msn/slpmsg.h Mon May 09 08:33:42 2011 +0000 +++ b/libpurple/protocols/msn/slpmsg.h Mon May 09 08:34:25 2011 +0000 @@ -72,7 +72,7 @@ * If it's set to NULL, it is a temporary SlpMessage. * @return The created slp message. */ -MsnSlpMessage *msn_slpmsg_new(MsnSlpLink *slplink); +MsnSlpMessage *msn_slpmsg_new(MsnSlpLink *slplink, MsnSlpCall *slpcall); /** * Destroys a slp message @@ -104,7 +104,7 @@ * * @return A new SlpMessage with ACK headers */ -MsnSlpMessage *msn_slpmsg_ack_new(MsnP2PInfo *info); +MsnSlpMessage *msn_slpmsg_ack_new(MsnSlpLink *slplink, MsnP2PInfo *info); /** * Create a new SLP message for MsnObject data.
--- a/libpurple/protocols/msn/slpmsg_part.c Mon May 09 08:33:42 2011 +0000 +++ b/libpurple/protocols/msn/slpmsg_part.c Mon May 09 08:34:25 2011 +0000 @@ -42,14 +42,15 @@ return msn_slpmsgpart_ref(part); } -MsnSlpMessagePart *msn_slpmsgpart_new_from_data(const char *data, size_t data_len) +MsnSlpMessagePart * +msn_slpmsgpart_new_from_data(MsnP2PVersion p2p, const char *data, size_t data_len) { MsnSlpMessagePart *part; MsnP2PInfo *info; size_t len; int body_len; - info = msn_p2p_info_new(MSN_P2P_VERSION_ONE); + info = msn_p2p_info_new(p2p); /* Extract the binary SLP header */ len = msn_p2p_header_from_wire(info, data, data_len);
--- a/libpurple/protocols/msn/slpmsg_part.h Mon May 09 08:33:42 2011 +0000 +++ b/libpurple/protocols/msn/slpmsg_part.h Mon May 09 08:34:25 2011 +0000 @@ -46,7 +46,7 @@ MsnSlpMessagePart *msn_slpmsgpart_new(MsnP2PInfo *info); -MsnSlpMessagePart *msn_slpmsgpart_new_from_data(const char *data, size_t data_len); +MsnSlpMessagePart *msn_slpmsgpart_new_from_data(MsnP2PVersion p2p, const char *data, size_t data_len); MsnSlpMessagePart *msn_slpmsgpart_ref(MsnSlpMessagePart *part);