ソースを参照

fix(avserver): query listed servers on the Steam query port (#5176)

Avorion answers Steam A2S queries on its Steam query port when the server
is listed. monitor now queries it with protocol-valve on queryport 27020,
passed with --steam-query-port, and steamport 27021 with
--steam-master-port. Unlisted servers (isListed=false in server.ini) keep
session-only monitoring so they are not restarted by failed queries.
details shows the game TCP port and drops the misleading Steamworks P2P
row.
Daniel Gibbs 2 日 前
親
コミット
c7ad129360

+ 7 - 3
lgsm/config-default/config-lgsm/avserver/_default.cfg

@@ -8,8 +8,12 @@
 
 #### Game Server Settings ####
 
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+queryport="27020"
+steamport="27021"
+
 ## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="--galaxy-name ${selfname} --ip ${ip} --datapath ${avdatapath}"
+startparameters="--galaxy-name ${selfname} --ip ${ip} --datapath ${avdatapath} --steam-query-port ${queryport} --steam-master-port ${steamport}"
 
 ## Extra Parameters | https://docs.linuxgsm.com/configuration/start-parameters#extra-parameters
 # Added to the end of startparameters.
@@ -162,8 +166,8 @@ stopmode="10"
 # 3: gamedig
 # 4: gsquery
 # 5: tcp
-querymode="1"
-querytype=""
+querymode="2"
+querytype="protocol-valve"
 
 ## Console type
 consoleverbose="yes"

+ 6 - 4
lgsm/modules/info_game.sh

@@ -339,6 +339,7 @@ fn_info_game_av() {
 		fn_info_game_ini "rconport" "rconPort"
 		fn_info_game_ini "servername" "name"
 		fn_info_game_ini "serverpassword" "password"
+		fn_info_game_ini "public" "isListed"
 		fn_info_game_ini "rconpassword" "rconPassword"
 		if [ -n "${rconpassword}" ]; then
 			rconenabled="true"
@@ -350,12 +351,13 @@ fn_info_game_av() {
 	rconenabled="${rconenabled:-"false"}"
 	rconpassword="${rconpassword:-"NOT SET"}"
 	rconport="${rconport:-"0"}"
-	# queryport doesn't respond to any queries, using session only.
-	queryport=""$((port + 3))""
+	if [ "${public,,}" != "true" ]; then
+		querymode="1"
+	fi
+	queryport="${queryport:-"27020"}"
 	servername="${servername:-"NOT SET"}"
 	serverpassword="${serverpassword:-"NOT SET"}"
-	steamport="$((port + 21))"
-	steamworksport="$((port + 20))"
+	steamport="${steamport:-"27021"}"
 }
 
 # Config Type: ini unknown (Source?)

+ 1 - 1
lgsm/modules/info_messages.sh

@@ -919,9 +919,9 @@ fn_info_messages_av() {
 	{
 		fn_port "header"
 		fn_port "Game" port udp
+		fn_port "Game" port tcp
 		fn_port "Query" queryport udp
 		fn_port "Steam" steamport udp
-		fn_port "Steamworks P2P" steamworksport udp
 		fn_port "RCON" rconport tcp
 	} | column -s $'\t' -t
 }