maybe fix the where-are-the-peers-coming-from bug reported by SoftwareElves, John_Clay, and jahpraiseherb

This commit is contained in:
Charles Kerr 2007-10-01 15:36:31 +00:00
parent 5c11c58113
commit 1a012b8b87
2 changed files with 4 additions and 3 deletions

View File

@ -37,7 +37,6 @@ typedef struct tr_peer
unsigned int doPurge : 1;
uint8_t encryption_preference;
uint8_t from;
uint16_t port;
struct in_addr in_addr;
struct tr_peerIo * io;

View File

@ -1286,13 +1286,14 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
for( i=0; i<size; ++i )
{
const tr_peer * peer = peers[i];
const struct peer_atom * atom = getExistingAtom( t, &peer->in_addr );
if( peer->io == NULL ) /* not connected */
continue;
++*setmePeersConnected;
++setmePeersFrom[peer->from];
++setmePeersFrom[atom->from];
if( tr_peerIoGetRateToPeer( peer->io ) > 0.01 )
++*setmePeersGettingFromUs;
@ -1327,10 +1328,11 @@ tr_peerMgrPeerStats( const tr_peerMgr * manager,
const tr_peer * peer = peers[i];
const int live = peer->io != NULL;
tr_peer_stat * stat = ret + i;
const struct peer_atom * atom = getExistingAtom( t, &peer->in_addr );
tr_netNtop( &peer->in_addr, stat->addr, sizeof(stat->addr) );
stat->port = peer->port;
stat->from = peer->from;
stat->from = atom->from;
stat->client = peer->client;
stat->progress = peer->progress;
stat->isConnected = live ? 1 : 0;