]> git.ipfire.org Git - thirdparty/opentracker.git/commitdiff
Some clients have added the /stats URL as /announce URL and cause a lot of expensive...
authorDirk Engling <erdgeist@erdgeist.org>
Sat, 9 Mar 2024 22:58:41 +0000 (23:58 +0100)
committerDirk Engling <erdgeist@erdgeist.org>
Sat, 9 Mar 2024 22:58:41 +0000 (23:58 +0100)
ot_http.c

index 2e16b58370db227d2f1492807a387c80c65f590b..90b7a4baa9997796a1c49d0f9087bbf9074f3ae2 100644 (file)
--- a/ot_http.c
+++ b/ot_http.c
@@ -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 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[] =
   { { "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 },
@@ -230,6 +230,7 @@ static const ot_keywords keywords_format[] =
     case  2: /* matched "format" */
       if( ( format = scan_find_keywords( keywords_format, &read_ptr, SCAN_SEARCHPATH_VALUE ) ) <= 0 ) HTTPERROR_400_PARAM;
       break;
+    case  3: HTTPERROR_400_PARAM; /* If the stats URL was mistakenly added as announce URL, return a 400 */
     }
   }