mirror of
				git://erdgeist.org/opentracker
				synced 2025-11-04 03:43:23 +08:00 
			
		
		
		
	Some clients have added the /stats URL as /announce URL and cause a lot of expensive operations. Prevent that
This commit is contained in:
		
							parent
							
								
									9f08041585
								
							
						
					
					
						commit
						6604d65779
					
				@ -194,7 +194,7 @@ ssize_t http_sendiovecdata( const int64 sock, struct ot_workstruct *ws, int iove
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static ssize_t http_handle_stats( const int64 sock, struct ot_workstruct *ws, char *read_ptr ) {
 | 
					static ssize_t http_handle_stats( const int64 sock, struct ot_workstruct *ws, char *read_ptr ) {
 | 
				
			||||||
static const ot_keywords keywords_main[] =
 | 
					static const ot_keywords keywords_main[] =
 | 
				
			||||||
  { { "mode", 1 }, {"format", 2 }, { NULL, -3 } };
 | 
					  { { "mode", 1 }, {"format", 2 }, {"info_hash", 3}, { NULL, -3 } };
 | 
				
			||||||
static const ot_keywords keywords_mode[] =
 | 
					static const ot_keywords keywords_mode[] =
 | 
				
			||||||
  { { "peer", TASK_STATS_PEERS }, { "conn", TASK_STATS_CONNS }, { "scrp", TASK_STATS_SCRAPE }, { "udp4", TASK_STATS_UDP }, { "tcp4", TASK_STATS_TCP },
 | 
					  { { "peer", TASK_STATS_PEERS }, { "conn", TASK_STATS_CONNS }, { "scrp", TASK_STATS_SCRAPE }, { "udp4", TASK_STATS_UDP }, { "tcp4", TASK_STATS_TCP },
 | 
				
			||||||
    { "busy", TASK_STATS_BUSY_NETWORKS }, { "torr", TASK_STATS_TORRENTS }, { "fscr", TASK_STATS_FULLSCRAPE },
 | 
					    { "busy", TASK_STATS_BUSY_NETWORKS }, { "torr", TASK_STATS_TORRENTS }, { "fscr", TASK_STATS_FULLSCRAPE },
 | 
				
			||||||
@ -230,6 +230,7 @@ static const ot_keywords keywords_format[] =
 | 
				
			|||||||
    case  2: /* matched "format" */
 | 
					    case  2: /* matched "format" */
 | 
				
			||||||
      if( ( format = scan_find_keywords( keywords_format, &read_ptr, SCAN_SEARCHPATH_VALUE ) ) <= 0 ) HTTPERROR_400_PARAM;
 | 
					      if( ( format = scan_find_keywords( keywords_format, &read_ptr, SCAN_SEARCHPATH_VALUE ) ) <= 0 ) HTTPERROR_400_PARAM;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
 | 
					    case  3: HTTPERROR_400_PARAM; /* If the stats URL was mistakenly added as announce URL, return a 400 */
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user