Exemplo n.º 1
0
 * Sie sollten eine Kopie der GNU General Public License zusammen mit diesem
 * Programm erhalten haben. Wenn nicht, siehe <http://www.gnu.org/licenses/>.
 */
if (!defined('AJAXINCLUDED')) {
    die('Do not access directly!');
}
if (!isset($resellerLockupID)) {
    $resellerLockupID = $reseller_id;
}
$array = array('lastLog' => 0, 'log' => '');
$query = $sql->prepare("SELECT r.`ip` AS `ftp_ip`,r.`ftpport`,u.`cname`,g.`id`,g.`newlayout`,g.`rootID`,g.`serverip`,g.`port`,g.`protected`,AES_DECRYPT(g.`ftppassword`,?) AS `dftppass`,AES_DECRYPT(g.`ppassword`,?) AS `decryptedftppass`,s.`servertemplate`,t.`binarydir`,t.`shorten` FROM `gsswitch` AS g INNER JOIN `userdata` AS u ON u.`id`=g.`userid` INNER JOIN `rserverdata` AS r ON r.`id`=g.`rootID` INNER JOIN `serverlist` AS s ON g.`serverid`=s.`id` INNER JOIN `servertypes` AS t ON s.`servertype`=t.`id` WHERE g.`id`=? AND g.`userid`=? AND g.`resellerid`=? LIMIT 1");
$query->execute(array($aeskey, $aeskey, $ui->id('id', 10, 'get'), $user_id, $resellerLockupID));
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
    if ($ui->escaped('cmd', 'post')) {
        $appServer = new AppServer($row['rootID']);
        $appServer->getAppServerDetails($ui->id('id', 10, 'get'));
        $appServer->shellCommand($ui->escaped('cmd', 'post'));
        $appServer->execute();
    } else {
        $shorten = $row['shorten'];
        $ftppass = $row['dftppass'];
        $username = $row['newlayout'] == 'Y' ? $row['cname'] . '-' . $row['id'] : $row['cname'];
        if ($row['protected'] == 'N' and $row['servertemplate'] > 1) {
            $shorten .= '-' . $row['servertemplate'];
            $pserver = 'server/';
        } else {
            if ($row['protected'] == 'Y') {
                $username .= '-p';
                $ftppass = $row['decryptedftppass'];
                $pserver = '';
            } else {
Exemplo n.º 2
0
$query2 = $sql->prepare("SELECT * FROM `jobs` WHERE (`status` IS NULL OR `status`='1') AND `type`='gs' AND `hostID`=?");
$query3 = $sql->prepare("SELECT `serverip`,`port`,`pallowed` FROM `gsswitch` WHERE `id`=? LIMIT 1");
$query4 = $sql->prepare("DELETE FROM `gsswitch` WHERE `id`=? LIMIT 1");
$query5 = $sql->prepare("UPDATE `jobs` SET `status`='3' WHERE `jobID`=? LIMIT 1");
$query6 = $sql->prepare("SELECT t.`shorten` FROM `serverlist` AS s INNER JOIN `servertypes` AS t ON t.`id`=s.`servertype` WHERE s.`switchID`=?");
$query7 = $sql->prepare("UPDATE `gsswitch` SET `serverip`=?,`port`=? WHERE `id`=? LIMIT 1");
$query8 = $sql->prepare("UPDATE `gsswitch` SET `jobPending`='N' WHERE `id`=? LIMIT 1");
$query9 = $sql->prepare("UPDATE `jobs` SET `status`='2' WHERE `jobID`=? LIMIT 1");
$query->execute();
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
    // at web part set within settings.php; here in the job needs to be set on a root by root case
    $resellerLockupID = $row['resellerID'];
    $appServer = new AppServer($row['hostID']);
    $query2->execute(array($row['hostID']));
    while ($row2 = $query2->fetch(PDO::FETCH_ASSOC)) {
        $appServer->getAppServerDetails($row2['affectedID']);
        $extraData = @json_decode($row2['extraData']);
        $query3->execute(array($row2['affectedID']));
        while ($row3 = $query3->fetch(PDO::FETCH_ASSOC)) {
            $gsIP = $row3['serverip'];
            $port = $row3['port'];
            $protectedAllowed = $row3['pallowed'];
        }
        if ($query3->rowCount() > 0) {
            if ($row2['action'] == 'dl') {
                $appServer->stopAppHard();
                $appServer->userCud('del', 'both');
                $query4->execute(array($row2['affectedID']));
                customColumns('G', $row2['affectedID'], 'del');
                $query5->execute(array($row2['jobID']));
                $command = $gsprache->del . ' gsswitchID: ' . $row2['affectedID'] . ' name:' . $row2['name'] . ' gsswitchID:' . $row2['affectedID'];
Exemplo n.º 3
0
 $query3 = $sql->prepare("SELECT r.*,s.`id` AS `server_id` FROM `gserver_restarts` AS r INNER JOIN `servertypes` AS t ON t.`shorten`=r.`gsswitch` AND t.`resellerid`=r.`resellerid` INNER JOIN `serverlist` AS s ON s.`servertype`=t.`id` AND s.`switchID`=r.`switchID` WHERE r.`switchID`=? AND r.`restarttime`=? LIMIT 1");
 $query4 = $sql->prepare("UPDATE `gsswitch` SET `serverid`=? WHERE `id`=? AND `resellerid`=? LIMIT 1");
 $query5 = $sql->prepare("UPDATE `serverlist` SET `anticheat`=?,`map`=?,`mapGroup`=?,`servertemplate`=? WHERE `id`=? AND `resellerid`=? LIMIT 1");
 $query6 = $sql->prepare("UPDATE `gsswitch` SET `ppassword`=AES_ENCRYPT(?,?) WHERE `id`=? LIMIT 1");
 $query = $sql->prepare("SELECT `id`,`resellerid` FROM `rserverdata` WHERE `active`='Y'");
 $query->execute();
 while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
     $resellerLockupID = $row['resellerid'];
     $appServer = new AppServer($row['id']);
     $query2->execute(array($aeskey, $row['id']));
     while ($row2 = $query2->fetch(PDO::FETCH_ASSOC)) {
         $query3->execute(array($row2['id'], $currenttime));
         while ($row3 = $query3->fetch(PDO::FETCH_ASSOC)) {
             $query4->execute(array($row3['server_id'], $row3['switchID'], $resellerLockupID));
             $query5->execute(array($row3['anticheat'], $row3['map'], $row3['mapGroup'], $row3['template'], $row3['server_id'], $resellerLockupID));
             $appServer->getAppServerDetails($row3['switchID']);
             if ($row3['restart'] == 'N' and $row3['worldsafe'] == 'Y') {
                 $appServer->mcWorldSave();
                 echo 'MC worldsave: ' . $row2['server'] . "\r\n";
             }
             if ($row3['restart'] == 'N' and $row3['upload'] == 'Y') {
                 $appServer->demoUpload();
                 echo 'Demo upload for: ' . $row2['server'] . "\r\n";
             }
             if ($row3['restart'] == 'Y') {
                 if ($row3['protected'] == 'Y' and $row2['protected'] == 'N') {
                     $appServer->stopAppHard();
                     $query6->execute(array(passwordgenerate(20), $aeskey, $row3['switchID']));
                     $appServer->getAppServerDetails($row3['switchID']);
                     $appServer->removeApp($row3['template']);
                     $appServer->addApp($row3['template']);
Exemplo n.º 4
0
     $updated = false;
 }
 $ftppass = $ui->password('ftppass', 100, 'post');
 if ($ftpAccess == 'Y') {
     $query = $sql->prepare("UPDATE `gsswitch` SET `serverid`=?,`ftppassword`=AES_ENCRYPT(?,?) WHERE `id`=? AND `resellerid`=? LIMIT 1");
     $query->execute(array($switchID, $ftppass, $aeskey, $id, $resellerLockupID));
     $updated = $query->rowCount() > 0 ? true : $updated;
     if (isset($oldID, $switchID, $oldProtected) and $oldID != $switchID and $oldProtected == 'Y') {
         $query = $sql->prepare("UPDATE `gsswitch` SET `protected`='N' WHERE `id`=? AND `resellerid`=? LIMIT 1");
         $query->execute(array($id, $resellerLockupID));
         $updated = $query->rowCount() > 0 ? true : $updated;
     }
 }
 if ($updated) {
     $appServer = new AppServer($rootID);
     $appServer->getAppServerDetails($id);
     if (isset($oldPass, $ftppass) and $ftppass != $oldPass) {
         $appServer->userCud('add');
     }
     if (isset($oldID, $switchID, $oldServerTemplate, $serverTemplate) and ($oldID != $switchID or $oldServerTemplate != $serverTemplate)) {
         $appServer->startApp();
     }
     $loguseraction = '%mod% %gserver% ' . $server;
     $insertlog->execute();
     $template_file = $spracheResponse->table_add;
     $appServer->execute();
     if (isset($dbConnect['debug']) and $dbConnect['debug'] == 1) {
         $template_file .= '<br><pre>' . implode("\r\n", $appServer->debug()) . '</pre>';
     }
 } else {
     $template_file = $spracheResponse->error_table;
Exemplo n.º 5
0
         $query = $sql->prepare("SELECT `id`,`serverip`,`port` FROM `gsswitch` WHERE `rootID`=? AND `resellerid`=?");
         $query->execute(array($id, $resellerLockupID));
     }
     while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
         $table[$row['id']] = array('ip' => $row['serverip'], 'port' => $row['port']);
     }
     $template_file = 'admin_roots_ri.tpl';
 } else {
     if ($ui->st('action', 'post') == 'ri' and $ui->id('serverID', 10, 'post')) {
         include EASYWIDIR . '/stuff/methods/class_app.php';
         $appServer = new AppServer($id);
         $query = $sql->prepare("SELECT t.`shorten` FROM `serverlist` AS s INNER JOIN `servertypes` AS t  ON t.`id`=s.`servertype` WHERE s.`switchID`=?");
         $query2 = $sql->prepare("SELECT g.`serverip`,g.`port`,t.`shorten` FROM `gsswitch` AS g INNER JOIN `serverlist` AS s ON s.`id`=g.`serverid` INNER JOIN `servertypes` AS t ON t.`id`=s.`servertype` WHERE g.`id`=? LIMIT 1");
         foreach ((array) $ui->id('serverID', 10, 'post') as $serverID) {
             $removeTemplates = array();
             $appServer->getAppServerDetails($serverID);
             $appServer->userCud('add');
             $appServer->stopAppHard();
             $query->execute(array($serverID));
             while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
                 $removeTemplates[] = $row['shorten'];
                 $removeTemplates[] = $row['shorten'] . '-2';
                 $removeTemplates[] = $row['shorten'] . '-3';
             }
             if (count($removeTemplates) > 0) {
                 $appServer->removeApp($removeTemplates);
             }
             $query2->execute(array($serverID));
             while ($row = $query2->fetch(PDO::FETCH_ASSOC)) {
                 $started[] = $row['serverip'] . ':' . $row['port'];
                 $appServer->addApp(array(), true);
Exemplo n.º 6
0
 $query->execute(array($serverid, 'g', $rcon, $password, $slots, $lendtime, $loguserip, $ftpuploadpath, $aeskey, $reseller_id));
 $query = $sql->prepare("INSERT INTO `lendstats` (`lendDate`,`serverID`,`serverType`,`lendtime`,`slots`,`resellerID`) VALUES (NOW(),?,?,?,?,?) ON DUPLICATE KEY UPDATE `resellerID`=`resellerID`");
 $query->execute(array($serverid, 'g', $lendtime, $slots, $reseller_id));
 $query = $sql->prepare("SELECT g.`id`,g.`serverip`,g.`port`,g.`rootID`,t.`description` FROM `gsswitch` g  LEFT JOIN `serverlist` s ON s.`switchID`=g.`id` LEFT JOIN `servertypes` t ON s.`servertype`=t.`id` WHERE s.`id`=? AND s.`resellerid`=? LIMIT 1");
 $query->execute(array($serverid, $reseller_id));
 while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
     $serverip = $row['serverip'];
     $port = $row['port'];
     $description = $row['description'];
     $updateID = $row['id'];
     $rootID = $row['rootID'];
 }
 $query = $insert = $sql->prepare("UPDATE `gsswitch` SET `serverid`=? WHERE `id`=? AND `resellerid`=? LIMIT 1");
 $query->execute(array($serverid, $updateID, $reseller_id));
 $appServer = new AppServer($rootID);
 $appServer->getAppServerDetails($updateID);
 $appServer->startApp();
 $appServer->execute();
 if (!isset($page_include) and $ui->id('xml', 1, 'post') == 1) {
     $xml = new DOMDocument('1.0', 'utf-8');
     $element = $xml->createElement('startserver');
     $key = $xml->createElement('status', 'started');
     $element->appendChild($key);
     $key = $xml->createElement('ip', $serverip);
     $element->appendChild($key);
     $key = $xml->createElement('port', $port);
     $element->appendChild($key);
     $key = $xml->createElement('slots', $slots);
     $element->appendChild($key);
     $key = $xml->createElement('lendtime', $lendtime);
     $element->appendChild($key);
                $error[] = $sprache->ftp_user;
                $error[] = $sprache->ftp_password;
            } else {
                if (!in_array($sprache->ftp_adresse, $error)) {
                    $error[] = $sprache->ftp_adresse;
                }
                if (!in_array($sprache->ftp_port, $error)) {
                    $error[] = $sprache->ftp_port;
                }
            }
        }
        if (count($error) == 0 and isset($rootID)) {
            $ftpConnectString = $ssl == 'N' ? 'ftp://' : 'ftps://';
            $ftpConnectString .= $ftpAddress . ':' . $ftpPort . str_replace(array('//', '///'), '/', '/' . $ftpPath);
            $appServer = new AppServer($rootID);
            $appServer->getAppServerDetails($thisID);
            $appServer->migrateToEasyWi(array('user' => $ftpUser, 'password' => $ftpPassword, 'path' => $ftpPath, 'connectString' => $ftpConnectString), $gameSwitchTemplate, $modFolder);
            $appServer->execute();
            $template_file = $sprache->import_start;
            if (isset($dbConnect['debug']) and $dbConnect['debug'] == 1) {
                $template_file .= '<br><pre>' . implode("\r\n", $appServer->debug()) . '</pre>';
            }
            $loguseraction = '%import% %gserver% ' . $address;
            $insertlog->execute();
        }
    }
}
if (!isset($template_file) and isset($customer)) {
    $template_file = 'userpanel_gserver_migration.tpl';
}
if (!isset($template_file)) {
Exemplo n.º 8
0
                     } else {
                         print "Not Stopping as database leftover: {$address}\r\n";
                     }
                 }
             }
             $query = $sql->prepare("UPDATE `gsswitch` SET `queryName`=?,`queryNumplayers`=?,`queryMaxplayers`=?,`queryMap`=?,`queryPassword`=?,`queryUpdatetime`=?,`notified`=? WHERE `id`=? LIMIT 1");
             $query->execute(array($name, $numplayers, $maxplayers, $map, $password, $logdate, $notified, $switchID));
         }
     }
     unset($gq);
     foreach ($startStopList as $resellerLockupID => $rootServer) {
         foreach ($rootServer as $rootID => $actionList) {
             $appServer = new AppServer($rootID);
             foreach ($actionList as $action => $switchIDs) {
                 foreach ($switchIDs as $switchID) {
                     $appServer->getAppServerDetails($switchID);
                     if ($action == 'start') {
                         $appServer->startApp();
                     } else {
                         $appServer->stopApp();
                     }
                 }
             }
             $appServer->execute();
             if (isset($dbConnect['debug']) and $dbConnect['debug'] == 1) {
                 print implode("\r\n", $appServer->debug()) . "\r\n";
             }
         }
     }
 }
 # Voice Server
Exemplo n.º 9
0
         $installedShorten[$row2['shorten']] = $row2['description'];
         if ($row2['id'] == $row['serverid']) {
             $runningGame = $row2['shorten'];
         }
     }
     $query3->execute(array($row['serverid']));
     while ($row3 = $query3->fetch(PDO::FETCH_ASSOC)) {
         $lendID = $row3['id'];
         $password = $row3['password'];
         $rcon = $row3['rcon'];
         $slots = $row3['slots'];
         $timeleft = round($row3['lendtime'] - (strtotime($row3['now']) - strtotime($row3['started'])) / 60);
         $time = $timeleft <= 0 ? 0 : $timeleft . '/' . $row3['lendtime'];
         if ($time == 0 or $shutDownEmpty == 'Y' and $row3['lendtime'] - $timeleft > $shutDownEmptyTime and $row['queryNumplayers'] < 1) {
             $appServer = new AppServer($row['rootID']);
             $appServer->getAppServerDetails($row['id']);
             $appServer->stopApp();
             $appServer->execute();
             $deleteQuery->execute(array($row3['id']));
             $lendID = null;
             $time = 0;
         }
         if (!isset($nextfree) or $nextfree > $timeleft) {
             $nextfree = $timeleft;
         }
     }
     $lendGameServers[] = array('id' => $lendID, 'password' => $password, 'rcon' => $rcon, 'ip' => $row['serverip'], 'port' => (int) $row['port'], 'queryName' => htmlentities($row['queryName'], ENT_QUOTES, 'UTF-8'), 'queryMap' => htmlentities($row['queryMap'], ENT_QUOTES, 'UTF-8'), 'runningGame' => $runningGame, 'games' => $installedShorten, 'slots' => (int) $slots, 'usedslots' => (int) $row['queryNumplayers'], 'timeleft' => $time);
 }
 if (!isset($nextfree)) {
     $nextfree = 0;
 }