License: running server keeps running until the next restart
The configurable LicenseGraceHours setting is gone. If the master is down or rejects the key, a running server now only warns and keeps running until the next restart; a (re)start still works up to 72 h after the last confirmation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+5
-9
@@ -486,7 +486,7 @@ async Task PanelTests()
|
||||
using (var da = new System.IO.Compression.ZipArchive(new MemoryStream(downZip)))
|
||||
Check(down.IsSuccessStatusCode && da.GetEntry("defaultES2File.txt") != null, "The current save can be downloaded as ZIP");
|
||||
|
||||
// Lizenz: Master fällt aus -> der Server läuft weiter, erst nach der Kulanzzeit wird er gestoppt
|
||||
// Lizenz: Master fällt aus -> der laufende Server läuft bis zum nächsten Neustart weiter
|
||||
LicenseCache.Save(dir, "test", "Tester", "Test", DateTime.UtcNow.AddHours(-5));
|
||||
var cachedLicense = LicenseCache.Load(dir, "test");
|
||||
Check(cachedLicense != null && cachedLicense.Owner == "Tester" && LicenseCache.Load(dir, "other-key") == null
|
||||
@@ -494,14 +494,10 @@ async Task PanelTests()
|
||||
"The last license check is remembered (only a hash of the key)");
|
||||
Srv().LicenseConfirmedUtc = DateTime.UtcNow.AddHours(-10); // innerhalb der 72 h: läuft weiter
|
||||
await Task.Delay(500);
|
||||
Check(host.State == HostState.Running, "Server keeps running while the license is unconfirmed but within the grace period");
|
||||
Srv().LicenseConfirmedUtc = DateTime.UtcNow.AddHours(-100); // Kulanzzeit abgelaufen
|
||||
await WaitForState(HostState.Error);
|
||||
Check(host.State == HostState.Error && (host.LastError ?? "").Contains("license"), "After the grace period the game server stops: " + host.LastError);
|
||||
Check((await Call(owner, "GET", "api/session")).status == 200, "The panel stays reachable after the license stop");
|
||||
Check((await Call(owner, "POST", "api/server/start")).status == 200, "It can be started again");
|
||||
await WaitForState(HostState.Running);
|
||||
Check(host.State == HostState.Running, "Running again after the start");
|
||||
Check(host.State == HostState.Running, "Server keeps running while the license is unconfirmed");
|
||||
Srv().LicenseConfirmedUtc = DateTime.UtcNow.AddHours(-100); // länger als die 72 h für einen Start
|
||||
await Task.Delay(1500);
|
||||
Check(host.State == HostState.Running, "A running server is never stopped by the license check - it runs until the next restart");
|
||||
|
||||
// Panel neu starten: eigener Port, danach wieder zurück auf den Spiel-Port - angemeldet bleiben
|
||||
Check((await Call(owner, "POST", "api/config", new { panelPort = 17791 })).status == 200, "Panel port can be changed");
|
||||
|
||||
Reference in New Issue
Block a user