Changeset 10826
- Timestamp:
- Jun 23, 2010, 4:06:15 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/torrent.c
r10816 r10826 2146 2146 ***/ 2147 2147 2148 static int 2149 compareTrackerByTier( const void * va, const void * vb ) 2150 { 2151 const tr_tracker_info * a = va; 2152 const tr_tracker_info * b = vb; 2153 2154 /* sort by tier */ 2155 if( a->tier != b->tier ) 2156 return a->tier - b->tier; 2157 2158 /* get the effects of a stable sort by comparing the two elements' addresses */ 2159 return a - b; 2160 } 2161 2148 2162 tr_bool 2149 2163 tr_torrentSetAnnounceList( tr_torrent * tor, 2150 const tr_tracker_info * trackers ,2164 const tr_tracker_info * trackers_in, 2151 2165 int trackerCount ) 2152 2166 { … … 2154 2168 tr_benc metainfo; 2155 2169 tr_bool ok = TRUE; 2170 tr_tracker_info * trackers; 2171 2156 2172 tr_torrentLock( tor ); 2157 2173 2158 2174 assert( tr_isTorrent( tor ) ); 2175 2176 /* ensure the trackers' tiers are in ascending order */ 2177 trackers = tr_memdup( trackers_in, sizeof( tr_tracker_info ) * trackerCount ); 2178 qsort( trackers, trackerCount, sizeof( tr_tracker_info ), compareTrackerByTier ); 2159 2179 2160 2180 /* look for bad URLs */ … … 2237 2257 2238 2258 tr_torrentUnlock( tor ); 2259 2260 tr_free( trackers ); 2239 2261 return ok; 2240 2262 }
Note: See TracChangeset
for help on using the changeset viewer.