mirror of
git://erdgeist.org/opentracker
synced 2025-01-13 16:30:06 +00:00
Count completed messages only once per peer
This commit is contained in:
parent
70a65f2842
commit
2313de59e5
@ -224,14 +224,15 @@ ot_torrent *add_peer_to_torrent( ot_hash *hash, ot_peer *peer ) {
|
|||||||
peer_pool = &torrent->peer_list->peers[0];
|
peer_pool = &torrent->peer_list->peers[0];
|
||||||
peer_dest = vector_find_or_insert( peer_pool, (void*)peer, sizeof( ot_peer ), OT_PEER_COMPARE_SIZE, &exactmatch );
|
peer_dest = vector_find_or_insert( peer_pool, (void*)peer, sizeof( ot_peer ), OT_PEER_COMPARE_SIZE, &exactmatch );
|
||||||
|
|
||||||
if( OT_FLAG( peer ) & PEER_FLAG_COMPLETED )
|
|
||||||
torrent->peer_list->downloaded++;
|
|
||||||
|
|
||||||
/* If we hadn't had a match in current pool, create peer there and
|
/* If we hadn't had a match in current pool, create peer there and
|
||||||
remove it from all older pools */
|
remove it from all older pools */
|
||||||
if( !exactmatch ) {
|
if( !exactmatch ) {
|
||||||
int i;
|
int i;
|
||||||
memmove( peer_dest, peer, sizeof( ot_peer ) );
|
memmove( peer_dest, peer, sizeof( ot_peer ) );
|
||||||
|
|
||||||
|
if( OT_FLAG( peer ) & PEER_FLAG_COMPLETED )
|
||||||
|
torrent->peer_list->downloaded++;
|
||||||
|
|
||||||
if( OT_FLAG(peer) & PEER_FLAG_SEEDING )
|
if( OT_FLAG(peer) & PEER_FLAG_SEEDING )
|
||||||
torrent->peer_list->seed_count[0]++;
|
torrent->peer_list->seed_count[0]++;
|
||||||
|
|
||||||
@ -247,6 +248,11 @@ ot_torrent *add_peer_to_torrent( ot_hash *hash, ot_peer *peer ) {
|
|||||||
torrent->peer_list->seed_count[0]--;
|
torrent->peer_list->seed_count[0]--;
|
||||||
if( !(OT_FLAG(peer_dest) & PEER_FLAG_SEEDING ) && (OT_FLAG(peer) & PEER_FLAG_SEEDING ) )
|
if( !(OT_FLAG(peer_dest) & PEER_FLAG_SEEDING ) && (OT_FLAG(peer) & PEER_FLAG_SEEDING ) )
|
||||||
torrent->peer_list->seed_count[0]++;
|
torrent->peer_list->seed_count[0]++;
|
||||||
|
if( !(OT_FLAG( peer_dest ) & PEER_FLAG_COMPLETED ) && (OT_FLAG( peer ) & PEER_FLAG_COMPLETED ) )
|
||||||
|
torrent->peer_list->downloaded++;
|
||||||
|
if( OT_FLAG( peer_dest ) & PEER_FLAG_COMPLETED )
|
||||||
|
OT_FLAG( peer ) |= PEER_FLAG_COMPLETED;
|
||||||
|
|
||||||
memmove( peer_dest, peer, sizeof( ot_peer ) );
|
memmove( peer_dest, peer, sizeof( ot_peer ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user