*/
struct tr_peermsgs
{
- tr_bool got_a_bitfield_or_have_all_or_have_none;
tr_bool peerSupportsPex;
tr_bool peerSupportsMetadataXfer;
tr_bool clientSentLtepHandshake;
const size_t bitCount = tr_torrentHasMetadata( msgs->torrent )
? msgs->torrent->info.pieceCount
: msglen * 8;
-assert( !msgs->got_a_bitfield_or_have_all_or_have_none );
-msgs->got_a_bitfield_or_have_all_or_have_none = TRUE;
dbgmsg( msgs, "got a bitfield" );
tr_bitsetReserve( &msgs->peer->have, bitCount );
tr_peerIoReadBytes( msgs->peer->io, inbuf,
case BT_FEXT_HAVE_ALL:
dbgmsg( msgs, "Got a BT_FEXT_HAVE_ALL" );
if( fext ) {
-assert( !msgs->got_a_bitfield_or_have_all_or_have_none );
-msgs->got_a_bitfield_or_have_all_or_have_none = TRUE;
tr_bitsetSetHaveAll( &msgs->peer->have );
fireClientGotHaveAll( msgs );
updatePeerProgress( msgs );
case BT_FEXT_HAVE_NONE:
dbgmsg( msgs, "Got a BT_FEXT_HAVE_NONE" );
if( fext ) {
-assert( !msgs->got_a_bitfield_or_have_all_or_have_none );
-msgs->got_a_bitfield_or_have_all_or_have_none = TRUE;
tr_bitsetSetHaveNone( &msgs->peer->have );
fireClientGotHaveNone( msgs );
updatePeerProgress( msgs );