--- 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: