= $timeout ) { $canconnect = false; echo 'socket_connect() failed.' . PHP_EOL . ' Reason: (' . $socket_last_error . ') ' . socket_strerror( $socket_last_error ) . PHP_EOL; break; } sleep( 1 ); continue; } // for answers on this see: http://bobobobo.wordpress.com/2008/11/09/resolving-winsock-error-10035-wsaewouldblock/ else if($socket_last_error == 10035 || $socket_last_error == 10037) { break; } $canconnect = false; echo 'socket_connect() failed.' . PHP_EOL . ' Reason: (' . $socket_last_error . ') ' . socket_strerror( $socket_last_error ) . PHP_EOL; break; } socket_set_block( $socket ) or die( 'Unable to set block on socket.' ); //echo "and now read ...."; //$buf = socket_read($socket, 161); //echo $buf ."\n"; // Make sure its a glest server connecting // // struct Data{ // int8 messageType; // NetworkString versionString; // NetworkString name; // int16 playerIndex; // int8 gameState; // }; if ( $canconnect == true ) { $data_from_server = socket_read( $socket, 1 ); } socket_close( $socket ); error_reporting( E_ALL ); if ( $canconnect == false ) { echo 'wrong router setup'; } /* else if ( $data_from_server != 1 ) // insert serious verification here { echo "invalid handshake!"; } */ else // connection to game server succeeded, protocol verification succeeded { // add this game server to the database $country = ""; if ( extension_loaded('geoip') ) { $privacyPlease = 0; if(isset($_GET["privacyPlease"])) { $privacyPlease = (int) clean_str( $_GET['privacyPlease'] ); } if($privacyPlease != 0) { $country = geoip_country_code_by_name( $remote_ip ); } } mysql_query( 'INSERT INTO glestserver SET ' . 'glestVersion=\'' . mysql_real_escape_string( $glestVersion ) . '\', ' . 'platform=\'' . mysql_real_escape_string( $platform ) . '\', ' . 'binaryCompileDate=\'' . mysql_real_escape_string( $binaryCompileDate ) . '\', ' . 'serverTitle=\'' . mysql_real_escape_string( $serverTitle ) . '\', ' . 'ip=\'' . mysql_real_escape_string( $remote_ip ) . '\', ' . 'tech=\'' . mysql_real_escape_string( $tech ) . '\', ' . 'map=\'' . mysql_real_escape_string( $map ) . '\', ' . 'tileset=\'' . mysql_real_escape_string( $tileset ) . '\', ' . 'activeSlots=\'' . mysql_real_escape_string( $activeSlots ) . '\', ' . 'networkSlots=\'' . mysql_real_escape_string( $networkSlots ) . '\', ' . 'connectedClients=\'' . mysql_real_escape_string( $connectedClients ) . '\', ' . 'externalServerPort=\''. mysql_real_escape_string( $service_port ) . '\', ' . 'country=\'' . mysql_real_escape_string( $country ) . '\', ' . 'status=\'' . mysql_real_escape_string( $status ) . '\';' ); echo 'OK'; //addLatestServer($remote_ip, $service_port, $serverTitle, $connectedClients, $networkSlots); } } db_disconnect( DB_LINK ); ?>