summaryrefslogtreecommitdiff
path: root/trackerlogic.c
diff options
context:
space:
mode:
Diffstat (limited to 'trackerlogic.c')
-rw-r--r--trackerlogic.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/trackerlogic.c b/trackerlogic.c
index 901697d..0c78e16 100644
--- a/trackerlogic.c
+++ b/trackerlogic.c
@@ -310,6 +310,28 @@ size_t return_scrape_for_torrent( ot_hash *hash, char *reply ) {
310 return r - reply; 310 return r - reply;
311} 311}
312 312
313/* Fetches stats from tracker */
314size_t return_stats_for_tracker( char *reply ) {
315 int torrent_count = 0, peer_count = 0, seed_count = 0;
316 char *r = reply;
317 int i,j,k;
318
319 for( i=0; i<256; ++i ) {
320 ot_vector *torrents_list = &all_torrents[i];
321 torrent_count += torrents_list->size;
322 for( j=0; j<torrents_list->size; ++j ) {
323 ot_peerlist *peer_list = ( ((ot_torrent*)(torrents_list->data))[j] ).peer_list;
324 for( k=0; k<OT_POOLS_COUNT; ++k ) {
325 peer_count += peer_list->peers[k].size;
326 seed_count += peer_list->seed_count[k];
327 }
328 }
329 }
330 r += sprintf( r, "%i\n%i\nopentracker serving %i torrents\nSomething else.", peer_count, seed_count, torrent_count );
331
332 return r - reply;
333}
334
313void remove_peer_from_torrent( ot_hash *hash, ot_peer *peer ) { 335void remove_peer_from_torrent( ot_hash *hash, ot_peer *peer ) {
314 int exactmatch, i; 336 int exactmatch, i;
315 ot_vector *torrents_list = &all_torrents[*hash[0]]; 337 ot_vector *torrents_list = &all_torrents[*hash[0]];