mirror of
https://github.com/glest/glest-source.git
synced 2025-09-03 04:52:34 +02:00
Added new binary compatibility check
This commit is contained in:
@@ -28,11 +28,15 @@ const string mailString= "contact_game@glest.org";
|
||||
const string glestVersionString= "v3.3.5-dev";
|
||||
|
||||
string getCrashDumpFileName(){
|
||||
return "glest"+glestVersionString+".dmp";
|
||||
return "glest" + glestVersionString + ".dmp";
|
||||
}
|
||||
|
||||
string getNetworkVersionString(){
|
||||
return glestVersionString + " - " + string(__DATE__) + " - " + string(__TIME__);
|
||||
string getNetworkVersionString() {
|
||||
return glestVersionString + " built: " + string(__DATE__) + " " + string(__TIME__);
|
||||
}
|
||||
|
||||
string getNetworkPlatformFreeVersionString() {
|
||||
return glestVersionString;
|
||||
}
|
||||
|
||||
string getAboutString1(int i){
|
||||
|
@@ -1,7 +1,7 @@
|
||||
// ==============================================================
|
||||
// This file is part of Glest (www.glest.org)
|
||||
//
|
||||
// Copyright (C) 2001-2008 Marti<EFBFBD>o Figueroa
|
||||
// Copyright (C) 2001-2008 Martio Figueroa
|
||||
//
|
||||
// You can redistribute this code and/or modify it under
|
||||
// the terms of the GNU General Public License as published
|
||||
@@ -28,6 +28,7 @@ extern const string networkVersionString;
|
||||
|
||||
string getCrashDumpFileName();
|
||||
string getNetworkVersionString();
|
||||
string getNetworkPlatformFreeVersionString();
|
||||
string getAboutString1(int i);
|
||||
string getAboutString2(int i);
|
||||
string getTeammateName(int i);
|
||||
|
@@ -138,19 +138,34 @@ void ClientInterface::updateLobby()
|
||||
SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s] got NetworkMessageIntro\n",__FILE__,__FUNCTION__);
|
||||
|
||||
//check consistency
|
||||
|
||||
if(networkMessageIntro.getVersionString() != getNetworkVersionString())
|
||||
//if(1)
|
||||
{
|
||||
string sErr = "Server and client binary mismatch!\nYou have to use the exactly same binaries!\n\nServer: " +
|
||||
networkMessageIntro.getVersionString() +
|
||||
"\nClient: " + getNetworkVersionString();
|
||||
printf("%s\n",sErr.c_str());
|
||||
bool versionMatched = false;
|
||||
string platformFreeVersion = getNetworkPlatformFreeVersionString();
|
||||
string sErr = "";
|
||||
|
||||
sendTextMessage("Server and client binary mismatch!!",-1);
|
||||
sendTextMessage(" Server:" + networkMessageIntro.getVersionString(),-1);
|
||||
sendTextMessage(" Client: "+ getNetworkVersionString(),-1);
|
||||
if(Config::getInstance().getBool("NetworkConsistencyChecks"))
|
||||
if(strncmp(platformFreeVersion.c_str(),networkMessageIntro.getVersionString().c_str(),strlen(platformFreeVersion.c_str())) != 0) {
|
||||
sErr = "Server and client binary mismatch!\nYou have to use the exactly same binaries!\n\nServer: " +
|
||||
networkMessageIntro.getVersionString() +
|
||||
"\nClient: " + getNetworkVersionString();
|
||||
printf("%s\n",sErr.c_str());
|
||||
|
||||
sendTextMessage("Server and client binary mismatch!!",-1);
|
||||
sendTextMessage(" Server:" + networkMessageIntro.getVersionString(),-1);
|
||||
sendTextMessage(" Client: "+ getNetworkVersionString(),-1);
|
||||
}
|
||||
else {
|
||||
versionMatched = true;
|
||||
sErr = "Server and client are using the same version but different platforms.\n\nServer: " +
|
||||
networkMessageIntro.getVersionString() + "\nClient: " + getNetworkVersionString();
|
||||
printf("%s\n",sErr.c_str());
|
||||
|
||||
sendTextMessage("Server and client platform mismatch.",-1);
|
||||
sendTextMessage(" Server:" + networkMessageIntro.getVersionString(),-1);
|
||||
sendTextMessage(" Client: "+ getNetworkVersionString(),-1);
|
||||
}
|
||||
|
||||
if(Config::getInstance().getBool("PlatformConsistencyChecks","true") && versionMatched == false)
|
||||
{// error message and disconnect only if checked
|
||||
DisplayErrorMessage(sErr);
|
||||
quit= true;
|
||||
@@ -159,7 +174,6 @@ void ClientInterface::updateLobby()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//send intro message
|
||||
NetworkMessageIntro sendNetworkMessageIntro(getNetworkVersionString(), Config::getInstance().getString("NetPlayerName",Socket::getHostName().c_str()), -1);
|
||||
|
||||
|
Reference in New Issue
Block a user