]> git.ipfire.org Git - thirdparty/opentracker.git/commitdiff
Exclude empty torrents from full scrape, also try to shrink full scrape buffer after...
authorerdgeist <>
Tue, 16 Oct 2007 00:23:14 +0000 (00:23 +0000)
committererdgeist <>
Tue, 16 Oct 2007 00:23:14 +0000 (00:23 +0000)
opentracker.c
trackerlogic.c

index a2fe24e6b572924fefddc16ca602702a88ee1cc5..87e8b6f46f475a9dee1a9243f3b75804e96a279e 100644 (file)
@@ -374,6 +374,7 @@ SCRAPE_WORKAROUND:
 LOG_TO_STDERR( "scrp: %d.%d.%d.%d - FULL SCRAPE\n", h->ip[0], h->ip[1], h->ip[2], h->ip[3] );
 
       if( !( reply_size = return_fullscrape_for_tracker( &reply ) ) ) HTTPERROR_500;
+      if( (c = realloc( reply, reply_size ) ) ) reply = c;
       ot_overall_tcp_successfulannounces++;
       return sendmallocdata( s, reply, reply_size );
     }
index 239efb86954f65a0b4d061577d0429f85598ab18..37b3c4d9abd3f57786a715230e042f2852b15614 100644 (file)
@@ -325,9 +325,11 @@ size_t return_fullscrape_for_tracker( char **reply ) {
         peers += peer_list->peers[k].size;
         seeds += peer_list->seed_count[k];
       }
-      *r++='2'; *r++='0'; *r++=':';
-      memmove( r, hash, 20 ); r+=20;
-      r += sprintf( r, "d8:completei%zde10:downloadedi%zde10:incompletei%zdee", seeds, peer_list->downloaded, peers-seeds );
+      if( peers ) {
+        *r++='2'; *r++='0'; *r++=':';
+        memmove( r, hash, 20 ); r+=20;
+        r += sprintf( r, "d8:completei%zde10:downloadedi%zde10:incompletei%zdee", seeds, peer_list->downloaded, peers-seeds );
+      }
     }
   }