diff --git a/assets/bin/RunTrackmaniaServer.sh b/assets/bin/RunTrackmaniaServer.sh index ab4e793..dac8c78 100644 --- a/assets/bin/RunTrackmaniaServer.sh +++ b/assets/bin/RunTrackmaniaServer.sh @@ -446,6 +446,15 @@ if [ -f "$XASECO_TS3" ] && grep -qF "if ( count(\$info['players']) > 0 ) {" "$XA echo " plugin.teamspeak3.php: count()-Pruefung entschaerft." fi +# XAseco TeamSpeak3-Plugin: Antwortet der TS3-Query-Port nicht korrekt, wirft +# tsstatus.php eine Exception, die niemand faengt -> XAseco stirbt (auch unter +# PHP 7). Wie bei den uebrigen, bereits auskommentierten throws: leer zurueck. +XASECO_TSSTATUS="/opt/tmserver/xaseco/includes/tsstatus.php" +if [ -f "$XASECO_TSSTATUS" ] && grep -qF 'if(!$isTs3) throw new Exception("Not a Teamspeak 3 server/bad query port");' "$XASECO_TSSTATUS"; then + sed -i 's|if(!\$isTs3) throw new Exception("Not a Teamspeak 3 server/bad query port");|if(!$isTs3) { $this->disconnect(); return ""; } // tmserver-docker: kein Absturz|' "$XASECO_TSSTATUS" + echo " tsstatus.php: Exception bei fehlerhaftem TS3-Query entschaerft." +fi + # AdminServ: stat() liefert bei Dateinamen mit Sonderzeichen false (AdminServ # wandelt sie vorher per utf8_encode um). @array_slice(false) war unter PHP 7 # still, unter PHP 8 ein TypeError -> "MatchSettings erstellen" brach ab. diff --git a/assets/bin/XAsecoHealthcheck.sh b/assets/bin/XAsecoHealthcheck.sh index 70aa443..cc9a04a 100644 --- a/assets/bin/XAsecoHealthcheck.sh +++ b/assets/bin/XAsecoHealthcheck.sh @@ -94,8 +94,12 @@ check_xaseco_log() { if [ ! -f "$LOG_FILE" ]; then return 0 fi - # Letzte 20 Zeilen auf fatale Fehler / Verbindungsabbrueche pruefen - LAST_LINES=$(tail -20 "$LOG_FILE" 2>/dev/null) + # Letzte 20 Zeilen auf fatale Fehler / Verbindungsabbrueche pruefen. + # Fehlschlaege externer Webdienste (Dedimania, ManiaKarma, ...) laufen ueber + # Webaccess/fsockopen und betreffen nicht die Verbindung zum TM-Server. + # Ohne Filter loeste das nicht erreichbare dedimania.net alle ~30 Minuten + # einen XAseco-Neustart aus. + LAST_LINES=$(tail -20 "$LOG_FILE" 2>/dev/null | grep -v -i "webaccess\|fsockopen\|dedimania") # Typische Fehlermeldungen bei XAseco-Verbindungsverlust if echo "$LAST_LINES" | grep -qi "connection refused\|broken pipe\|server not responding\|transport error\|socket error\|fatal error"; then return 1