diff options
-rw-r--r-- | ot_mutex.h | 1 | ||||
-rw-r--r-- | ot_stats.c | 15 | ||||
-rw-r--r-- | ot_stats.h | 1 | ||||
-rw-r--r-- | trackerlogic.c | 4 |
4 files changed, 21 insertions, 0 deletions
@@ -28,6 +28,7 @@ typedef enum { | |||
28 | TASK_STATS_VERSION = 0x000a, | 28 | TASK_STATS_VERSION = 0x000a, |
29 | TASK_STATS_BUSY_NETWORKS = 0x000b, | 29 | TASK_STATS_BUSY_NETWORKS = 0x000b, |
30 | TASK_STATS_VECTOR_DEBUG = 0x000c, | 30 | TASK_STATS_VECTOR_DEBUG = 0x000c, |
31 | TASK_STATS_RENEW = 0x000d, | ||
31 | 32 | ||
32 | TASK_STATS = 0x0100, /* Mask */ | 33 | TASK_STATS = 0x0100, /* Mask */ |
33 | TASK_STATS_TORRENTS = 0x0101, | 34 | TASK_STATS_TORRENTS = 0x0101, |
@@ -46,6 +46,7 @@ static unsigned long long ot_full_scrape_count = 0; | |||
46 | static unsigned long long ot_full_scrape_request_count = 0; | 46 | static unsigned long long ot_full_scrape_request_count = 0; |
47 | static unsigned long long ot_full_scrape_size = 0; | 47 | static unsigned long long ot_full_scrape_size = 0; |
48 | static unsigned long long ot_failed_request_counts[CODE_HTTPERROR_COUNT]; | 48 | static unsigned long long ot_failed_request_counts[CODE_HTTPERROR_COUNT]; |
49 | static unsigned long long ot_renewed[OT_POOLS_COUNT]; | ||
49 | 50 | ||
50 | static time_t ot_start_time; | 51 | static time_t ot_start_time; |
51 | 52 | ||
@@ -492,6 +493,15 @@ static size_t stats_httperrors_txt ( char * reply ) { | |||
492 | ot_failed_request_counts[6] ); | 493 | ot_failed_request_counts[6] ); |
493 | } | 494 | } |
494 | 495 | ||
496 | static size_t stats_return_renew_bucket( char * reply ) { | ||
497 | char *r = reply; | ||
498 | int i; | ||
499 | |||
500 | for( i=0; i<OT_BUCKET_COUNT; ++i ) | ||
501 | r+=sprintf(r,"%02i %llu\n", i, ot_renewed[i] ); | ||
502 | return r - reply; | ||
503 | } | ||
504 | |||
495 | extern const char | 505 | extern const char |
496 | *g_version_opentracker_c, *g_version_accesslist_c, *g_version_clean_c, *g_version_fullscrape_c, *g_version_http_c, | 506 | *g_version_opentracker_c, *g_version_accesslist_c, *g_version_clean_c, *g_version_fullscrape_c, *g_version_http_c, |
497 | *g_version_iovec_c, *g_version_mutex_c, *g_version_stats_c, *g_version_sync_c, *g_version_udp_c, *g_version_vector_c, | 507 | *g_version_iovec_c, *g_version_mutex_c, *g_version_stats_c, *g_version_sync_c, *g_version_udp_c, *g_version_vector_c, |
@@ -525,6 +535,8 @@ size_t return_stats_for_tracker( char *reply, int mode, int format ) { | |||
525 | return stats_httperrors_txt( reply ); | 535 | return stats_httperrors_txt( reply ); |
526 | case TASK_STATS_VERSION: | 536 | case TASK_STATS_VERSION: |
527 | return stats_return_tracker_version( reply ); | 537 | return stats_return_tracker_version( reply ); |
538 | case TASK_STATS_RENEW: | ||
539 | return stats_return_renew_bucket( reply ); | ||
528 | #ifdef WANT_LOG_NETWORKS | 540 | #ifdef WANT_LOG_NETWORKS |
529 | case TASK_STATS_BUSY_NETWORKS: | 541 | case TASK_STATS_BUSY_NETWORKS: |
530 | return stats_return_busy_networks( reply ); | 542 | return stats_return_busy_networks( reply ); |
@@ -596,6 +608,9 @@ void stats_issue_event( ot_status_event event, PROTO_FLAG proto, uint32_t event_ | |||
596 | case EVENT_FAILED: | 608 | case EVENT_FAILED: |
597 | ot_failed_request_counts[event_data]++; | 609 | ot_failed_request_counts[event_data]++; |
598 | break; | 610 | break; |
611 | case EVENT_RENEW: | ||
612 | ot_renewed[event_data]++; | ||
613 | break; | ||
599 | case EVENT_SYNC_IN_REQUEST: | 614 | case EVENT_SYNC_IN_REQUEST: |
600 | case EVENT_SYNC_IN: | 615 | case EVENT_SYNC_IN: |
601 | case EVENT_SYNC_OUT_REQUEST: | 616 | case EVENT_SYNC_OUT_REQUEST: |
@@ -11,6 +11,7 @@ typedef enum { | |||
11 | EVENT_READ, | 11 | EVENT_READ, |
12 | EVENT_CONNECT, /* UDP only */ | 12 | EVENT_CONNECT, /* UDP only */ |
13 | EVENT_ANNOUNCE, | 13 | EVENT_ANNOUNCE, |
14 | EVENT_RENEW, | ||
14 | EVENT_SCRAPE, | 15 | EVENT_SCRAPE, |
15 | EVENT_FULLSCRAPE_REQUEST, | 16 | EVENT_FULLSCRAPE_REQUEST, |
16 | EVENT_FULLSCRAPE_REQUEST_GZIP, | 17 | EVENT_FULLSCRAPE_REQUEST_GZIP, |
diff --git a/trackerlogic.c b/trackerlogic.c index 3d9ca5e..0aca287 100644 --- a/trackerlogic.c +++ b/trackerlogic.c | |||
@@ -91,6 +91,8 @@ ot_torrent *add_peer_to_torrent( ot_hash *hash, ot_peer *peer WANT_SYNC_PARAM( | |||
91 | return torrent; | 91 | return torrent; |
92 | } | 92 | } |
93 | base_pool = 1; | 93 | base_pool = 1; |
94 | if( torrent->peer_list->base < NOW ) | ||
95 | torrent->peer_list->base = NOW; | ||
94 | } | 96 | } |
95 | #endif | 97 | #endif |
96 | 98 | ||
@@ -125,6 +127,7 @@ ot_torrent *add_peer_to_torrent( ot_hash *hash, ot_peer *peer WANT_SYNC_PARAM( | |||
125 | case 1: default: | 127 | case 1: default: |
126 | torrent->peer_list->peer_count--; | 128 | torrent->peer_list->peer_count--; |
127 | mutex_bucket_unlock_by_hash( hash ); | 129 | mutex_bucket_unlock_by_hash( hash ); |
130 | stats_issue_event( EVENT_RENEW, 0, i ); | ||
128 | return torrent; | 131 | return torrent; |
129 | } | 132 | } |
130 | } | 133 | } |
@@ -142,6 +145,7 @@ ot_torrent *add_peer_to_torrent( ot_hash *hash, ot_peer *peer WANT_SYNC_PARAM( | |||
142 | if( OT_FLAG( peer_dest ) & PEER_FLAG_COMPLETED ) | 145 | if( OT_FLAG( peer_dest ) & PEER_FLAG_COMPLETED ) |
143 | OT_FLAG( peer ) |= PEER_FLAG_COMPLETED; | 146 | OT_FLAG( peer ) |= PEER_FLAG_COMPLETED; |
144 | 147 | ||
148 | stats_issue_event( EVENT_RENEW, 0, base_pool ); | ||
145 | memmove( peer_dest, peer, sizeof( ot_peer ) ); | 149 | memmove( peer_dest, peer, sizeof( ot_peer ) ); |
146 | } | 150 | } |
147 | 151 | ||