Changeset 7977 for trunk/libtransmission/torrent.c
- Timestamp:
- Mar 1, 2009, 1:56:22 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/torrent.c
r7894 r7977 59 59 tr_torrent * tor = NULL; 60 60 61 while( ( tor = tr_torrentNext( session, tor ) ))61 while(( tor = tr_torrentNext( session, tor ))) 62 62 if( tor->uniqueId == id ) 63 63 return tor; … … 71 71 tr_torrent * tor = NULL; 72 72 73 while( ( tor = tr_torrentNext( session, tor ) ))73 while(( tor = tr_torrentNext( session, tor ))) 74 74 if( !strcmp( str, tor->info.hashString ) ) 75 75 return tor; … … 83 83 tr_torrent * tor = NULL; 84 84 85 while( ( tor = tr_torrentNext( session, tor ) ))85 while(( tor = tr_torrentNext( session, tor ))) 86 86 if( *tor->info.hash == *torrentHash ) 87 87 if( !memcmp( tor->info.hash, torrentHash, SHA_DIGEST_LENGTH ) ) … … 97 97 tr_torrent * tor = NULL; 98 98 99 while( ( tor = tr_torrentNext( session, tor ) ))99 while(( tor = tr_torrentNext( session, tor ))) 100 100 if( !memcmp( tor->obfuscatedHash, obfuscatedTorrentHash, 101 101 SHA_DIGEST_LENGTH ) ) … … 152 152 153 153 void 154 tr_torrentSetRatioMode( tr_torrent * tor, 155 tr_ratiolimit mode ) 154 tr_torrentSetRatioMode( tr_torrent * tor, tr_ratiolimit mode ) 156 155 { 157 156 assert( tr_isTorrent( tor ) ); … … 159 158 160 159 tor->ratioLimitMode = mode; 160 161 tr_torrentCheckSeedRatio( tor ); 161 162 } 162 163 … … 175 176 assert( tr_isTorrent( tor ) ); 176 177 177 tor->desiredRatio = desiredRatio; 178 tor->desiredRatio = desiredRatio; 179 180 tr_torrentCheckSeedRatio( tor ); 178 181 } 179 182 … … 904 907 s->eta = s->leftUntilDone / s->pieceDownloadSpeed / 1024.0; 905 908 break; 906 909 907 910 case TR_STATUS_SEED: 908 911 if( tr_torrentGetSeedRatio( tor, &seedRatio ) ) … … 916 919 s->eta = TR_ETA_NOT_AVAIL; 917 920 break; 918 921 919 922 default: 920 923 s->eta = TR_ETA_NOT_AVAIL; … … 1545 1548 1546 1549 static void 1547 setFileDND( tr_torrent * tor, 1548 tr_file_index_t fileIndex, 1549 int doDownload ) 1550 setFileDND( tr_torrent * tor, tr_file_index_t fileIndex, int doDownload ) 1550 1551 { 1551 1552 tr_file * file; … … 1602 1603 1603 1604 void 1604 tr_torrentInitFileDLs( tr_torrent *tor,1605 tr_torrentInitFileDLs( tr_torrent * tor, 1605 1606 tr_file_index_t * files, 1606 1607 tr_file_index_t fileCount, … … 1613 1614 tr_torrentLock( tor ); 1614 1615 1615 for( i = 0; i <fileCount; ++i )1616 for( i=0; i<fileCount; ++i ) 1616 1617 setFileDND( tor, files[i], doDownload ); 1617 tr_cpInvalidateDND ( &tor->completion ); 1618 tr_cpInvalidateDND( &tor->completion ); 1619 tr_torrentCheckSeedRatio( tor ); 1618 1620 1619 1621 tr_torrentUnlock( tor ); … … 1749 1751 1750 1752 if( isChecked ) 1751 tr_bitfieldAddRange 1753 tr_bitfieldAddRange( &tor->checkedPieces, begin, end ); 1752 1754 else 1753 tr_bitfieldRemRange 1755 tr_bitfieldRemRange( &tor->checkedPieces, begin, end ); 1754 1756 } 1755 1757 … … 1778 1780 assert( tr_isTorrent( tor ) ); 1779 1781 1780 tr_bitfieldRemRange 1782 tr_bitfieldRemRange( &tor->checkedPieces, 0, tor->info.pieceCount ); 1781 1783 } 1782 1784 … … 2112 2114 } 2113 2115 } 2116 2117 /*** 2118 **** 2119 ***/ 2120 2121 void 2122 tr_torrentCheckSeedRatio( tr_torrent * tor ) 2123 { 2124 double seedRatio; 2125 2126 assert( tr_isTorrent( tor ) ); 2127 2128 /* if we're seeding and we've reached our seed ratio limit, stop the torrent */ 2129 if( tr_torrentIsSeed( tor ) && tr_torrentGetSeedRatio( tor, &seedRatio ) ) 2130 { 2131 const double up = tor->uploadedCur + tor->uploadedPrev; 2132 const double down = tor->downloadedCur + tor->downloadedPrev; 2133 const double ratio = tr_getRatio( up, down ); 2134 if( ratio >= seedRatio ) 2135 { 2136 tr_torrentStop( tor ); 2137 2138 /* set to no ratio limit to allow easy restarting */ 2139 tr_torrentSetRatioMode( tor, TR_RATIOLIMIT_UNLIMITED ); 2140 2141 /* maybe notify the client */ 2142 if( tor->ratio_limit_hit_func != NULL ) 2143 tor->ratio_limit_hit_func( tor, tor->ratio_limit_hit_func_user_data ); 2144 2145 } 2146 } 2147 }
Note: See TracChangeset
for help on using the changeset viewer.