1
0
Эх сурвалжийг харах

TS3 getting query port bug fix

Fixed a bug where, if the user was creating a new virtual server for ts3 using a port below of the main server port, the query port was being calculated incorrectly.
DieFeM 8 жил өмнө
parent
commit
11839733d5

+ 8 - 2
protocol/TeamSpeak3/TS3Monitor.php

@@ -33,8 +33,14 @@ if(isset($server_home['control_password']) && $server_home['control_password'] !
 			$cfg["user"] = "serveradmin";
 			$cfg["pass"] = $server_home['control_password'];
 			$cfg["voice"] = $server_home['port'];
-			$ts3Ports = $db->getHomeIpPorts($server_home['home_id']);
-			$cfg["query"] = $ts3Ports[0]['port'] + 24;
+			$cfg["query"] = 10011;
+			require_once('includes/lib_remote.php');
+			$remote = new OGPRemoteLibrary($server_home['agent_ip'], $server_home['agent_port'], $server_home['encryption_key'], $server_home['timeout']);
+			foreach($db->getHomeIpPorts($server_home['home_id']) as $ts3Port)
+			{
+				if($remote->rfile_exists( "startups/".$ts3Port['ip']."-".$ts3Port['port'] ) === 1)
+					$cfg["query"] = $ts3Port['port'] + 24;
+			}
 			if ( $server_home['use_nat'] == 1 )
 				$cfg["host"] = $server_home['agent_ip'];
 			else

+ 6 - 2
protocol/TeamSpeak3/functions.php

@@ -28,8 +28,12 @@ require_once("protocol/TeamSpeak3/TeamSpeak3.php");
 $cfg["user"] = "serveradmin";
 $cfg["pass"] = $server_home['control_password'];
 $cfg["voice"] = $server_home['port'];
-$ts3Ports = $db->getHomeIpPorts($server_home['home_id']);
-$cfg["query"] = $ts3Ports[0]['port'] + 24;
+$cfg["query"] = 10011;
+foreach($db->getHomeIpPorts($server_home['home_id']) as $ts3Port)
+{
+	if($remote->rfile_exists( "startups/".$ts3Port['ip']."-".$ts3Port['port'] ) === 1)
+		$cfg["query"] = $ts3Port['port'] + 24;
+}
 
 if ( $server_home['use_nat'] == 1 )
 	$cfg["host"] = $server_home['agent_ip'];