= $timeout ) { $canconnect = false; echo 'socket_connect() failed.' . PHP_EOL . ' Reason: (' . $socket_last_error . ') ' . socket_strerror( $socket_last_error ) . PHP_EOL; break; } sleep( 1 ); continue; } $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 mysql_db_query( MYSQL_DATABASE, '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 ) . '\' ;' ); echo 'OK'; } } db_disconnect( DB_LINK ); ?>