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);