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

Merge pull request #970 from Nordsoft91/srv-healthcheck

Add simple server healthcheck
Andrii Danylchenko 3 жил өмнө
parent
commit
1c62f9db1a

+ 15 - 0
client/CServerHandler.cpp

@@ -17,6 +17,7 @@
 
 #include "lobby/CSelectionBase.h"
 #include "lobby/CLobbyScreen.h"
+#include "windows/InfoWindows.h"
 
 #include "mainmenu/CMainMenu.h"
 
@@ -161,6 +162,20 @@ void CServerHandler::startLocalServerAndConnect()
 		threadRunLocalServer->join();
 
 	th->update();
+	
+	auto errorMsg = CGI->generaltexth->localizedTexts["server"]["errors"]["existingProcess"].String();
+	try
+	{
+		CConnection testConnection(settings["server"]["server"].String(), getDefaultPort(), NAME, uuid);
+		logNetwork->error("Port is busy, check if another instance of vcmiserver is working");
+		CInfoWindow::showInfoDialog(errorMsg, {});
+		return;
+	}
+	catch(...)
+	{
+		//no connection means that port is not busy and we can start local server
+	}
+	
 #ifdef VCMI_ANDROID
 	{
 		CAndroidVMHelper envHelper;

+ 19 - 12
config/translate.json

@@ -27,6 +27,13 @@
 		"spellUnknownProblem": "Unknown problem with this spell, no more information available.",
 		"playerAttacked" : "Player has been attacked: %s"
 	},
+	"server" :
+	{
+		"errors" :
+		{
+			"existingProcess" : "Another vcmiserver process is running, please terminate it first"
+		}
+	},
 	"systemOptions" :
 	{
 		"fullscreenButton" :
@@ -67,18 +74,18 @@
 		"allOf"  :  "All of the following:",
 		"noneOf" : "None of the following:"
 	},
-  "heroWindow": 
-  {
-    "openCommander": 
-    {
-      "label": "Open commander window",
-      "help": "Displays information about commander of this hero"
-    }
-  },
-  "commanderWindow": 
-  {
-    "artifactMessage": "Do you want to give this artifact back to hero?"
-  },
+	"heroWindow" :
+	{
+		"openCommander" :
+		{
+			"label" : "Open commander window",
+			"help" : "Displays information about commander of this hero"
+		}
+	},
+	"commanderWindow":
+	{
+		"artifactMessage": "Do you want to give this artifact back to hero?"
+	},
 	"creatureWindow" :
 	{
 		"showBonuses" :