From e9ef00a21305abc9086a597d8cd380424e5d2c62 Mon Sep 17 00:00:00 2001 From: Mark Vejvoda Date: Mon, 4 Apr 2011 17:03:07 +0000 Subject: [PATCH] - added more error checking in mod menu when retrieving masterserver data --- source/glest_game/menu/menu_state_mods.cpp | 36 ++++++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/source/glest_game/menu/menu_state_mods.cpp b/source/glest_game/menu/menu_state_mods.cpp index 758fd545..429c30b8 100644 --- a/source/glest_game/menu/menu_state_mods.cpp +++ b/source/glest_game/menu/menu_state_mods.cpp @@ -277,11 +277,18 @@ void MenuStateMods::simpleTask(BaseThread *callingThread) { return; } + if(curlResult != CURLE_OK) { + string curlError = curl_easy_strerror(curlResult); + char szBuf[1024]=""; + sprintf(szBuf,lang.get("ModErrorGettingServerData").c_str(),curlError.c_str()); + console.addLine(string("#1 ") + szBuf,true); + } + if(curlResult == CURLE_OK || (curlResult != CURLE_COULDNT_RESOLVE_HOST && curlResult != CURLE_COULDNT_CONNECT)) { - tilesetsMetaData = SystemFlags::getHTTP(baseURL + "showTilesetsForGlest.php",handle); + tilesetsMetaData = SystemFlags::getHTTP(baseURL + "showTilesetsForGlest.php",handle,-1,&curlResult); if(SystemFlags::VERBOSE_MODE_ENABLED) printf("tilesetsMetaData [%s]\n",tilesetsMetaData.c_str()); if(callingThread->getQuitStatus() == true || safeMutexThreadOwner.isValidMutex() == false) { @@ -289,7 +296,14 @@ void MenuStateMods::simpleTask(BaseThread *callingThread) { return; } - mapsMetaData = SystemFlags::getHTTP(baseURL + "showMapsForGlest.php",handle); + if(curlResult != CURLE_OK) { + string curlError = curl_easy_strerror(curlResult); + char szBuf[1024]=""; + sprintf(szBuf,lang.get("ModErrorGettingServerData").c_str(),curlError.c_str()); + console.addLine(string("#2 ") + szBuf,true); + } + + mapsMetaData = SystemFlags::getHTTP(baseURL + "showMapsForGlest.php",handle,-1,&curlResult); if(SystemFlags::VERBOSE_MODE_ENABLED) printf("mapsMetaData [%s]\n",mapsMetaData.c_str()); if(callingThread->getQuitStatus() == true || safeMutexThreadOwner.isValidMutex() == false) { @@ -297,12 +311,28 @@ void MenuStateMods::simpleTask(BaseThread *callingThread) { return; } - scenariosMetaData = SystemFlags::getHTTP(baseURL + "showScenariosForGlest.php",handle); + if(curlResult != CURLE_OK) { + string curlError = curl_easy_strerror(curlResult); + char szBuf[1024]=""; + sprintf(szBuf,lang.get("ModErrorGettingServerData").c_str(),curlError.c_str()); + console.addLine(string("#3 ") + szBuf,true); + } + + scenariosMetaData = SystemFlags::getHTTP(baseURL + "showScenariosForGlest.php",handle,-1,&curlResult); if(SystemFlags::VERBOSE_MODE_ENABLED) printf("scenariosMetaData [%s]\n",scenariosMetaData.c_str()); + if(curlResult != CURLE_OK) { + string curlError = curl_easy_strerror(curlResult); + char szBuf[1024]=""; + sprintf(szBuf,lang.get("ModErrorGettingServerData").c_str(),curlError.c_str()); + console.addLine(string("#4 ") + szBuf,true); + } } SystemFlags::cleanupHTTP(&handle); } + else { + console.addLine(lang.get("MasterServerMissing"),true); + } if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__);