|
@@ -302,7 +302,7 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
|
|
|
|
|
|
|
|
return $lgsl_protocol_list;
|
|
return $lgsl_protocol_list;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
|
@@ -485,7 +485,7 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
|
|
|
case "hurtworld" : $c_to_q = 10; $c_def = 12871; $q_def = 12881; $c_to_s = 0; break;
|
|
case "hurtworld" : $c_to_q = 10; $c_def = 12871; $q_def = 12881; $c_to_s = 0; break;
|
|
|
case "kingpin" : $c_to_q = -10; $c_def = 31510; $q_def = 31500; $c_to_s = 0; break;
|
|
case "kingpin" : $c_to_q = -10; $c_def = 31510; $q_def = 31500; $c_to_s = 0; break;
|
|
|
case "killingfloor" : $c_to_q = 1; $c_def = 7708; $q_def = 7709; $c_to_s = 0; break;
|
|
case "killingfloor" : $c_to_q = 1; $c_def = 7708; $q_def = 7709; $c_to_s = 0; break;
|
|
|
- case "killingfloor2" : $c_to_q = 19238; $c_def = 7777; $q_def = 27015; $c_to_s = 0; break;
|
|
|
|
|
|
|
+ case "killingfloor2" : $c_to_q = 19238; $c_def = 7777; $q_def = 27015; $c_to_s = 0; break;
|
|
|
case "lif" : $c_to_q = 2; $c_def = 28000; $q_def = 28002; $c_to_s = 0; break;
|
|
case "lif" : $c_to_q = 2; $c_def = 28000; $q_def = 28002; $c_to_s = 0; break;
|
|
|
case "modernwarfare3" : $c_to_q = -1; $c_def = 27015; $q_def = 27014; $c_to_s = 0; break;
|
|
case "modernwarfare3" : $c_to_q = -1; $c_def = 27015; $q_def = 27014; $c_to_s = 0; break;
|
|
|
case "mohaa" : $c_to_q = 97; $c_def = 12203; $q_def = 12300; $c_to_s = 0; break;
|
|
case "mohaa" : $c_to_q = 97; $c_def = 12203; $q_def = 12300; $c_to_s = 0; break;
|
|
@@ -498,7 +498,7 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
|
|
|
case "painkiller" : $c_to_q = 123; $c_def = 3455; $q_def = 3578; $c_to_s = 0; break;
|
|
case "painkiller" : $c_to_q = 123; $c_def = 3455; $q_def = 3578; $c_to_s = 0; break;
|
|
|
case "ravenshield" : $c_to_q = 1000; $c_def = 7777; $q_def = 8777; $c_to_s = 0; break;
|
|
case "ravenshield" : $c_to_q = 1000; $c_def = 7777; $q_def = 8777; $c_to_s = 0; break;
|
|
|
case "redorchestra" : $c_to_q = 1; $c_def = 7758; $q_def = 7759; $c_to_s = 0; break;
|
|
case "redorchestra" : $c_to_q = 1; $c_def = 7758; $q_def = 7759; $c_to_s = 0; break;
|
|
|
- case "redorchestra2" : $c_to_q = 19238; $c_def = 7777; $q_def = 27015; $c_to_s = 0; break;
|
|
|
|
|
|
|
+ case "redorchestra2" : $c_to_q = 19238; $c_def = 7777; $q_def = 27015; $c_to_s = 0; break;
|
|
|
case "rfactor" : $c_to_q = -100; $c_def = 34397; $q_def = 34297; $c_to_s = 0; break;
|
|
case "rfactor" : $c_to_q = -100; $c_def = 34397; $q_def = 34297; $c_to_s = 0; break;
|
|
|
case "risingstorm2" : $c_to_q = 19238; $c_def = 7777; $q_def = 27015; $c_to_s = 0; break;
|
|
case "risingstorm2" : $c_to_q = 19238; $c_def = 7777; $q_def = 27015; $c_to_s = 0; break;
|
|
|
case "serioussam" : $c_to_q = 1; $c_def = 25600; $q_def = 25601; $c_to_s = 0; break;
|
|
case "serioussam" : $c_to_q = 1; $c_def = 25600; $q_def = 25601; $c_to_s = 0; break;
|
|
@@ -582,26 +582,9 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
|
|
|
return $server;
|
|
return $server;
|
|
|
}
|
|
}
|
|
|
//------------------Open Game Panel LGSL FEED CONFIGURATION (found on web settings)-----------------------+
|
|
//------------------Open Game Panel LGSL FEED CONFIGURATION (found on web settings)-----------------------+
|
|
|
- global $settings;
|
|
|
|
|
-
|
|
|
|
|
- if( isset($_GET['m']) and $_GET['m'] == "lgsl" )
|
|
|
|
|
- $lgsl_config['feed']['method'] = 0;
|
|
|
|
|
- else
|
|
|
|
|
- $lgsl_config['feed']['method'] = $settings['feed_enable'];
|
|
|
|
|
-
|
|
|
|
|
- $lgsl_config['feed']['url'] = $settings['feed_url'];
|
|
|
|
|
|
|
+ $lgsl_config['feed']['method'] = 0;
|
|
|
//--------------------------------------------------------------------------------------------------------+
|
|
//--------------------------------------------------------------------------------------------------------+
|
|
|
- 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 (isset($settings['remote_query']) and $settings['remote_query'] == 1)
|
|
|
|
|
- {
|
|
|
|
|
- global $db;
|
|
|
|
|
- $home_info = $db->getGameHomeByIP($ip, $c_port);
|
|
|
|
|
- $response = lgsl_query_feed($server, $request, $lgsl_config['feed']['method'], $lgsl_config['feed']['url'], $home_info);
|
|
|
|
|
- }
|
|
|
|
|
- elseif ($lgsl_function == "lgsl_query_30")
|
|
|
|
|
|
|
+ if ($lgsl_function == "lgsl_query_30")
|
|
|
{
|
|
{
|
|
|
$response = lgsl_query_direct($server, $request, $lgsl_function, "tcp");
|
|
$response = lgsl_query_direct($server, $request, $lgsl_function, "tcp");
|
|
|
}
|
|
}
|
|
@@ -662,8 +645,7 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
|
|
|
$lgsl_fp = @fsockopen("{$scheme}://{$server['b']['ip']}", $server['b']['q_port'], $errno, $errstr, 1);
|
|
$lgsl_fp = @fsockopen("{$scheme}://{$server['b']['ip']}", $server['b']['q_port'], $errno, $errstr, 1);
|
|
|
|
|
|
|
|
if (!$lgsl_fp) { return FALSE; }
|
|
if (!$lgsl_fp) { return FALSE; }
|
|
|
- $lgsl_config['timeout'] = 0;
|
|
|
|
|
- $lgsl_config['timeout'] = intval($lgsl_config['timeout']);
|
|
|
|
|
|
|
+ $lgsl_config['timeout'] = 1;
|
|
|
stream_set_timeout($lgsl_fp, $lgsl_config['timeout'], $lgsl_config['timeout'] ? 0 : 500000);
|
|
stream_set_timeout($lgsl_fp, $lgsl_config['timeout'], $lgsl_config['timeout'] ? 0 : 500000);
|
|
|
stream_set_blocking($lgsl_fp, TRUE);
|
|
stream_set_blocking($lgsl_fp, TRUE);
|
|
|
//---------------------------------------------------------+
|
|
//---------------------------------------------------------+
|
|
@@ -3954,104 +3936,6 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
|
-//------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
- function lgsl_query_36(&$server, &$lgsl_need, &$lgsl_fp)
|
|
|
|
|
- {
|
|
|
|
|
- //RoR LGSL parses the log file server.log
|
|
|
|
|
- require_once('modules/gamemanager/home_handling_functions.php');
|
|
|
|
|
- require_once("modules/config_games/server_config_parser.php");
|
|
|
|
|
- require_once('includes/lib_remote.php');
|
|
|
|
|
- global $db;
|
|
|
|
|
- $ip = $server['b']['ip'];
|
|
|
|
|
- $port = $server['b']['c_port'];
|
|
|
|
|
- $home_info = $server_home = $db->getGameHomeByIP($ip, $port);
|
|
|
|
|
- $remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
|
|
|
|
- $server_xml = read_server_config(SERVER_CONFIG_LOCATION."/".$home_info['home_cfg_file']);
|
|
|
|
|
- $data = "";
|
|
|
|
|
- $home_id = sprintf('%09d', $home_info['home_id']);
|
|
|
|
|
- $screenlog = "screenlog.OGP_HOME_".$home_id;
|
|
|
|
|
- $home_log = $remote->remote_readfile($home_info['home_path'].'/'.$server_xml->exe_location.$screenlog,$data);
|
|
|
|
|
- $data = substr($data, -10000, 10000);
|
|
|
|
|
- if ( !empty($data) )
|
|
|
|
|
- {
|
|
|
|
|
- //Parser
|
|
|
|
|
- preg_match_all("(\| INFO\|(.*)\\n)siU", $data, $matches);
|
|
|
|
|
- $matches = array_reverse($matches);
|
|
|
|
|
- $rows = "";
|
|
|
|
|
- foreach ( $matches[1] as $info_row )
|
|
|
|
|
- {
|
|
|
|
|
- $rows .= $info_row;
|
|
|
|
|
- $info_row = $info_row."INFO<br>";
|
|
|
|
|
- if (preg_match_all("(servername:(.*)INFO)siU", $info_row, $info))
|
|
|
|
|
- {
|
|
|
|
|
- foreach ( $info[1] as $value )
|
|
|
|
|
- {
|
|
|
|
|
- $value = trim($value);
|
|
|
|
|
- $remote->remote_writefile($home_info['home_path'].'/servername.txt',$value);
|
|
|
|
|
- $value = str_replace('_', " ", $value);
|
|
|
|
|
- $server['s']['name'] = $value;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (preg_match_all("(terrain:(.*)INFO)siU", $info_row, $info))
|
|
|
|
|
- {
|
|
|
|
|
- foreach ( $info[1] as $value )
|
|
|
|
|
- {
|
|
|
|
|
- $value = trim($value);
|
|
|
|
|
- $remote->remote_writefile($home_info['home_path'].'/terrain.txt',$value);
|
|
|
|
|
- $server['s']['map'] = $value;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (preg_match_all("(maxclients:(.*)INFO)siU", $info_row, $info))
|
|
|
|
|
- {
|
|
|
|
|
- foreach ( $info[1] as $value )
|
|
|
|
|
- {
|
|
|
|
|
- $value = trim($value);
|
|
|
|
|
- $remote->remote_writefile($home_info['home_path'].'/maxclients.txt',$value);
|
|
|
|
|
- $server['s']['playersmax'] = $value;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(empty($server['s']['name']))
|
|
|
|
|
- {
|
|
|
|
|
- $remote->remote_readfile($home_info['home_path'].'/servername.txt',$value2);
|
|
|
|
|
- $value2 = trim($value2);
|
|
|
|
|
- $value2 = str_replace('_', " ", $value2);
|
|
|
|
|
- $server['s']['name'] = $value2;
|
|
|
|
|
- $remote->remote_readfile($home_info['home_path'].'/terrain.txt',$value2);
|
|
|
|
|
- $value2 = trim($value2);
|
|
|
|
|
- $server['s']['map'] = $value2;
|
|
|
|
|
- $remote->remote_readfile($home_info['home_path'].'/maxclients.txt',$value2);
|
|
|
|
|
- $value2 = trim($value2);
|
|
|
|
|
- $server['s']['playersmax'] = $value2;
|
|
|
|
|
- }
|
|
|
|
|
- unset($matches,$info_row);
|
|
|
|
|
- preg_match_all("(----------(.*)\|--------)siU", $rows, $matches);
|
|
|
|
|
- $matches[1] = array_reverse($matches[1]);
|
|
|
|
|
- $info_row = str_replace('-', "", $matches[1][0]);
|
|
|
|
|
- if (preg_match_all("(FO\|(.*)\|.IN)siU", $info_row, $info))
|
|
|
|
|
- {
|
|
|
|
|
- $i = 0;
|
|
|
|
|
- foreach ( $info[1] as $value )
|
|
|
|
|
- {
|
|
|
|
|
- $value = trim($value);
|
|
|
|
|
- $value = str_replace('|', "", $value);
|
|
|
|
|
- $player = explode(" ", $value);
|
|
|
|
|
- $playersort = array_reverse($player);
|
|
|
|
|
- $playersort = explode(",", $playersort[0]);
|
|
|
|
|
- $server['p'][$i]['name'] = $playersort[1];
|
|
|
|
|
- $server['p'][$i]['score'] = $playersort[0];
|
|
|
|
|
- $i++;
|
|
|
|
|
- }
|
|
|
|
|
- $server['s']['players'] = $i;
|
|
|
|
|
- }
|
|
|
|
|
- $screen_running = $remote->is_screen_running(OGP_SCREEN_TYPE_HOME,$home_info['home_id']) === 1;
|
|
|
|
|
- if($screen_running)
|
|
|
|
|
- {
|
|
|
|
|
- return TRUE;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-//------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
|
function lgsl_query_37(&$server, &$lgsl_need, &$lgsl_fp)
|
|
function lgsl_query_37(&$server, &$lgsl_need, &$lgsl_fp)
|
|
|
{
|
|
{
|
|
@@ -4089,69 +3973,6 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
|
-//------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
- function lgsl_query_38(&$server, &$lgsl_need, &$lgsl_fp)
|
|
|
|
|
- {
|
|
|
|
|
- //Virtualbox
|
|
|
|
|
- require_once('includes/lib_remote.php');
|
|
|
|
|
- global $db;
|
|
|
|
|
- $ip = $server['b']['ip'];
|
|
|
|
|
- $port = $server['b']['c_port'];
|
|
|
|
|
- $home_info = $server_home = $db->getGameHomeByIP($ip, $port);
|
|
|
|
|
- $remote = new OGPRemoteLibrary($home_info['agent_ip'],$home_info['agent_port'],$home_info['encryption_key'],$home_info['timeout']);
|
|
|
|
|
- $data = "";
|
|
|
|
|
- $data = $remote->exec("VBoxManage showvminfo \"".$home_info['home_name']."\"");
|
|
|
|
|
- if ( !empty($data) )
|
|
|
|
|
- {
|
|
|
|
|
- $settings = explode("\n", $data);
|
|
|
|
|
- $i = 0;
|
|
|
|
|
- foreach ( $settings as $setting )
|
|
|
|
|
- {
|
|
|
|
|
- $setting = trim($setting);
|
|
|
|
|
- $setting = explode(":", $setting);
|
|
|
|
|
- if($setting[0] != "" and $setting[1] != "")
|
|
|
|
|
- {
|
|
|
|
|
- if($setting[0] == "Client name")
|
|
|
|
|
- {
|
|
|
|
|
- $server['p'][$i]['name'] = $setting[0];
|
|
|
|
|
- $server['p'][$i]['score'] = $setting[1];
|
|
|
|
|
- $i++;
|
|
|
|
|
- }
|
|
|
|
|
- if($setting[0] == "User name")
|
|
|
|
|
- {
|
|
|
|
|
- $server['p'][$i]['name'] = $setting[0];
|
|
|
|
|
- $server['p'][$i]['score'] = $setting[1];
|
|
|
|
|
- $i++;
|
|
|
|
|
- }
|
|
|
|
|
- if($setting[0] == "Client IP")
|
|
|
|
|
- {
|
|
|
|
|
- $server['p'][$i]['name'] = $setting[0];
|
|
|
|
|
- $server['p'][$i]['score'] = $setting[1];
|
|
|
|
|
- $i++;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if($setting[0] == "Guest OS")
|
|
|
|
|
- {
|
|
|
|
|
- $map = trim($setting[1]);
|
|
|
|
|
- $server['s']['map'] = $map;
|
|
|
|
|
- }
|
|
|
|
|
- if($setting[0] == "Name")
|
|
|
|
|
- {
|
|
|
|
|
- $map = trim($setting[1]);
|
|
|
|
|
- $server['s']['name'] = $map;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- $server['s']['players'] = $i;
|
|
|
|
|
- $server['s']['playersmax'] = $i;
|
|
|
|
|
- }
|
|
|
|
|
- $screen_running = $remote->is_screen_running(OGP_SCREEN_TYPE_HOME,$home_info['home_id']) === 1;
|
|
|
|
|
- if($screen_running)
|
|
|
|
|
- {
|
|
|
|
|
- return TRUE;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-//------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
|
function lgsl_query_39(&$server, &$lgsl_need, &$lgsl_fp)
|
|
function lgsl_query_39(&$server, &$lgsl_need, &$lgsl_fp)
|
|
|
{
|
|
{
|
|
@@ -4220,231 +4041,6 @@ if (!function_exists('lgsl_version')) { // START OF DOUBLE LOAD PROTECTION
|
|
|
}
|
|
}
|
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
//------------------------------------------------------------------------------------------------------------+
|
|
|
- function lgsl_query_feed(&$server, $request, $lgsl_feed_method, $lgsl_feed_url, $home_info = False)
|
|
|
|
|
- {
|
|
|
|
|
- $lgsl_feed_error = 0;
|
|
|
|
|
- if(is_array($home_info) && !empty($home_info))
|
|
|
|
|
- {
|
|
|
|
|
- require_once('includes/lib_remote.php');
|
|
|
|
|
- $remote = new OGPRemoteLibrary($home_info['agent_ip'], $home_info['agent_port'], $home_info['encryption_key'], $home_info['timeout']);
|
|
|
|
|
- $http_reply = $remote->remote_query('lgsl', $server['b']['type'], $server['b']['ip'], $server['b']['c_port'], $server['b']['q_port'], $server['b']['s_port']);
|
|
|
|
|
- if($http_reply == NULL) exit("REMOTE LGSL: BAD RESPONSE");
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- $host = parse_url($lgsl_feed_url);
|
|
|
|
|
-
|
|
|
|
|
- if (empty($host['host']) || empty($host['path'])) { exit("LGSL FEED PROBLEM: INVALID URL"); }
|
|
|
|
|
-
|
|
|
|
|
- $host_query = "?type={$server['b']['type']}&ip={$server['b']['ip']}&c_port={$server['b']['c_port']}&q_port={$server['b']['q_port']}&s_port={$server['b']['s_port']}&request={$request}&version=5.8";
|
|
|
|
|
-
|
|
|
|
|
- if (function_exists("json_decode")) { $host_query .= function_exists("gzuncompress") ? "&format=4" : "&format=3"; }
|
|
|
|
|
- else { $host_query .= function_exists("gzuncompress") ? "&format=2" : "&format=1"; }
|
|
|
|
|
-
|
|
|
|
|
- $referrer = preg_replace("/(.*):\/\//i", "", $_SERVER['HTTP_HOST'])."/{$_SERVER['SCRIPT_NAME']}";
|
|
|
|
|
- $scheme = ( isset($_SERVER['HTTPS']) and get_true_boolean($_SERVER['HTTPS']) ) ? "https://" : "http://";
|
|
|
|
|
- $referrer = $scheme.str_replace("//", "/", $referrer);
|
|
|
|
|
- $referrer = empty($_SERVER['QUERY_STRING']) ? $referrer : "{$referrer}?{$_SERVER['QUERY_STRING']}";
|
|
|
|
|
- $destport = isset($host['port']) ? $host['port'] : ( $host['scheme'] == "https" ? "443" : "80" );
|
|
|
|
|
- //---------------------------------------------------------+
|
|
|
|
|
-
|
|
|
|
|
- if (function_exists('curl_init') && function_exists('curl_setopt') && function_exists('curl_exec') && $lgsl_feed_method == 1)
|
|
|
|
|
- {
|
|
|
|
|
- $lgsl_curl = curl_init();
|
|
|
|
|
-
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_HEADER, 0);
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_HTTPGET, 1);
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_TIMEOUT, 6);
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_ENCODING, "");
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_FORBID_REUSE, 1);
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_FRESH_CONNECT, 1);
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_RETURNTRANSFER, 1);
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_CONNECTTIMEOUT, 6);
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_REFERER, $referrer);
|
|
|
|
|
- if($host['scheme'] == "https")
|
|
|
|
|
- {
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_SSL_VERIFYPEER, FALSE);
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_SSL_VERIFYHOST, FALSE);
|
|
|
|
|
- }
|
|
|
|
|
- curl_setopt($lgsl_curl, CURLOPT_URL, "$host[scheme]://{$host['host']}:$destport{$host['path']}{$host_query}");
|
|
|
|
|
-
|
|
|
|
|
- $http_reply = curl_exec($lgsl_curl);
|
|
|
|
|
-
|
|
|
|
|
- if (curl_error($lgsl_curl))
|
|
|
|
|
- {
|
|
|
|
|
- $lgsl_feed_error = 1;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- curl_close($lgsl_curl);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //---------------------------------------------------------+
|
|
|
|
|
-
|
|
|
|
|
- elseif (function_exists('fsockopen'))
|
|
|
|
|
- {
|
|
|
|
|
- $ssl = $host['scheme'] == "https" ? "ssl://" : "";
|
|
|
|
|
- $lgsl_fp = @fsockopen($ssl.$host['host'], $destport, $errno, $errstr, 6);
|
|
|
|
|
-
|
|
|
|
|
- if (!$lgsl_fp)
|
|
|
|
|
- {
|
|
|
|
|
- $lgsl_feed_error = 1;
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- stream_set_timeout($lgsl_fp, 6, 0);
|
|
|
|
|
- stream_set_blocking($lgsl_fp, TRUE);
|
|
|
|
|
-
|
|
|
|
|
- $http_send = "GET {$host['path']}{$host_query} HTTP/1.0\r\n";
|
|
|
|
|
- $http_send .= "Host: {$host['host']}\r\n";
|
|
|
|
|
- $http_send .= "Referer: {$referrer}\r\n";
|
|
|
|
|
- $http_send .= "Pragma: no-cache\r\n";
|
|
|
|
|
- $http_send .= "Cache-Control: max-age=0\r\n";
|
|
|
|
|
- $http_send .= "Accept-Encoding: \r\n";
|
|
|
|
|
- $http_send .= "Accept-Language: en-us,en;q=0.5\r\n";
|
|
|
|
|
- $http_send .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
|
|
|
|
|
- $http_send .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
|
|
|
|
|
- $http_send .= "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-GB; rv:1.9.1.4) Gecko/20091028\r\n";
|
|
|
|
|
- $http_send .= "Connection: Close\r\n\r\n";
|
|
|
|
|
-
|
|
|
|
|
- fwrite($lgsl_fp, $http_send);
|
|
|
|
|
-
|
|
|
|
|
- $http_reply = "";
|
|
|
|
|
-
|
|
|
|
|
- while (!feof($lgsl_fp))
|
|
|
|
|
- {
|
|
|
|
|
- $http_chunk = fread($lgsl_fp, 4096);
|
|
|
|
|
- if ($http_chunk === "") { break; }
|
|
|
|
|
- $http_reply .= $http_chunk;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @fclose($lgsl_fp);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //---------------------------------------------------------+
|
|
|
|
|
-
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- exit("LGSL FEED PROBLEM: NO CURL OR FSOCKOPEN SUPPORT");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //---------------------------------------------------------+
|
|
|
|
|
-
|
|
|
|
|
- if (!$lgsl_feed_error)
|
|
|
|
|
- {
|
|
|
|
|
- if (preg_match("/_F([1-4])_(.*)_F([1-4])_/U", $http_reply, $match))
|
|
|
|
|
- {
|
|
|
|
|
- if ($match[1] == 4 && $match[3] == 4) { $server = json_decode(gzuncompress(base64_decode($match[2])), TRUE); }
|
|
|
|
|
- elseif ($match[1] == 3 && $match[3] == 3) { $server = json_decode( (base64_decode($match[2])), TRUE); }
|
|
|
|
|
- elseif ($match[1] == 2 && $match[3] == 2) { $server = unserialize(gzuncompress(base64_decode($match[2]))); }
|
|
|
|
|
- elseif ($match[1] == 1 && $match[3] == 1) { $server = unserialize( (base64_decode($match[2]))); }
|
|
|
|
|
- }
|
|
|
|
|
- elseif (preg_match("/_SLGSLF_(.*)_SLGSLF_/U", $http_reply, $match))
|
|
|
|
|
- {
|
|
|
|
|
- $server = unserialize($match[1]);
|
|
|
|
|
- }
|
|
|
|
|
- else
|
|
|
|
|
- {
|
|
|
|
|
- $lgsl_feed_error = 2;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (!$lgsl_feed_error && empty($server))
|
|
|
|
|
- {
|
|
|
|
|
- $lgsl_feed_error = 3;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //---------------------------------------------------------+
|
|
|
|
|
-
|
|
|
|
|
- switch($lgsl_feed_error)
|
|
|
|
|
- {
|
|
|
|
|
- case 1: // CONNECTION PROBLEM - FEED MAYBE TEMPORARLY OFFLINE
|
|
|
|
|
- $server['s']['name'] = "---";
|
|
|
|
|
- $server['s']['map'] = "---";
|
|
|
|
|
- $server['e'] = array("feed" => "Failed To Connect");
|
|
|
|
|
- $server['p'] = array();
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case 2: // NO FEED DATA - MAYBE WRONG FEED URL
|
|
|
|
|
- exit("<div style='width:100%;overflow:auto'>FEED MISSING FROM: {$host['host']}{$host['path']} RETURNED: ".htmlspecialchars($http_reply, ENT_QUOTES)." :END</div>");
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case 3: // UNABLE TO UNPACK FEED DATA - MAYBE ERRORS ON FEED
|
|
|
|
|
- exit("<div style='width:100%;overflow:auto'>FEED CORRUPTION FROM: {$host['host']}{$host['path']} RETURNED: ".htmlspecialchars($http_reply, ENT_QUOTES)." :END</div>");
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //---------------------------------------------------------+
|
|
|
|
|
-
|
|
|
|
|
- // FALSE IS SO LOCAL OFFLINE CODE TAKES OVER
|
|
|
|
|
- return $server['b']['status'] ? TRUE : FALSE;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-//------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
-//------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
-
|
|
|
|
|
- function lgsl_parse_color($string, $type)
|
|
|
|
|
- {
|
|
|
|
|
- switch($type)
|
|
|
|
|
- {
|
|
|
|
|
- case "1":
|
|
|
|
|
- $string = preg_replace("/\^x.../", "", $string);
|
|
|
|
|
- $string = preg_replace("/\^./", "", $string);
|
|
|
|
|
-
|
|
|
|
|
- $string_length = strlen($string);
|
|
|
|
|
- for ($i=0; $i<$string_length; $i++)
|
|
|
|
|
- {
|
|
|
|
|
- $char = ord($string[$i]);
|
|
|
|
|
- if ($char > 160) { $char = $char - 128; }
|
|
|
|
|
- if ($char > 126) { $char = 46; }
|
|
|
|
|
- if ($char == 16) { $char = 91; }
|
|
|
|
|
- if ($char == 17) { $char = 93; }
|
|
|
|
|
- if ($char < 32) { $char = 46; }
|
|
|
|
|
- $string[$i] = chr($char);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case "2":
|
|
|
|
|
- $string = preg_replace("/\^[\x20-\x7E]/", "", $string);
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case "doomskulltag":
|
|
|
|
|
- $string = preg_replace("/\\x1c./", "", $string);
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case "farcry":
|
|
|
|
|
- $string = preg_replace("/\\$\d/", "", $string);
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case "painkiller":
|
|
|
|
|
- $string = preg_replace("/#./", "", $string);
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case "quakeworld":
|
|
|
|
|
- $string_length = strlen($string);
|
|
|
|
|
- for ($i=0; $i<$string_length; $i++)
|
|
|
|
|
- {
|
|
|
|
|
- $char = ord($string[$i]);
|
|
|
|
|
- if ($char > 141) { $char = $char - 128; }
|
|
|
|
|
- if ($char < 32) { $char = $char + 30; }
|
|
|
|
|
- $string[$i] = chr($char);
|
|
|
|
|
- }
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case "savage":
|
|
|
|
|
- $string = preg_replace("/\^[a-z]/", "", $string);
|
|
|
|
|
- $string = preg_replace("/\^[0-9]+/", "", $string);
|
|
|
|
|
- $string = preg_replace("/lan .*\^/U", "", $string);
|
|
|
|
|
- $string = preg_replace("/con .*\^/U", "", $string);
|
|
|
|
|
- break;
|
|
|
|
|
-
|
|
|
|
|
- case "swat4":
|
|
|
|
|
- $string = preg_replace("/\[c=......\]/Usi", "", $string);
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- return $string;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-//---------------------------------------------------------+
|
|
|
|
|
|
|
|
|
|
function lgsl_time($seconds)
|
|
function lgsl_time($seconds)
|
|
|
{
|
|
{
|