Example #1
0
 function lgsl_query_live($type, $ip, $c_port, $q_port, $s_port, $request)
 {
     //---------------------------------------------------------+
     if (preg_match("/[^0-9a-z\\.\\-\\[\\]\\:]/i", $ip)) {
         exit("LGSL PROBLEM: INVALID IP OR HOSTNAME");
     }
     $lgsl_protocol_list = lgsl_protocol_list();
     if (!isset($lgsl_protocol_list[$type])) {
         exit("LGSL PROBLEM: " . ($type ? "INVALID TYPE '{$type}'" : "MISSING TYPE") . " FOR {$ip}, {$c_port}, {$q_port}, {$s_port}");
     }
     $lgsl_function = "lgsl_query_{$lgsl_protocol_list[$type]}";
     if (!function_exists($lgsl_function)) {
         exit("LGSL PROBLEM: FUNCTION DOES NOT EXIST FOR: {$type}");
     }
     if (!intval($q_port)) {
         exit("LGSL PROBLEM: INVALID QUERY PORT");
     }
     //---------------------------------------------------------+
     //  ARRAYS ARE SETUP IN ADVANCE
     $server = array("b" => array("type" => $type, "ip" => $ip, "c_port" => $c_port, "q_port" => $q_port, "s_port" => $s_port, "status" => 1), "s" => array("game" => "", "name" => "", "map" => "", "players" => 0, "playersmax" => 0, "password" => ""), "e" => array(), "p" => array(), "t" => array());
     //---------------------------------------------------------+
     //  GET DATA
     if ($lgsl_function == "lgsl_query_01") {
         $lgsl_need = "";
         $lgsl_fp = "";
         $response = call_user_func_array($lgsl_function, array(&$server, &$lgsl_need, &$lgsl_fp));
         return $server;
     }
     global $lgsl_config;
     // FEED ENABLED BY EXTERNAL CONFIG SETTING
     if (!empty($lgsl_config['feed']['method']) && !empty($lgsl_config['feed']['url'])) {
         $response = lgsl_query_feed($server, $request, $lgsl_config['feed']['method'], $lgsl_config['feed']['url']);
     } elseif ($lgsl_function == "lgsl_query_30") {
         $response = lgsl_query_direct($server, $request, $lgsl_function, "tcp");
     } else {
         $response = lgsl_query_direct($server, $request, $lgsl_function, "udp");
     }
     //---------------------------------------------------------+
     //  FORMAT RESPONSE
     if (!$response) {
         $server['b']['status'] = 0;
     } else {
         // IF NOT RETURNED USE THE TYPE AS THE GAME
         if (empty($server['s']['game'])) {
             $server['s']['game'] = $type;
         }
         // REMOVE FOLDERS FROM MAP NAMES
         if (($pos = strrpos($server['s']['map'], "/")) !== FALSE) {
             $server['s']['map'] = substr($server['s']['map'], $pos + 1);
         }
         if (($pos = strrpos($server['s']['map'], "\\")) !== FALSE) {
             $server['s']['map'] = substr($server['s']['map'], $pos + 1);
         }
         // PLAYER COUNT AND PASSWORD STATUS SHOULD BE NUMERIC
         $server['s']['players'] = intval($server['s']['players']);
         $server['s']['playersmax'] = intval($server['s']['playersmax']);
         if (strtolower($server['s']['password']) == "false") {
             $server['s']['password'] = 0;
         }
         if (strtolower($server['s']['password']) == "true") {
             $server['s']['password'] = 1;
         }
         $server['s']['password'] = intval($server['s']['password']);
         // REMOVE UN-REQUESTED AND UN-USED ARRAYS
         if (strpos($request, "p") === FALSE && !$server['p'] && $server['s']['players'] != 0) {
             unset($server['p']);
         }
         if (strpos($request, "p") === FALSE && !$server['t']) {
             unset($server['t']);
         }
         if (strpos($request, "e") === FALSE && !$server['e']) {
             unset($server['e']);
         }
         if (strpos($request, "s") === FALSE && !$server['s']['name'] && !$server['s']['map']) {
             unset($server['s']);
         }
     }
     //---------------------------------------------------------+
     return $server;
 }
Example #2
0
/*----------------------------------------------------------------------------------------------------------\
 |                                                                                                            |
 |                      [ LIVE GAME SERVER LIST ] [ © RICHARD PERRY FROM GREYCUBE.COM ]                       |
 |                                                                                                            |
 |    Released under the terms and conditions of the GNU General Public License Version 3 (http://gnu.org)    |
 |                                                                                                            |
 \-----------------------------------------------------------------------------------------------------------*/
//------------------------------------------------------------------------------------------------------------+
if (!defined("LGSL_ADMIN")) {
    exit("DIRECT ACCESS ADMIN FILE NOT ALLOWED");
}
require "lgsl_class.php";
lgsl_database();
$lgsl_type_list = lgsl_type_list();
asort($lgsl_type_list);
$lgsl_protocol_list = lgsl_protocol_list();
$id = 0;
$last_type = "source";
$zone_list = array(0, 1, 2, 3, 4, 5, 6, 7, 8);
//------------------------------------------------------------------------------------------------------------+
if (!function_exists("fsockopen") && !$lgsl_config['feed']['method']) {
    if (function_exists("curl_init") && function_exists("curl_setopt") && function_exists("curl_exec")) {
        $output = "<div style='text-align:center'><br /><br /><b>FSOCKOPEN IS DISABLED - YOU MUST ENABLE THE FEED OPTION</b><br /><br /></div>" . lgsl_help_info();
        return;
    } else {
        $output = "<div style='text-align:center'><br /><br /><b>FSOCKOPEN AND CURL ARE DISABLED - LGSL WILL NOT WORK ON THIS HOST</b><br /><br /></div>" . lgsl_help_info();
        return;
    }
}
//------------------------------------------------------------------------------------------------------------+
if ($_POST && get_magic_quotes_gpc()) {