]> git.ipfire.org Git - thirdparty/opentracker.git/commitdiff
The expensive DMEM stats is gone. No need for it, too much potential to DOS.
authorerdgeist <>
Tue, 6 Nov 2007 18:02:03 +0000 (18:02 +0000)
committererdgeist <>
Tue, 6 Nov 2007 18:02:03 +0000 (18:02 +0000)
Makefile
opentracker.c
ot_stats.c
ot_stats.h
ot_sync.h

index 37dd8d3518944cd1e4f78f749ffcbddc0209dc27..529eced9ec5027d4e9609ae6df06b2490fdc9c41 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 CC?=gcc
-FEATURES=#-DWANT_TRACKER_SYNC -DWANT_BLACKLISTING -DWANT_CLOSED_TRACKER -DWANT_UTORRENT1600_WORKAROUND #-DWANT_IP_FROM_QUERY_STRING -D_DEBUG_HTTPERROR
+FEATURES=-DWANT_TRACKER_SYNC #-DWANT_BLACKLISTING -DWANT_CLOSED_TRACKER -DWANT_UTORRENT1600_WORKAROUND #-DWANT_IP_FROM_QUERY_STRING -D_DEBUG_HTTPERROR
 OPTS_debug=-g -ggdb #-pg # -fprofile-arcs -ftest-coverage
 OPTS_production=-Os
 CFLAGS+=-I../libowfat -Wall -pipe -Wextra #-pedantic -ansi
index 6bde42ee45833d9524a94c813c66057172882121..8b440c55237da87379164cf6eaf91fac05851b0e 100644 (file)
@@ -325,8 +325,6 @@ LOG_TO_STDERR( "sync: %d.%d.%d.%d\n", h->ip[0], h->ip[1], h->ip[2], h->ip[3] );
           mode = STATS_TOP5;
         else if( !byte_diff(data,4,"fscr"))
           mode = STATS_FULLSCRAPE;
-        else if( !byte_diff(data,4,"dmem"))
-          mode = STATS_DMEM;
         else if( !byte_diff(data,4,"tcp4"))
           mode = STATS_TCP;
         else if( !byte_diff(data,4,"udp4"))
@@ -338,16 +336,8 @@ LOG_TO_STDERR( "sync: %d.%d.%d.%d\n", h->ip[0], h->ip[1], h->ip[2], h->ip[3] );
       }
     }
 
-    switch( mode)
-    {
-      case STATS_DMEM:
-        if( !( reply_size = return_memstat_for_tracker( &reply ) ) ) HTTPERROR_500;
-        return sendmmapdata( s, reply, reply_size );
-      default:
-        // default format for now
-        if( !( reply_size = return_stats_for_tracker( static_outbuf + SUCCESS_HTTP_HEADER_LENGTH, mode, 0 ) ) ) HTTPERROR_500;
-        break;
-      }
+    // default format for now
+    if( !( reply_size = return_stats_for_tracker( static_outbuf + SUCCESS_HTTP_HEADER_LENGTH, mode, 0 ) ) ) HTTPERROR_500;
     break;
 
 /******************************
index 97e83dd828d774eea785131b719fdc025544d59c..587155e4dc6133c09eb25b9cf2dde3535b6980ab 100644 (file)
@@ -162,47 +162,6 @@ bailout_cleanup:
   return 0;
 }
 
-size_t return_memstat_for_tracker( char **reply ) {
-  size_t torrent_count = 0, j;
-  size_t allocated, replysize;
-  ot_vector *torrents_list;
-  int    bucket, k;
-  char  *r;
-
-  for( bucket=0; bucket<OT_BUCKET_COUNT; ++bucket ) {
-    torrents_list = mutex_bucket_lock(bucket);
-    torrent_count += torrents_list->size;
-    mutex_bucket_unlock(bucket);
-  }
-
-  allocated = OT_BUCKET_COUNT*32 + (43+OT_POOLS_COUNT*32)*torrent_count;
-  if( !( r = *reply = mmap( NULL, allocated, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0 ) ) ) return 0;
-
-  for( bucket=0; bucket<OT_BUCKET_COUNT; ++bucket ) {
-    torrents_list = mutex_bucket_lock(bucket);
-    r += sprintf( r, "%02X: %08X %08X\n", bucket, (unsigned int)torrents_list->size, (unsigned int)torrents_list->space );
-    mutex_bucket_unlock(bucket);
-  }
-
-  for( bucket=0; bucket<OT_BUCKET_COUNT; ++bucket ) {
-    ot_vector *torrents_list = mutex_bucket_lock(bucket);
-    char hex_out[42];
-    for( j=0; j<torrents_list->size; ++j ) {
-      ot_peerlist *peer_list = ( ((ot_torrent*)(torrents_list->data))[j] ).peer_list;
-      ot_hash     *hash      =&( ((ot_torrent*)(torrents_list->data))[j] ).hash;
-      r += sprintf( r, "\n%s:\n", to_hex( hex_out, (ot_byte*)hash) );
-      for( k=0; k<OT_POOLS_COUNT; ++k )
-        r += sprintf( r, "\t%05X %05X\n", ((unsigned int)peer_list->peers[k].size), (unsigned int)peer_list->peers[k].space );
-    }
-    mutex_bucket_unlock(bucket);
-  }
-
-  replysize = ( r - *reply );
-  fix_mmapallocation( *reply, allocated, replysize );
-
-  return replysize;
-}
-
 static unsigned long events_per_time( unsigned long long events, time_t t ) {
   return events / ( (unsigned int)t ? (unsigned int)t : 1 );
 }
index 58eec7182286955574c0c4043437aa77b67fa325..a0c2a6b16b2d53405a0955d20aca72500cc8dc6e 100644 (file)
@@ -4,7 +4,7 @@
 #ifndef __OT_STATS_H__
 #define __OT_STATS_H__
 
-enum { STATS_CONNS, STATS_PEERS, STATS_TOP5, STATS_DMEM, STATS_TCP, STATS_UDP, STATS_SLASH24S, SYNC_IN, SYNC_OUT, STATS_FULLSCRAPE };
+enum { STATS_CONNS, STATS_PEERS, STATS_TOP5, STATS_TCP, STATS_UDP, STATS_SLASH24S, STATS_FULLSCRAPE };
 typedef enum {
   EVENT_ACCEPT,
   EVENT_READ,
@@ -18,8 +18,6 @@ typedef enum {
 } ot_status_event;
 
 size_t return_stats_for_tracker( char *reply, int mode, int format );
-size_t return_memstat_for_tracker( char **reply );
-
 void stats_issue_event( ot_status_event event, int is_tcp, size_t event_data );
 
 #endif
index eb9c002144271f6912f5ad83d1d3683395628ee2..65bf3070cd5cb3e9857a0e09696fb366d81573f1 100644 (file)
--- a/ot_sync.h
+++ b/ot_sync.h
@@ -7,6 +7,8 @@
 #include "trackerlogic.h"
 
 #ifdef WANT_TRACKER_SYNC
+enum { SYNC_IN, SYNC_OUT };
+
 size_t return_changeset_for_tracker( char **reply );
 int    add_changeset_to_tracker( ot_byte *data, size_t len );
 #endif