libpurple/protocols/msn/p2p.c

changeset 31791
d09a1b6dc386
parent 31790
fd6e676248f8
child 31792
ebe13c307f60
--- a/libpurple/protocols/msn/p2p.c	Mon May 09 22:56:29 2011 +0000
+++ b/libpurple/protocols/msn/p2p.c	Tue May 10 03:09:47 2011 +0000
@@ -349,6 +349,7 @@
 
 		case MSN_P2P_VERSION_TWO:
 			/* Nothing to do! */
+			valid = TRUE;
 			break;
 
 		default:
@@ -359,6 +360,28 @@
 }
 
 gboolean
+msn_p2p_info_is_first(MsnP2PInfo *info)
+{
+	gboolean first = FALSE;
+
+	switch (info->version) {
+		case MSN_P2P_VERSION_ONE:
+			first = info->header.v1.offset == 0;
+			break;
+
+		case MSN_P2P_VERSION_TWO:
+			/* Nothing to do! */
+			first = info->header.v2.data_tf & TF_FIRST;
+			break;
+
+		default:
+			purple_debug_error("msn", "Invalid P2P Info version: %d\n", info->version);
+	}
+
+	return first;
+}
+
+gboolean
 msn_p2p_info_is_final(MsnP2PInfo *info)
 {
 	gboolean final = FALSE;
@@ -369,7 +392,7 @@
 			break;
 
 		case MSN_P2P_VERSION_TWO:
-			/* Nothing to do! */
+			final = msn_tlv_gettlv(info->header.v2.data_tlv, 0x01, 1) == NULL;
 			break;
 
 		default:

mercurial