* add listing of recent servers - thanks to cygal
This commit is contained in:
parent
6f964d0330
commit
ed0c118fb7
|
@ -83,6 +83,7 @@
|
|||
'externalServerPort=\''. mysql_real_escape_string( $service_port ) . '\', ' .
|
||||
'lasttime=' . 'now()' . ' ' .
|
||||
'where ip=\'' . mysql_real_escape_string( $remote_ip ) . '\' && externalServerPort=\'' . mysql_real_escape_string( $service_port ) . '\';' );
|
||||
updateServer($remote_ip, $service_port, $serverTitle, $connectedClients, $networkSlots);
|
||||
echo 'OK';
|
||||
}
|
||||
else // this game server is not listed in the database, yet
|
||||
|
@ -179,6 +180,7 @@
|
|||
'externalServerPort=\''. mysql_real_escape_string( $service_port ) . '\'
|
||||
;' );
|
||||
echo 'OK';
|
||||
addLatestServer($remote_ip, $service_port, $serverTitle, $connectedClients, $networkSlots);
|
||||
}
|
||||
}
|
||||
db_disconnect( DB_LINK );
|
||||
|
|
|
@ -10,4 +10,6 @@
|
|||
// http://php.net/manual/function.mysql-pconnect.php
|
||||
// http://php.net/manual/features.persistent-connections.php
|
||||
define( 'MYSQL_LINK_PERSIST', false );
|
||||
// How many recently seen servers to store
|
||||
define( 'MAX_RECENT_SERVERS', 5 );
|
||||
?>
|
||||
|
|
|
@ -57,4 +57,30 @@
|
|||
return mysql_db_query( $mysql_database, 'DELETE FROM glestserver WHERE lasttime<DATE_add(NOW(), INTERVAL -1 minute);' );
|
||||
//return mysql_db_query( $mysql_database, 'UPDATE glestserver SET status=\'???\' WHERE lasttime<DATE_add(NOW(), INTERVAL -2 minute);' );
|
||||
}
|
||||
|
||||
function addLatestServer($remote_ip, $service_port, $serverTitle, $connectedClients, $networkSlots )
|
||||
{
|
||||
// insert the new server
|
||||
$server = "$remote_ip:$service_port";
|
||||
$players = "$connectedClients/$networkSlots";
|
||||
mysql_db_query( MYSQL_DATABASE, "INSERT INTO recent_servers (name, server, players) VALUES('$serverTitle', '$server', '$players')");
|
||||
|
||||
// make sure there are not too much servers
|
||||
$count_query = mysql_fetch_assoc(mysql_db_query( MYSQL_DATABASE, "SELECT COUNT(*) as count FROM recent_servers"));
|
||||
$count = (int) $count_query['count'];
|
||||
$over = $count - MAX_RECENT_SERVERS;
|
||||
mysql_db_query( MYSQL_DATABASE, "DELETE FROM recent_servers ORDER BY id LIMIT $over");
|
||||
}
|
||||
|
||||
function updateServer($remote_ip, $service_port, $serverTitle, $connectedClients, $networkSlots ) {
|
||||
// find the id of the server to update
|
||||
$server = "$remote_ip:$service_port";
|
||||
$players = "$connectedClients/$networkSlots";
|
||||
$find_query = mysql_fetch_assoc(mysql_db_query( MYSQL_DATABASE, "SELECT id FROM recent_servers WHERE server ='$server' ORDER BY id desc LIMIT 1"));
|
||||
$id = (int) $find_query['id'];
|
||||
|
||||
// update it.
|
||||
mysql_db_query( MYSQL_DATABASE, "UPDATE recent_servers SET name='$serverTitle', players='$players' WHERE id=$id LIMIT 1");
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
define( 'INCLUSION_PERMITTED', true );
|
||||
require_once( 'config.php' );
|
||||
require_once( 'functions.php' );
|
||||
|
||||
$link = db_connect();
|
||||
mysql_select_db(MYSQL_DATABASE);
|
||||
$recents_query = mysql_query('SELECT name, players FROM recent_servers' );
|
||||
echo "<table>";
|
||||
while($recent_server = mysql_fetch_assoc($recents_query)) {
|
||||
echo "<tr><td>{$recent_server['name']}</td><td>{$recent_server['players']}</td></tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
|
||||
db_disconnect($link);
|
||||
?>
|
Loading…
Reference in New Issue