mirror of
				git://erdgeist.org/opentracker
				synced 2025-11-04 03:43:23 +08:00 
			
		
		
		
	Tidy up stats task.
This commit is contained in:
		
							parent
							
								
									e89a8aaf58
								
							
						
					
					
						commit
						80fd4dc738
					
				
							
								
								
									
										24
									
								
								ot_http.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								ot_http.c
									
									
									
									
									
								
							@ -214,6 +214,12 @@ static ssize_t http_handle_sync( const int64 client_socket, char *data ) {
 | 
				
			|||||||
static ssize_t http_handle_stats( const int64 client_socket, char *data, char *d, size_t l ) {
 | 
					static ssize_t http_handle_stats( const int64 client_socket, char *data, char *d, size_t l ) {
 | 
				
			||||||
  char *c = data;
 | 
					  char *c = data;
 | 
				
			||||||
  int mode = TASK_STATS_PEERS, scanon = 1, format = 0;
 | 
					  int mode = TASK_STATS_PEERS, scanon = 1, format = 0;
 | 
				
			||||||
 | 
					#ifdef WANT_RESTRICT_STATS
 | 
				
			||||||
 | 
					  struct http_data *h = io_getcookie( client_socket );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if( !accesslist_isblessed( h->ip, OT_PERMISSION_MAY_STAT ) )
 | 
				
			||||||
 | 
					    HTTPERROR_403_IP;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  while( scanon ) {
 | 
					  while( scanon ) {
 | 
				
			||||||
    switch( scan_urlencoded_query( &c, data = c, SCAN_SEARCHPATH_PARAM ) ) {
 | 
					    switch( scan_urlencoded_query( &c, data = c, SCAN_SEARCHPATH_PARAM ) ) {
 | 
				
			||||||
@ -230,8 +236,8 @@ static ssize_t http_handle_stats( const int64 client_socket, char *data, char *d
 | 
				
			|||||||
        mode = TASK_STATS_PEERS;
 | 
					        mode = TASK_STATS_PEERS;
 | 
				
			||||||
      else if( !byte_diff(data,4,"conn"))
 | 
					      else if( !byte_diff(data,4,"conn"))
 | 
				
			||||||
        mode = TASK_STATS_CONNS;
 | 
					        mode = TASK_STATS_CONNS;
 | 
				
			||||||
      else if( !byte_diff(data,4,"top5"))
 | 
					      else if( !byte_diff(data,4,"top10"))
 | 
				
			||||||
        mode = TASK_STATS_TOP5;
 | 
					        mode = TASK_STATS_TOP10;
 | 
				
			||||||
      else if( !byte_diff(data,4,"scrp"))
 | 
					      else if( !byte_diff(data,4,"scrp"))
 | 
				
			||||||
        mode = TASK_STATS_SCRAPE;
 | 
					        mode = TASK_STATS_SCRAPE;
 | 
				
			||||||
      else if( !byte_diff(data,4,"torr"))
 | 
					      else if( !byte_diff(data,4,"torr"))
 | 
				
			||||||
@ -256,6 +262,10 @@ static ssize_t http_handle_stats( const int64 client_socket, char *data, char *d
 | 
				
			|||||||
        mode = TASK_STATS_VERSION;
 | 
					        mode = TASK_STATS_VERSION;
 | 
				
			||||||
      else if( !byte_diff(data,4,"busy"))
 | 
					      else if( !byte_diff(data,4,"busy"))
 | 
				
			||||||
        mode = TASK_STATS_BUSY_NETWORKS;
 | 
					        mode = TASK_STATS_BUSY_NETWORKS;
 | 
				
			||||||
 | 
					      else if( !byte_diff(data,4,"dmem"))
 | 
				
			||||||
 | 
					        mode = TASK_STATS_MEMORY;
 | 
				
			||||||
 | 
					      else if( !byte_diff(data,4,"vdeb"))
 | 
				
			||||||
 | 
					        mode = TASK_STATS_VECTOR_DEBUG;
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        HTTPERROR_400_PARAM;
 | 
					        HTTPERROR_400_PARAM;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
@ -304,7 +314,17 @@ static ssize_t http_handle_stats( const int64 client_socket, char *data, char *d
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* default format for now */
 | 
					  /* default format for now */
 | 
				
			||||||
 | 
					  if( ( mode & TASK_CLASS_MASK ) == TASK_STATS ) {
 | 
				
			||||||
 | 
					    tai6464 t;
 | 
				
			||||||
 | 
					    /* Complex stats also include expensive memory debugging tools */
 | 
				
			||||||
 | 
					    taia_uint( &t, 0 ); io_timeout( client_socket, t );
 | 
				
			||||||
 | 
					    stats_deliver( client_socket, mode );
 | 
				
			||||||
 | 
					    return -2;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  /* Simple stats can be answerred immediately */
 | 
				
			||||||
  if( !( l = return_stats_for_tracker( static_outbuf + SUCCESS_HTTP_HEADER_LENGTH, mode, 0 ) ) ) HTTPERROR_500;
 | 
					  if( !( l = return_stats_for_tracker( static_outbuf + SUCCESS_HTTP_HEADER_LENGTH, mode, 0 ) ) ) HTTPERROR_500;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return l;
 | 
					  return l;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										33
									
								
								ot_mutex.h
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								ot_mutex.h
									
									
									
									
									
								
							@ -16,22 +16,25 @@ void mutex_bucket_unlock( int bucket );
 | 
				
			|||||||
void mutex_bucket_unlock_by_hash( ot_hash *hash );
 | 
					void mutex_bucket_unlock_by_hash( ot_hash *hash );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef enum {
 | 
					typedef enum {
 | 
				
			||||||
  TASK_STATS_CONNS                 = 0x0000,
 | 
					  TASK_STATS_CONNS                 = 0x0001,
 | 
				
			||||||
  TASK_STATS_PEERS                 = 0x0001,
 | 
					  TASK_STATS_TCP                   = 0x0002,
 | 
				
			||||||
  TASK_STATS_TOP5                  = 0x0002,
 | 
					  TASK_STATS_UDP                   = 0x0003,
 | 
				
			||||||
  TASK_STATS_TCP                   = 0x0003,
 | 
					  TASK_STATS_SCRAPE                = 0x0004,
 | 
				
			||||||
  TASK_STATS_UDP                   = 0x0004,
 | 
					  TASK_STATS_FULLSCRAPE            = 0x0005,
 | 
				
			||||||
  TASK_STATS_SCRAPE                = 0x0005,
 | 
					  TASK_STATS_TPB                   = 0x0006,
 | 
				
			||||||
  TASK_STATS_FULLSCRAPE            = 0x0006,
 | 
					  TASK_STATS_HTTPERRORS            = 0x0007,
 | 
				
			||||||
  TASK_STATS_TPB                   = 0x0007,
 | 
					  TASK_STATS_STARTSTOP             = 0x0008,
 | 
				
			||||||
  TASK_STATS_HTTPERRORS            = 0x0008,
 | 
					  TASK_STATS_TORADDREM             = 0x0009,
 | 
				
			||||||
  TASK_STATS_TORRENTS              = 0x0009,
 | 
					  TASK_STATS_VERSION               = 0x000a,
 | 
				
			||||||
  TASK_STATS_STARTSTOP             = 0x000a,
 | 
					  TASK_STATS_BUSY_NETWORKS         = 0x000b,
 | 
				
			||||||
  TASK_STATS_TORADDREM             = 0x000b,
 | 
					  TASK_STATS_VECTOR_DEBUG          = 0x000c,
 | 
				
			||||||
  TASK_STATS_VERSION               = 0x000c,
 | 
					 | 
				
			||||||
  TASK_STATS_BUSY_NETWORKS         = 0x000d,
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TASK_STATS_SLASH24S              = 0x0100,
 | 
					  TASK_STATS                       = 0x0100, /* Mask */
 | 
				
			||||||
 | 
					  TASK_STATS_TORRENTS              = 0x0101,
 | 
				
			||||||
 | 
					  TASK_STATS_PEERS                 = 0x0102,
 | 
				
			||||||
 | 
					  TASK_STATS_SLASH24S              = 0x0103,
 | 
				
			||||||
 | 
					  TASK_STATS_TOP10                 = 0x0104,
 | 
				
			||||||
 | 
					  TASK_STATS_MEMORY                = 0x0105,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TASK_FULLSCRAPE                  = 0x0200, /* Default mode */
 | 
					  TASK_FULLSCRAPE                  = 0x0200, /* Default mode */
 | 
				
			||||||
  TASK_FULLSCRAPE_TPB_BINARY       = 0x0201,
 | 
					  TASK_FULLSCRAPE_TPB_BINARY       = 0x0201,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user