- added guards around masterserver property access so if missing we handle it more gracefully
This commit is contained in:
parent
591acdded4
commit
54f739c15d
|
@ -1898,28 +1898,34 @@ void MenuStateCustomGame::simpleTask() {
|
||||||
if(republish == true) {
|
if(republish == true) {
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
//string request = Config::getInstance().getString("Masterserver") + "addServerInfo.php?" + newPublishToServerInfo;
|
std::string serverInfo = "no masterserver defined.";
|
||||||
string request = Config::getInstance().getString("Masterserver") + "addServerInfo.php?";
|
try {
|
||||||
|
if(Config::getInstance().getString("Masterserver","") != "") {
|
||||||
|
//string request = Config::getInstance().getString("Masterserver") + "addServerInfo.php?" + newPublishToServerInfo;
|
||||||
|
string request = Config::getInstance().getString("Masterserver") + "addServerInfo.php?";
|
||||||
|
|
||||||
CURL *handle = SystemFlags::initHTTP();
|
CURL *handle = SystemFlags::initHTTP();
|
||||||
for(std::map<string,string>::const_iterator iterMap = newPublishToServerInfo.begin();
|
for(std::map<string,string>::const_iterator iterMap = newPublishToServerInfo.begin();
|
||||||
iterMap != newPublishToServerInfo.end(); iterMap++) {
|
iterMap != newPublishToServerInfo.end(); iterMap++) {
|
||||||
|
|
||||||
request += iterMap->first;
|
request += iterMap->first;
|
||||||
request += "=";
|
request += "=";
|
||||||
request += SystemFlags::escapeURL(iterMap->second,handle);
|
request += SystemFlags::escapeURL(iterMap->second,handle);
|
||||||
request += "&";
|
request += "&";
|
||||||
|
}
|
||||||
|
|
||||||
|
//printf("the request is:\n%s\n",request.c_str());
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d] the request is:\n%s\n",__FILE__,__FUNCTION__,__LINE__,request.c_str());
|
||||||
|
|
||||||
|
serverInfo = SystemFlags::getHTTP(request,handle);
|
||||||
|
SystemFlags::cleanupHTTP(&handle);
|
||||||
|
}
|
||||||
|
//printf("the result is:\n'%s'\n",serverInfo.c_str());
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d] the result is:\n'%s'\n",__FILE__,__FUNCTION__,__LINE__,serverInfo.c_str());
|
||||||
|
}
|
||||||
|
catch(const exception &ex) {
|
||||||
|
serverInfo = ex.what();
|
||||||
}
|
}
|
||||||
|
|
||||||
//printf("the request is:\n%s\n",request.c_str());
|
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d] the request is:\n%s\n",__FILE__,__FUNCTION__,__LINE__,request.c_str());
|
|
||||||
|
|
||||||
std::string serverInfo = SystemFlags::getHTTP(request,handle);
|
|
||||||
SystemFlags::cleanupHTTP(&handle);
|
|
||||||
|
|
||||||
//printf("the result is:\n'%s'\n",serverInfo.c_str());
|
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d] the result is:\n'%s'\n",__FILE__,__FUNCTION__,__LINE__,serverInfo.c_str());
|
|
||||||
|
|
||||||
// uncomment to enable router setup check of this server
|
// uncomment to enable router setup check of this server
|
||||||
if(EndsWith(serverInfo, "OK") == false) {
|
if(EndsWith(serverInfo, "OK") == false) {
|
||||||
showMasterserverError=true;
|
showMasterserverError=true;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// ==============================================================
|
// ==============================================================
|
||||||
// This file is part of Glest (www.glest.org)
|
// This file is part of Glest (www.glest.org)
|
||||||
//
|
//
|
||||||
// Copyright (C) 2010- by Titus Tscharntke
|
// Copyright (C) 2010- by Titus Tscharntke
|
||||||
//
|
//
|
||||||
// You can redistribute this code and/or modify it under
|
// You can redistribute this code and/or modify it under
|
||||||
|
@ -45,7 +45,7 @@ ServerLine::ServerLine( MasterServerInfo *mServerInfo, int lineIndex, const char
|
||||||
masterServerInfo = *mServerInfo;
|
masterServerInfo = *mServerInfo;
|
||||||
int i=10;
|
int i=10;
|
||||||
int startOffset=600;
|
int startOffset=600;
|
||||||
|
|
||||||
//general info:
|
//general info:
|
||||||
i+=10;
|
i+=10;
|
||||||
glestVersionLabel.registerGraphicComponent(containerName,"glestVersionLabel" + intToStr(lineIndex));
|
glestVersionLabel.registerGraphicComponent(containerName,"glestVersionLabel" + intToStr(lineIndex));
|
||||||
|
@ -64,39 +64,39 @@ ServerLine::ServerLine( MasterServerInfo *mServerInfo, int lineIndex, const char
|
||||||
// binaryCompileDateLabel.registerGraphicComponent(containerName,"binaryCompileDateLabel" + intToStr(lineIndex));
|
// binaryCompileDateLabel.registerGraphicComponent(containerName,"binaryCompileDateLabel" + intToStr(lineIndex));
|
||||||
// binaryCompileDateLabel.init(i,startOffset-lineOffset);
|
// binaryCompileDateLabel.init(i,startOffset-lineOffset);
|
||||||
// binaryCompileDateLabel.setText(masterServerInfo.getBinaryCompileDate());
|
// binaryCompileDateLabel.setText(masterServerInfo.getBinaryCompileDate());
|
||||||
|
|
||||||
//game info:
|
//game info:
|
||||||
i+=130;
|
i+=130;
|
||||||
registeredObjNameList.push_back("serverTitleLabel" + intToStr(lineIndex));
|
registeredObjNameList.push_back("serverTitleLabel" + intToStr(lineIndex));
|
||||||
serverTitleLabel.registerGraphicComponent(containerName,"serverTitleLabel" + intToStr(lineIndex));
|
serverTitleLabel.registerGraphicComponent(containerName,"serverTitleLabel" + intToStr(lineIndex));
|
||||||
serverTitleLabel.init(i,startOffset-lineOffset);
|
serverTitleLabel.init(i,startOffset-lineOffset);
|
||||||
serverTitleLabel.setText(masterServerInfo.getServerTitle());
|
serverTitleLabel.setText(masterServerInfo.getServerTitle());
|
||||||
|
|
||||||
i+=210;
|
i+=210;
|
||||||
registeredObjNameList.push_back("ipAddressLabel" + intToStr(lineIndex));
|
registeredObjNameList.push_back("ipAddressLabel" + intToStr(lineIndex));
|
||||||
ipAddressLabel.registerGraphicComponent(containerName,"ipAddressLabel" + intToStr(lineIndex));
|
ipAddressLabel.registerGraphicComponent(containerName,"ipAddressLabel" + intToStr(lineIndex));
|
||||||
ipAddressLabel.init(i,startOffset-lineOffset);
|
ipAddressLabel.init(i,startOffset-lineOffset);
|
||||||
ipAddressLabel.setText(masterServerInfo.getIpAddress());
|
ipAddressLabel.setText(masterServerInfo.getIpAddress());
|
||||||
|
|
||||||
//game setup info:
|
//game setup info:
|
||||||
i+=100;
|
i+=100;
|
||||||
registeredObjNameList.push_back("techLabel" + intToStr(lineIndex));
|
registeredObjNameList.push_back("techLabel" + intToStr(lineIndex));
|
||||||
techLabel.registerGraphicComponent(containerName,"techLabel" + intToStr(lineIndex));
|
techLabel.registerGraphicComponent(containerName,"techLabel" + intToStr(lineIndex));
|
||||||
techLabel.init(i,startOffset-lineOffset);
|
techLabel.init(i,startOffset-lineOffset);
|
||||||
techLabel.setText(masterServerInfo.getTech());
|
techLabel.setText(masterServerInfo.getTech());
|
||||||
|
|
||||||
i+=100;
|
i+=100;
|
||||||
registeredObjNameList.push_back("mapLabel" + intToStr(lineIndex));
|
registeredObjNameList.push_back("mapLabel" + intToStr(lineIndex));
|
||||||
mapLabel.registerGraphicComponent(containerName,"mapLabel" + intToStr(lineIndex));
|
mapLabel.registerGraphicComponent(containerName,"mapLabel" + intToStr(lineIndex));
|
||||||
mapLabel.init(i,startOffset-lineOffset);
|
mapLabel.init(i,startOffset-lineOffset);
|
||||||
mapLabel.setText(masterServerInfo.getMap());
|
mapLabel.setText(masterServerInfo.getMap());
|
||||||
|
|
||||||
i+=100;
|
i+=100;
|
||||||
registeredObjNameList.push_back("tilesetLabel" + intToStr(lineIndex));
|
registeredObjNameList.push_back("tilesetLabel" + intToStr(lineIndex));
|
||||||
tilesetLabel.registerGraphicComponent(containerName,"tilesetLabel" + intToStr(lineIndex));
|
tilesetLabel.registerGraphicComponent(containerName,"tilesetLabel" + intToStr(lineIndex));
|
||||||
tilesetLabel.init(i,startOffset-lineOffset);
|
tilesetLabel.init(i,startOffset-lineOffset);
|
||||||
tilesetLabel.setText(masterServerInfo.getTileset());
|
tilesetLabel.setText(masterServerInfo.getTileset());
|
||||||
|
|
||||||
i+=100;
|
i+=100;
|
||||||
registeredObjNameList.push_back("activeSlotsLabel" + intToStr(lineIndex));
|
registeredObjNameList.push_back("activeSlotsLabel" + intToStr(lineIndex));
|
||||||
activeSlotsLabel.registerGraphicComponent(containerName,"activeSlotsLabel" + intToStr(lineIndex));
|
activeSlotsLabel.registerGraphicComponent(containerName,"activeSlotsLabel" + intToStr(lineIndex));
|
||||||
|
@ -170,14 +170,14 @@ void ServerLine::render() {
|
||||||
renderer.renderLabel(&glestVersionLabel);
|
renderer.renderLabel(&glestVersionLabel);
|
||||||
renderer.renderLabel(&platformLabel);
|
renderer.renderLabel(&platformLabel);
|
||||||
//renderer.renderLabel(&binaryCompileDateLabel);
|
//renderer.renderLabel(&binaryCompileDateLabel);
|
||||||
|
|
||||||
//game info:
|
//game info:
|
||||||
renderer.renderLabel(&serverTitleLabel);
|
renderer.renderLabel(&serverTitleLabel);
|
||||||
renderer.renderLabel(&ipAddressLabel);
|
renderer.renderLabel(&ipAddressLabel);
|
||||||
|
|
||||||
//game setup info:
|
//game setup info:
|
||||||
renderer.renderLabel(&techLabel);
|
renderer.renderLabel(&techLabel);
|
||||||
renderer.renderLabel(&mapLabel);
|
renderer.renderLabel(&mapLabel);
|
||||||
renderer.renderLabel(&tilesetLabel);
|
renderer.renderLabel(&tilesetLabel);
|
||||||
renderer.renderLabel(&activeSlotsLabel);
|
renderer.renderLabel(&activeSlotsLabel);
|
||||||
renderer.renderLabel(&externalConnectPort);
|
renderer.renderLabel(&externalConnectPort);
|
||||||
|
@ -188,14 +188,14 @@ void ServerLine::render() {
|
||||||
// =====================================================
|
// =====================================================
|
||||||
|
|
||||||
MenuStateMasterserver::MenuStateMasterserver(Program *program, MainMenu *mainMenu):
|
MenuStateMasterserver::MenuStateMasterserver(Program *program, MainMenu *mainMenu):
|
||||||
MenuState(program, mainMenu, "masterserver")
|
MenuState(program, mainMenu, "masterserver")
|
||||||
{
|
{
|
||||||
containerName = "MasterServer";
|
containerName = "MasterServer";
|
||||||
updateFromMasterserverThread = NULL;
|
updateFromMasterserverThread = NULL;
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
|
||||||
Lang &lang= Lang::getInstance();
|
Lang &lang= Lang::getInstance();
|
||||||
|
|
||||||
autoRefreshTime=0;
|
autoRefreshTime=0;
|
||||||
playServerFoundSound=false;
|
playServerFoundSound=false;
|
||||||
announcementLoaded=false;
|
announcementLoaded=false;
|
||||||
|
@ -204,9 +204,9 @@ MenuStateMasterserver::MenuStateMasterserver(Program *program, MainMenu *mainMen
|
||||||
mainMessageBox.init(lang.get("Ok"));
|
mainMessageBox.init(lang.get("Ok"));
|
||||||
mainMessageBox.setEnabled(false);
|
mainMessageBox.setEnabled(false);
|
||||||
mainMessageBoxState=0;
|
mainMessageBoxState=0;
|
||||||
|
|
||||||
lastRefreshTimer= time(NULL);
|
lastRefreshTimer= time(NULL);
|
||||||
|
|
||||||
// announcement
|
// announcement
|
||||||
announcementLabel.registerGraphicComponent(containerName,"announcementLabel");
|
announcementLabel.registerGraphicComponent(containerName,"announcementLabel");
|
||||||
announcementLabel.init(10, 730);
|
announcementLabel.init(10, 730);
|
||||||
|
@ -227,10 +227,10 @@ MenuStateMasterserver::MenuStateMasterserver(Program *program, MainMenu *mainMen
|
||||||
if(Config::getInstance().getString("Masterserver","") == "") {
|
if(Config::getInstance().getString("Masterserver","") == "") {
|
||||||
labelTitle.setText("*** " + lang.get("AvailableServers"));
|
labelTitle.setText("*** " + lang.get("AvailableServers"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// bottom
|
// bottom
|
||||||
int buttonPos=130;
|
int buttonPos=130;
|
||||||
|
|
||||||
labelChatUrl.registerGraphicComponent(containerName,"labelChatUrl");
|
labelChatUrl.registerGraphicComponent(containerName,"labelChatUrl");
|
||||||
labelChatUrl.init(150,buttonPos-50);
|
labelChatUrl.init(150,buttonPos-50);
|
||||||
labelChatUrl.setFont(CoreData::getInstance().getMenuFontBig());
|
labelChatUrl.setFont(CoreData::getInstance().getMenuFontBig());
|
||||||
|
@ -301,7 +301,7 @@ MenuStateMasterserver::MenuStateMasterserver(Program *program, MainMenu *mainMen
|
||||||
selectButton.setText(lang.get("MGJoinGameSlots"));
|
selectButton.setText(lang.get("MGJoinGameSlots"));
|
||||||
|
|
||||||
// Titles for current games - END
|
// Titles for current games - END
|
||||||
|
|
||||||
buttonReturn.registerGraphicComponent(containerName,"buttonReturn");
|
buttonReturn.registerGraphicComponent(containerName,"buttonReturn");
|
||||||
buttonReturn.init(50, buttonPos, 150);
|
buttonReturn.init(50, buttonPos, 150);
|
||||||
|
|
||||||
|
@ -332,7 +332,7 @@ MenuStateMasterserver::MenuStateMasterserver(Program *program, MainMenu *mainMen
|
||||||
|
|
||||||
NetworkManager::getInstance().end();
|
NetworkManager::getInstance().end();
|
||||||
NetworkManager::getInstance().init(nrClient);
|
NetworkManager::getInstance().init(nrClient);
|
||||||
|
|
||||||
// write hint to console:
|
// write hint to console:
|
||||||
Config &configKeys = Config::getInstance(std::pair<ConfigType,ConfigType>(cfgMainKeys,cfgUserKeys));
|
Config &configKeys = Config::getInstance(std::pair<ConfigType,ConfigType>(cfgMainKeys,cfgUserKeys));
|
||||||
console.addLine(lang.get("To switch off music press")+" - \""+configKeys.getCharKey("ToggleMusic")+"\"");
|
console.addLine(lang.get("To switch off music press")+" - \""+configKeys.getCharKey("ToggleMusic")+"\"");
|
||||||
|
@ -400,7 +400,7 @@ void MenuStateMasterserver::mouseClick(int x, int y, MouseButton mouseButton){
|
||||||
if(mainMessageBox.getEnabled()){
|
if(mainMessageBox.getEnabled()){
|
||||||
int button= 1;
|
int button= 1;
|
||||||
if(mainMessageBox.mouseClick(x, y, button))
|
if(mainMessageBox.mouseClick(x, y, button))
|
||||||
{
|
{
|
||||||
soundRenderer.playFx(coreData.getClickSoundA());
|
soundRenderer.playFx(coreData.getClickSoundA());
|
||||||
if(button==1)
|
if(button==1)
|
||||||
{
|
{
|
||||||
|
@ -514,7 +514,7 @@ void MenuStateMasterserver::mouseMove(int x, int y, const MouseState *ms){
|
||||||
buttonReturn.mouseMove(x, y);
|
buttonReturn.mouseMove(x, y);
|
||||||
buttonCreateGame.mouseMove(x, y);
|
buttonCreateGame.mouseMove(x, y);
|
||||||
listBoxAutoRefresh.mouseMove(x, y);
|
listBoxAutoRefresh.mouseMove(x, y);
|
||||||
|
|
||||||
for(int i=0; i<serverLines.size(); ++i){
|
for(int i=0; i<serverLines.size(); ++i){
|
||||||
serverLines[i]->buttonMouseMove(x, y);
|
serverLines[i]->buttonMouseMove(x, y);
|
||||||
}
|
}
|
||||||
|
@ -564,7 +564,7 @@ void MenuStateMasterserver::render(){
|
||||||
|
|
||||||
// render console
|
// render console
|
||||||
renderer.renderConsole(&console,false,false);
|
renderer.renderConsole(&console,false,false);
|
||||||
|
|
||||||
for(int i=0; i<serverLines.size(); ++i){
|
for(int i=0; i<serverLines.size(); ++i){
|
||||||
serverLines[i]->render();
|
serverLines[i]->render();
|
||||||
}
|
}
|
||||||
|
@ -578,7 +578,7 @@ void MenuStateMasterserver::update(){
|
||||||
needUpdateFromServer = true;
|
needUpdateFromServer = true;
|
||||||
lastRefreshTimer= time(NULL);
|
lastRefreshTimer= time(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(playServerFoundSound)
|
if(playServerFoundSound)
|
||||||
{
|
{
|
||||||
SoundRenderer::getInstance().playFx(CoreData::getInstance().getAttentionSound());
|
SoundRenderer::getInstance().playFx(CoreData::getInstance().getAttentionSound());
|
||||||
|
@ -586,10 +586,10 @@ void MenuStateMasterserver::update(){
|
||||||
Config &config = Config::getInstance();
|
Config &config = Config::getInstance();
|
||||||
float configVolume = (config.getInt("SoundVolumeMusic") / 100.f);
|
float configVolume = (config.getInt("SoundVolumeMusic") / 100.f);
|
||||||
CoreData::getInstance().getMenuMusic()->setVolume(configVolume);
|
CoreData::getInstance().getMenuMusic()->setVolume(configVolume);
|
||||||
|
|
||||||
playServerFoundSound=false;
|
playServerFoundSound=false;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.update();
|
console.update();
|
||||||
|
|
||||||
if(threadedErrorMsg != "") {
|
if(threadedErrorMsg != "") {
|
||||||
|
@ -663,74 +663,81 @@ void MenuStateMasterserver::updateServerInfo() {
|
||||||
announcementLoaded=true;
|
announcementLoaded=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Config::getInstance().getString("Masterserver","") != "") {
|
Lang &lang= Lang::getInstance();
|
||||||
std::string serverInfo = SystemFlags::getHTTP(Config::getInstance().getString("Masterserver") + "showServersForGlest.php");
|
try {
|
||||||
|
if(Config::getInstance().getString("Masterserver","") != "") {
|
||||||
|
std::string serverInfo = SystemFlags::getHTTP(Config::getInstance().getString("Masterserver") + "showServersForGlest.php");
|
||||||
|
|
||||||
if(serverInfo != "") {
|
if(serverInfo != "") {
|
||||||
std::vector<std::string> serverList;
|
std::vector<std::string> serverList;
|
||||||
Tokenize(serverInfo,serverList,"\n");
|
Tokenize(serverInfo,serverList,"\n");
|
||||||
for(int i=0; i < serverList.size(); i++) {
|
for(int i=0; i < serverList.size(); i++) {
|
||||||
string &server = serverList[i];
|
string &server = serverList[i];
|
||||||
std::vector<std::string> serverEntities;
|
std::vector<std::string> serverEntities;
|
||||||
Tokenize(server,serverEntities,"|");
|
Tokenize(server,serverEntities,"|");
|
||||||
|
|
||||||
const int MIN_FIELDS_EXPECTED = 12;
|
const int MIN_FIELDS_EXPECTED = 12;
|
||||||
if(serverEntities.size() >= MIN_FIELDS_EXPECTED) {
|
if(serverEntities.size() >= MIN_FIELDS_EXPECTED) {
|
||||||
|
labelTitle.setText(lang.get("AvailableServers"));
|
||||||
|
|
||||||
Lang &lang= Lang::getInstance();
|
if(Config::getInstance().getString("Masterserver","") == "") {
|
||||||
labelTitle.setText(lang.get("AvailableServers"));
|
labelTitle.setText("*** " + lang.get("AvailableServers"));
|
||||||
|
}
|
||||||
|
|
||||||
if(Config::getInstance().getString("Masterserver","") == "") {
|
MasterServerInfo *masterServerInfo=new MasterServerInfo();
|
||||||
labelTitle.setText("*** " + lang.get("AvailableServers"));
|
|
||||||
}
|
|
||||||
|
|
||||||
MasterServerInfo *masterServerInfo=new MasterServerInfo();
|
//general info:
|
||||||
|
masterServerInfo->setGlestVersion(serverEntities[0]);
|
||||||
|
masterServerInfo->setPlatform(serverEntities[1]);
|
||||||
|
masterServerInfo->setBinaryCompileDate(serverEntities[2]);
|
||||||
|
|
||||||
//general info:
|
//game info:
|
||||||
masterServerInfo->setGlestVersion(serverEntities[0]);
|
masterServerInfo->setServerTitle(serverEntities[3]);
|
||||||
masterServerInfo->setPlatform(serverEntities[1]);
|
masterServerInfo->setIpAddress(serverEntities[4]);
|
||||||
masterServerInfo->setBinaryCompileDate(serverEntities[2]);
|
|
||||||
|
|
||||||
//game info:
|
//game setup info:
|
||||||
masterServerInfo->setServerTitle(serverEntities[3]);
|
masterServerInfo->setTech(serverEntities[5]);
|
||||||
masterServerInfo->setIpAddress(serverEntities[4]);
|
masterServerInfo->setMap(serverEntities[6]);
|
||||||
|
masterServerInfo->setTileset(serverEntities[7]);
|
||||||
|
masterServerInfo->setActiveSlots(strToInt(serverEntities[8]));
|
||||||
|
masterServerInfo->setNetworkSlots(strToInt(serverEntities[9]));
|
||||||
|
masterServerInfo->setConnectedClients(strToInt(serverEntities[10]));
|
||||||
|
masterServerInfo->setExternalConnectPort(strToInt(serverEntities[11]));
|
||||||
|
|
||||||
//game setup info:
|
//printf("Getting Ping time for host %s\n",masterServerInfo->getIpAddress().c_str());
|
||||||
masterServerInfo->setTech(serverEntities[5]);
|
//float pingTime = Socket::getAveragePingMS(masterServerInfo->getIpAddress().c_str(),1);
|
||||||
masterServerInfo->setMap(serverEntities[6]);
|
//printf("Ping time = %f\n",pingTime);
|
||||||
masterServerInfo->setTileset(serverEntities[7]);
|
char szBuf[1024]="";
|
||||||
masterServerInfo->setActiveSlots(strToInt(serverEntities[8]));
|
//sprintf(szBuf,"%s, %.2fms",masterServerInfo->getServerTitle().c_str(),pingTime);
|
||||||
masterServerInfo->setNetworkSlots(strToInt(serverEntities[9]));
|
sprintf(szBuf,"%s",masterServerInfo->getServerTitle().c_str());
|
||||||
masterServerInfo->setConnectedClients(strToInt(serverEntities[10]));
|
masterServerInfo->setServerTitle(szBuf);
|
||||||
masterServerInfo->setExternalConnectPort(strToInt(serverEntities[11]));
|
|
||||||
|
|
||||||
//printf("Getting Ping time for host %s\n",masterServerInfo->getIpAddress().c_str());
|
safeMutexPtr.Lock();
|
||||||
//float pingTime = Socket::getAveragePingMS(masterServerInfo->getIpAddress().c_str(),1);
|
if( masterServerThreadInDeletion == true ||
|
||||||
//printf("Ping time = %f\n",pingTime);
|
updateFromMasterserverThread == NULL ||
|
||||||
char szBuf[1024]="";
|
updateFromMasterserverThread->getQuitStatus() == true) {
|
||||||
//sprintf(szBuf,"%s, %.2fms",masterServerInfo->getServerTitle().c_str(),pingTime);
|
safeMutexPtr.ReleaseLock();
|
||||||
sprintf(szBuf,"%s",masterServerInfo->getServerTitle().c_str());
|
return;
|
||||||
masterServerInfo->setServerTitle(szBuf);
|
}
|
||||||
|
safeMutexPtr.ReleaseLock(true);
|
||||||
|
|
||||||
safeMutexPtr.Lock();
|
safeMutex.Lock();
|
||||||
if( masterServerThreadInDeletion == true ||
|
serverLines.push_back(new ServerLine( masterServerInfo, i, containerName));
|
||||||
updateFromMasterserverThread == NULL ||
|
safeMutex.ReleaseLock(true);
|
||||||
updateFromMasterserverThread->getQuitStatus() == true) {
|
}
|
||||||
safeMutexPtr.ReleaseLock();
|
else {
|
||||||
return;
|
Lang &lang= Lang::getInstance();
|
||||||
}
|
labelTitle.setText("*** " + lang.get("AvailableServers") + " [" + serverInfo + "]");
|
||||||
safeMutexPtr.ReleaseLock(true);
|
|
||||||
|
|
||||||
safeMutex.Lock();
|
SystemFlags::OutputDebug(SystemFlags::debugError,"In [%s::%s Line %d] error, no masterserver defined!\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
serverLines.push_back(new ServerLine( masterServerInfo, i, containerName));
|
}
|
||||||
safeMutex.ReleaseLock(true);
|
}
|
||||||
}
|
}
|
||||||
else {
|
}
|
||||||
Lang &lang= Lang::getInstance();
|
}
|
||||||
labelTitle.setText("*** " + lang.get("AvailableServers") + " [" + serverInfo + "]");
|
catch(const exception &ex) {
|
||||||
}
|
labelTitle.setText("*** " + lang.get("AvailableServers") + " [" + ex.what() + "]");
|
||||||
}
|
SystemFlags::OutputDebug(SystemFlags::debugError,"In [%s::%s Line %d] error during Internet game status update: [%s]\n",__FILE__,__FUNCTION__,__LINE__,ex.what());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
safeMutexPtr.Lock();
|
safeMutexPtr.Lock();
|
||||||
|
@ -740,7 +747,7 @@ void MenuStateMasterserver::updateServerInfo() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
safeMutexPtr.ReleaseLock();
|
safeMutexPtr.ReleaseLock();
|
||||||
|
|
||||||
safeMutex.Lock();
|
safeMutex.Lock();
|
||||||
if(serverLines.size()>numberOfOldServerLines) {
|
if(serverLines.size()>numberOfOldServerLines) {
|
||||||
playServerFoundSound=true;
|
playServerFoundSound=true;
|
||||||
|
@ -770,17 +777,17 @@ bool MenuStateMasterserver::connectToServer(string ipString, int port)
|
||||||
if(clientInterface->isConnected() == false) {
|
if(clientInterface->isConnected() == false) {
|
||||||
NetworkManager::getInstance().end();
|
NetworkManager::getInstance().end();
|
||||||
NetworkManager::getInstance().init(nrClient);
|
NetworkManager::getInstance().init(nrClient);
|
||||||
|
|
||||||
mainMessageBoxState=1;
|
mainMessageBoxState=1;
|
||||||
Lang &lang= Lang::getInstance();
|
Lang &lang= Lang::getInstance();
|
||||||
showMessageBox(lang.get("Couldnt connect"), lang.get("Connection failed"), false);
|
showMessageBox(lang.get("Couldnt connect"), lang.get("Connection failed"), false);
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] connection failed\n",__FILE__,__FUNCTION__);
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] connection failed\n",__FILE__,__FUNCTION__);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] connected to [%s]\n",__FILE__,__FUNCTION__,serverIp.getString().c_str());
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] connected to [%s]\n",__FILE__,__FUNCTION__,serverIp.getString().c_str());
|
||||||
|
|
||||||
//save server ip
|
//save server ip
|
||||||
//config.setString("ServerIp", serverIp.getString());
|
//config.setString("ServerIp", serverIp.getString());
|
||||||
//config.save();
|
//config.save();
|
||||||
|
@ -811,7 +818,7 @@ void MenuStateMasterserver::keyDown(char key) {
|
||||||
if(key == configKeys.getCharKey("ToggleMusic")) {
|
if(key == configKeys.getCharKey("ToggleMusic")) {
|
||||||
Config &config = Config::getInstance();
|
Config &config = Config::getInstance();
|
||||||
Lang &lang= Lang::getInstance();
|
Lang &lang= Lang::getInstance();
|
||||||
|
|
||||||
float configVolume = (config.getInt("SoundVolumeMusic") / 100.f);
|
float configVolume = (config.getInt("SoundVolumeMusic") / 100.f);
|
||||||
float currentVolume = CoreData::getInstance().getMenuMusic()->getVolume();
|
float currentVolume = CoreData::getInstance().getMenuMusic()->getVolume();
|
||||||
if(currentVolume > 0) {
|
if(currentVolume > 0) {
|
||||||
|
|
|
@ -1521,35 +1521,45 @@ void ServerInterface::simpleTask() {
|
||||||
lastMasterserverHeartbeatTime = time(NULL);
|
lastMasterserverHeartbeatTime = time(NULL);
|
||||||
|
|
||||||
if(needToRepublishToMasterserver == true) {
|
if(needToRepublishToMasterserver == true) {
|
||||||
//string request = Config::getInstance().getString("Masterserver") + "addServerInfo.php?" + newPublishToServerInfo;
|
try {
|
||||||
string request = Config::getInstance().getString("Masterserver") + "addServerInfo.php?";
|
if(Config::getInstance().getString("Masterserver","") != "") {
|
||||||
|
//string request = Config::getInstance().getString("Masterserver") + "addServerInfo.php?" + newPublishToServerInfo;
|
||||||
|
string request = Config::getInstance().getString("Masterserver") + "addServerInfo.php?";
|
||||||
|
|
||||||
std::map<string,string> newPublishToServerInfo = publishToMasterserver();
|
std::map<string,string> newPublishToServerInfo = publishToMasterserver();
|
||||||
|
|
||||||
CURL *handle = SystemFlags::initHTTP();
|
CURL *handle = SystemFlags::initHTTP();
|
||||||
for(std::map<string,string>::const_iterator iterMap = newPublishToServerInfo.begin();
|
for(std::map<string,string>::const_iterator iterMap = newPublishToServerInfo.begin();
|
||||||
iterMap != newPublishToServerInfo.end(); iterMap++) {
|
iterMap != newPublishToServerInfo.end(); iterMap++) {
|
||||||
|
|
||||||
request += iterMap->first;
|
request += iterMap->first;
|
||||||
request += "=";
|
request += "=";
|
||||||
request += SystemFlags::escapeURL(iterMap->second,handle);
|
request += SystemFlags::escapeURL(iterMap->second,handle);
|
||||||
request += "&";
|
request += "&";
|
||||||
}
|
}
|
||||||
|
|
||||||
//printf("the request is:\n%s\n",request.c_str());
|
//printf("the request is:\n%s\n",request.c_str());
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d] the request is:\n%s\n",__FILE__,__FUNCTION__,__LINE__,request.c_str());
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d] the request is:\n%s\n",__FILE__,__FUNCTION__,__LINE__,request.c_str());
|
||||||
|
|
||||||
std::string serverInfo = SystemFlags::getHTTP(request,handle);
|
std::string serverInfo = SystemFlags::getHTTP(request,handle);
|
||||||
SystemFlags::cleanupHTTP(&handle);
|
SystemFlags::cleanupHTTP(&handle);
|
||||||
|
|
||||||
//printf("the result is:\n'%s'\n",serverInfo.c_str());
|
//printf("the result is:\n'%s'\n",serverInfo.c_str());
|
||||||
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d] the result is:\n'%s'\n",__FILE__,__FUNCTION__,__LINE__,serverInfo.c_str());
|
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d] the result is:\n'%s'\n",__FILE__,__FUNCTION__,__LINE__,serverInfo.c_str());
|
||||||
|
|
||||||
// uncomment to enable router setup check of this server
|
// uncomment to enable router setup check of this server
|
||||||
if(EndsWith(serverInfo, "OK") == false) {
|
if(EndsWith(serverInfo, "OK") == false) {
|
||||||
//showMasterserverError=true;
|
//showMasterserverError=true;
|
||||||
//masterServererErrorToShow = (serverInfo != "" ? serverInfo : "No Reply");
|
//masterServererErrorToShow = (serverInfo != "" ? serverInfo : "No Reply");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugError,"In [%s::%s Line %d] error, no masterserver defined!\n",__FILE__,__FUNCTION__,__LINE__);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
catch(const exception &ex) {
|
||||||
|
SystemFlags::OutputDebug(SystemFlags::debugError,"In [%s::%s Line %d] error during game status update: [%s]\n",__FILE__,__FUNCTION__,__LINE__,ex.what());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user