Index: includes/announce_core.php =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/bittorrent/includes/announce_core.php,v retrieving revision 1.7.2.2 diff -u -r1.7.2.2 announce_core.php --- includes/announce_core.php 27 Jun 2009 16:46:59 -0000 1.7.2.2 +++ includes/announce_core.php 2 Jul 2009 21:43:34 -0000 @@ -64,17 +64,21 @@ $_optional_keys[] = 'passkey'; } +//$params = $_GET; +// Temporary workaround for http://drupal.org/node/508606 (this is the problem of some clients) +parse_str(str_replace('?', '&', $_SERVER['QUERY_STRING']), $params); + // Check for missing keys in the querystring foreach( $_required_keys as $key ) - if( !array_key_exists($key, $_GET) ) + if( !array_key_exists($key, $params) ) bt_error('Missing Key: '. $key); else - $request[$key] = strip_magic($_GET[$key]); + $request[$key] = strip_magic($params[$key]); // Check for optional keys in the querystring foreach( $_optional_keys as $key ) - if( array_key_exists($key, $_GET) ) - $request[$key] = strip_magic($_GET[$key]); + if( array_key_exists($key, $params) ) + $request[$key] = strip_magic($params[$key]); // For $request structure see http://wiki.theory.org/BitTorrentSpecification#Tracker_Request_Parameters @@ -329,7 +333,7 @@ $file = field_file_load($fid); $torrent_data = bdecode_file($file['filepath']); $announce_tier_list = torrent_get_announce_tier_list($torrent_data); -$remote_request = $_GET; +$remote_request = $params; unset($remote_request['passkey']); $remote_request_query = http_build_query($remote_request, '', '&'); $remote_tracker_response_list = array();