libpurple/protocols/msn/p2p.c

changeset 31772
ad88c7c133a3
parent 31771
26e1c519295f
child 31773
4de9d3a046be
--- a/libpurple/protocols/msn/p2p.c	Sat May 07 07:29:47 2011 +0000
+++ b/libpurple/protocols/msn/p2p.c	Sat May 07 07:49:25 2011 +0000
@@ -407,6 +407,31 @@
 	}
 }
 
+gboolean
+msn_p2p_info_require_ack(MsnP2PInfo *info)
+{
+	gboolean ret = FALSE;
+
+	switch (info->version) {
+		case MSN_P2P_VERSION_ONE: {
+			guint32 flags = msn_p2p_info_get_flags(info);
+
+			ret = flags == P2P_NO_FLAG || flags == P2P_WLM2009_COMP ||
+			      msn_p2p_msg_is_data(flags);
+			break;
+		}
+
+		case MSN_P2P_VERSION_TWO:
+			ret = (info->header.v2.opcode & P2P_OPCODE_RAK) > 0;
+			break;
+
+		default:
+			purple_debug_error("msn", "Invalid P2P Info version: %d\n", info->version);
+	}
+
+	return ret;
+}
+
 guint32
 msn_p2p_info_get_session_id(MsnP2PInfo *info)
 {

mercurial