summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-09-22 19:45:52 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2015-09-22 19:45:52 +0200
commit21b385a546b2bf5c3102de73aa2ce0b2d35c426f (patch)
treedb30b4518e4ae235f4b651a8ccfca16582d45aa1
parentb9816896abacac108d54ccdc1286b2542465287b (diff)
downloadmanager-21b385a546b2bf5c3102de73aa2ce0b2d35c426f.tar.gz
manager-21b385a546b2bf5c3102de73aa2ce0b2d35c426f.zip
Print an error and exit, if the clonk executable is not present
-rw-r--r--src/crsm.cpp27
-rw-r--r--src/crsm.hpp4
2 files changed, 24 insertions, 7 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp
index 1390692..f1c61fe 100644
--- a/src/crsm.cpp
+++ b/src/crsm.cpp
@@ -27,7 +27,11 @@ CRSM::CRSM(QObject *parent) :
args << "/fullscreen" << "/config:config" << "/lobby:60" << "/nosignup";
finish = false;
+ ok = true;
readConfig();
+ if(!ok) return;
+
+ ok = false;
connect(&managementServer, SIGNAL(newConnection()), this, SLOT(newManagementConnection()));
managementServer.listen(QHostAddress::LocalHostIPv6, Config.CRSM.ManagementPort);
@@ -372,7 +376,7 @@ void CRSM::scenarioFinished()
if(finish)
{
writeConfig();
- processManager->exit();
+ if(processManager != nullptr) processManager->exit();
if(connection != 0)
{
connection->quit(Config.IRC.QuitMessage);
@@ -727,6 +731,12 @@ void CRSM::readConfig()
{
Config.CRSM.ManagementPort = 9372;
}
+ if(!QFile(Config.Clonk.Server.Executable).exists())
+ {
+ out("ERROR: The Clonk.Server.Exectuable doesn't exist: \"" + Config.Clonk.Server.Executable + "\"\n");
+ ok = false;
+ exit();
+ }
return;
}
@@ -1534,6 +1544,15 @@ ClientInfo &CRSM::getClientInfo(const QString &pcName, int cuid, const QString &
return clients[pcName];
}
+void CRSM::exit()
+{
+ if(processManager != nullptr) processManager->closeProgFifos();
+ Config.Auto.ProcessManager.ReattachId.clear();
+ finish = true;
+ if(!Session.Hosting)
+ scenarioFinished();
+}
+
CMD_FUNCTION_IMPL(help)
bool longHelp = (args == "long");
if(args.isEmpty() || longHelp)
@@ -1983,11 +2002,7 @@ CMD_FUNCTION_IMPL(leave)
}
CMD_FUNCTION_IMPL(exit)
- processManager->closeProgFifos();
- Config.Auto.ProcessManager.ReattachId.clear();
- finish = true;
- if(!Session.Hosting)
- scenarioFinished();
+ exit();
}
CMD_FUNCTION_IMPL(exitDetach)
diff --git a/src/crsm.hpp b/src/crsm.hpp
index f1cee49..fc4ee1e 100644
--- a/src/crsm.hpp
+++ b/src/crsm.hpp
@@ -149,7 +149,7 @@ private:
QStringList ircModIOList;
QString writtenToServer;
QMap<QString, CmdFunctionRef> cmds;
- ProcessManager* processManager;
+ ProcessManager* processManager = nullptr;
QTcpServer managementServer;
QMap<QTcpSocket*, ManagementConnection> managementConnections;
@@ -200,6 +200,8 @@ private:
ClientInfo& getClientInfo(const QString& pcName, int cuid, const QString& user);
+ void exit();
+
CMD_FUNCTION(help);
CMD_FUNCTION(passToClonk);
CMD_FUNCTION(admin);