From e0a9c2a4aa4fc6b648ae20071c35797c4a103e42 Mon Sep 17 00:00:00 2001 From: erdgeist <> Date: Wed, 3 Jan 2007 05:11:48 +0000 Subject: Added option to get ip from query string + parser, fixed two bugs concerning grow/shrink of vectors. Now cleans up a torrent BEFORE trying to remove a peer -> this may remove peer already and must be done anyway. --- opentracker.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'opentracker.c') diff --git a/opentracker.c b/opentracker.c index a1f0311..680caa4 100644 --- a/opentracker.c +++ b/opentracker.c @@ -186,6 +186,17 @@ e400: break; case -1: /* error */ goto e404; +#ifdef WANT_IP_FROM_QUERY_STRING + case 2: + if(!byte_diff(data,2,"ip")) { + size_t len = scan_urlencoded_query( &c, data = c, SCAN_SEARCHPATH_VALUE ); + unsigned char ip[4]; + if( ( len <= 0 ) || scan_fixed_ip( data, len, ip ) ) goto e404; + OT_SETIP ( &peer, ip ); + } else + scan_urlencoded_query( &c, NULL, SCAN_SEARCHPATH_VALUE ); + break; +#endif case 4: if(!byte_diff(data,4,"port")) { size_t len = scan_urlencoded_query( &c, data = c, SCAN_SEARCHPATH_VALUE ); @@ -263,7 +274,7 @@ e500: httperror(h,"500 Internal Server Error","A server error has occured. Please retry later."); goto bailout; } - reply = malloc( SUCCESS_HTTP_HEADER_LENGTH + numwant*6 + 128 ); // http header + peerlist + seeder, peers and lametta 80 + n*6+81 a.t.m. + reply = malloc( SUCCESS_HTTP_HEADER_LENGTH + numwant * 6 + 128 ); // http header + peerlist + seeder, peers and lametta 80 + n*6+81 a.t.m. if( reply ) reply_size = return_peers_for_torrent( torrent, numwant, SUCCESS_HTTP_HEADER_LENGTH + reply ); if( !reply || ( reply_size <= 0 ) ) { -- cgit v1.2.3