koraktor / steam-condenser

A multi-language library for querying the Steam Community, Source, GoldSrc servers and Steam master servers
https://koraktor.de/steam-condenser
Other
359 stars 66 forks source link

Issue #95

Closed semprom closed 13 years ago

semprom commented 13 years ago

Hello. I use this code to get all servers, get the server info and insert it into a database.

<?php
// изтегляме сървърите от мастър листа
$master = new MasterServer(MasterServer::SOURCE_MASTER_SERVER);
$master = $master->getServers();
// започваме да бройм до кой сървър сме стигнали
$serv = "0";
while ($master) {
      // добавяме още един сървър
    $serv++;
    // array със IP и порта на сървъра
    $servers = $master[$serv];
    // дали сървъра е вече в базата данни
    $query1 = mysql_query("SELECT * FROM hlclub_community.HLClub_serversDb WHERE serverIP = '".$servers[0]."'");
    if (mysql_num_rows($query1) == "0") {
        // вземаме информацията за този сървър
        $serverIp = new InetAddress($servers[0]);
        $server = new SourceServer($serverIp, $servers[1]);
        $i = $server->getServerInfo();
        // проверка за gameDir
        if (empty($i['mapName']) or empty($i['serverName']) or empty($i['gameDir']) or empty($i['playerNumber']) or empty($i['maxPlayers']) or empty($i['secureServer']) or empty($i['secureServer']) or empty($i['serverPort']) or empty($i['passwordProtected'])) {
            trigger_error("The game is not supported.");
        } else {
            // списък с игри който ни трябват
            $games = array("cstrike", "tf", "left4dead", "left4dead2", "valve", "hl2mp");
            // проверяваме дали играта е такава която ни трябва
            if (in_array($i['gameDir'],$games)) {
                // всичко е наред и вкарваме в базата данни
                mysql_query("INSERT INTO hlclub_community.HLClub_serversDb (`mapName`, `serverName`, `gameDir`, `playerNumber`, `maxPlayers`, `secureServer`, `serverPort`, `passwordProtected`, `serverIP`) VALUES ('".$i['mapName']."', '".$i['serverName']."', '".$i['gameDir']."', '".$i['playerNumber']."', '".$i['maxPlayers']."', '".$i['secureServer']."', '".$i['serverPort']."', '".$i['passwordProtected']."', '".$servers[0]."')");
                trigger_error("Server added into database.");
            } else {
                trigger_error("The game is not supported by HLClub.");
            }
        }
    } else {
        trigger_error("Server already in the database. #".$serv);
    }
}
?>

But at one point i get error about BufferUnderflowException. Can anyone help?

Thanks.

koraktor commented 13 years ago

Where does that exception occur? When querying the master server or when getting the server info?

If it happens when getting the server info: What server is it querying when the exception occurs? TF2, L4D, etc.?

semprom commented 13 years ago

When getting server info. I query only source servers. I think it get the error when the server is Source TV.

koraktor commented 13 years ago

Do you have an example server?

koraktor commented 13 years ago

@semprom: Do you have any additional information on this problem? Does it still occur with the newest code from master?

koraktor commented 13 years ago

Obviously there's no need / interest to follow this issue.

Please reopen it if you still encounter this problem.