diff options
| author | erdgeist <> | 2008-10-28 00:24:14 +0000 |
|---|---|---|
| committer | erdgeist <> | 2008-10-28 00:24:14 +0000 |
| commit | 39ed6a058be7d21023470a3615f873527205785f (patch) | |
| tree | 1f5159fac7d25efd27908ce8e684557a6b60f3a1 | |
| parent | 511a92e3212e7902d9a0f2fccc33f3c93055c2a8 (diff) | |
Fix stats parse code to allow modes with more than 4 characters. Wir wurden ja langsam zum Gespoett der Leute.
| -rw-r--r-- | ot_http.c | 90 |
1 files changed, 52 insertions, 38 deletions
| @@ -231,44 +231,58 @@ static ssize_t http_handle_stats( const int64 client_socket, char *data, char *d | |||
| 231 | scan_urlencoded_skipvalue( &c ); | 231 | scan_urlencoded_skipvalue( &c ); |
| 232 | continue; | 232 | continue; |
| 233 | } | 233 | } |
| 234 | if( scan_urlencoded_query( &c, data = c, SCAN_SEARCHPATH_VALUE ) != 4 ) HTTPERROR_400_PARAM; | 234 | switch( scan_urlencoded_query( &c, data = c, SCAN_SEARCHPATH_VALUE ) ) { |
| 235 | if( !byte_diff(data,4,"peer")) | 235 | case 4: |
| 236 | mode = TASK_STATS_PEERS; | 236 | if( !byte_diff(data,4,"peer")) |
| 237 | else if( !byte_diff(data,4,"conn")) | 237 | mode = TASK_STATS_PEERS; |
| 238 | mode = TASK_STATS_CONNS; | 238 | else if( !byte_diff(data,4,"conn")) |
| 239 | else if( !byte_diff(data,4,"top10")) | 239 | mode = TASK_STATS_CONNS; |
| 240 | mode = TASK_STATS_TOP10; | 240 | else if( !byte_diff(data,4,"scrp")) |
| 241 | else if( !byte_diff(data,4,"scrp")) | 241 | mode = TASK_STATS_SCRAPE; |
| 242 | mode = TASK_STATS_SCRAPE; | 242 | else if( !byte_diff(data,4,"tcp4")) |
| 243 | else if( !byte_diff(data,4,"torr")) | 243 | mode = TASK_STATS_TCP; |
| 244 | mode = TASK_STATS_TORRENTS; | 244 | else if( !byte_diff(data,4,"udp4")) |
| 245 | else if( !byte_diff(data,4,"fscr")) | 245 | mode = TASK_STATS_UDP; |
| 246 | mode = TASK_STATS_FULLSCRAPE; | 246 | else if( !byte_diff(data,4,"busy")) |
| 247 | else if( !byte_diff(data,4,"tcp4")) | 247 | mode = TASK_STATS_BUSY_NETWORKS; |
| 248 | mode = TASK_STATS_TCP; | 248 | else if( !byte_diff(data,4,"dmem")) |
| 249 | else if( !byte_diff(data,4,"udp4")) | 249 | mode = TASK_STATS_MEMORY; |
| 250 | mode = TASK_STATS_UDP; | 250 | else if( !byte_diff(data,4,"vdeb")) |
| 251 | else if( !byte_diff(data,4,"s24s")) | 251 | mode = TASK_STATS_VECTOR_DEBUG; |
| 252 | mode = TASK_STATS_SLASH24S; | 252 | else if( !byte_diff(data,4,"torr")) |
| 253 | else if( !byte_diff(data,4,"tpbs")) | 253 | mode = TASK_STATS_TORRENTS; |
| 254 | mode = TASK_STATS_TPB; | 254 | else if( !byte_diff(data,4,"fscr")) |
| 255 | else if( !byte_diff(data,4,"herr")) | 255 | mode = TASK_STATS_FULLSCRAPE; |
| 256 | mode = TASK_STATS_HTTPERRORS; | 256 | else if( !byte_diff(data,4,"s24s")) |
| 257 | else if( !byte_diff(data,4,"startstop")) | 257 | mode = TASK_STATS_SLASH24S; |
| 258 | mode = TASK_STATS_STARTSTOP; | 258 | else if( !byte_diff(data,4,"tpbs")) |
| 259 | else if( !byte_diff(data,4,"toraddrem")) | 259 | mode = TASK_STATS_TPB; |
| 260 | mode = TASK_STATS_TORADDREM; | 260 | else if( !byte_diff(data,4,"herr")) |
| 261 | else if( !byte_diff(data,4,"vers")) | 261 | mode = TASK_STATS_HTTPERRORS; |
| 262 | mode = TASK_STATS_VERSION; | 262 | else |
| 263 | else if( !byte_diff(data,4,"busy")) | 263 | HTTPERROR_400_PARAM; |
| 264 | mode = TASK_STATS_BUSY_NETWORKS; | 264 | break; |
| 265 | else if( !byte_diff(data,4,"dmem")) | 265 | case 5: |
| 266 | mode = TASK_STATS_MEMORY; | 266 | if( !byte_diff(data,5,"top10")) |
| 267 | else if( !byte_diff(data,4,"vdeb")) | 267 | mode = TASK_STATS_TOP10; |
| 268 | mode = TASK_STATS_VECTOR_DEBUG; | 268 | else |
| 269 | else | 269 | HTTPERROR_400_PARAM; |
| 270 | HTTPERROR_400_PARAM; | 270 | break; |
| 271 | break; | 271 | case 7: |
| 272 | if( !byte_diff(data,7,"version")) | ||
| 273 | mode = TASK_STATS_VERSION; | ||
| 274 | else | ||
| 275 | HTTPERROR_400_PARAM; | ||
| 276 | break; | ||
| 277 | case 9: | ||
| 278 | if( !byte_diff(data,9,"startstop")) | ||
| 279 | mode = TASK_STATS_STARTSTOP; | ||
| 280 | else if( !byte_diff(data,9,"toraddrem")) | ||
| 281 | mode = TASK_STATS_TORADDREM; | ||
| 282 | else | ||
| 283 | HTTPERROR_400_PARAM; | ||
| 284 | break; | ||
| 285 | } | ||
| 272 | case 6: | 286 | case 6: |
| 273 | if( byte_diff(data,6,"format")) { | 287 | if( byte_diff(data,6,"format")) { |
| 274 | scan_urlencoded_skipvalue( &c ); | 288 | scan_urlencoded_skipvalue( &c ); |
