Skip to content

Commit

Permalink
don't add game servers that do not respond to the database
Browse files Browse the repository at this point in the history
fixes OpenRA#5
  • Loading branch information
Mailaender committed Dec 6, 2014
1 parent 344b0a6 commit dc407c0
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions ping.php
Expand Up @@ -38,7 +38,7 @@ function updatedbinfo($gameinfo) {
$query = $db->prepare('DELETE FROM clients WHERE address = :addr');
$query->bindValue(':addr', $gameinfo['address'], PDO::PARAM_STR);
$query->execute();

$clients = explode(",", $_REQUEST['clients']);
foreach ($clients as $client)
{
Expand All @@ -59,27 +59,32 @@ function updatedbinfo($gameinfo) {
if(!isset($_REQUEST[$key]))
die('field "'.$key.'" is not set');

try
try
{
$db = new PDO('sqlite:db/openra.db');

$ip = $_SERVER['REMOTE_ADDR'];
$port = $_REQUEST['port'];
$addr = $ip.':'.$port;

// don't get spammed so easily
if (!check_port($ip, $port))
die('server "'.$addr.'" does not respond');

$name = urldecode($_REQUEST['name']);
$started = '';

$version_arr = explode('@', $_REQUEST['mods']);
$game_mod = array_shift($version_arr);
$version = implode('@', $version_arr);

if ($_REQUEST['state'] == 2)
{
$query = $db->prepare('SELECT * FROM servers WHERE address = :addr');
$query->bindValue(':addr', $addr, PDO::PARAM_STR);
$query->execute();
$result = $query->fetchAll();
foreach ( $result as $row )
foreach ($result as $row)
{
if ($row['state'] == 1)
{
Expand Down Expand Up @@ -114,7 +119,7 @@ function updatedbinfo($gameinfo) {
$query->bindValue(':addr', $addr, PDO::PARAM_STR);
$query->execute();
$result = $query->fetchAll();
foreach ( $result as $row )
foreach ($result as $row)
{
if ($row['started'] == '')
break;
Expand Down Expand Up @@ -177,9 +182,6 @@ function updatedbinfo($gameinfo) {

if (isset($_REQUEST['new']))
{
if(!check_port($ip, $port))
$name = '[down]' . $name;

$games = file_get_contents("games.txt");
file_put_contents("games.txt", $games + 1);
}
Expand Down

0 comments on commit dc407c0

Please sign in to comment.