diff --git a/source/glest_game/game/game_settings.h b/source/glest_game/game/game_settings.h index 7fef76c5..44b83303 100644 --- a/source/glest_game/game/game_settings.h +++ b/source/glest_game/game/game_settings.h @@ -80,10 +80,10 @@ private: uint32 flagTypes1; - int32 mapCRC; - int32 tilesetCRC; - int32 techCRC; - vector > factionCRCList; + uint32 mapCRC; + uint32 tilesetCRC; + uint32 techCRC; + vector > factionCRCList; int aiAcceptSwitchTeamPercentChance; int masterserver_admin; @@ -212,10 +212,10 @@ public: PathFinderType getPathFinderType() const { return pathFinderType; } uint32 getFlagTypes1() const { return flagTypes1;} - int32 getMapCRC() const { return mapCRC; } - int32 getTilesetCRC() const { return tilesetCRC; } - int32 getTechCRC() const { return techCRC; } - vector > getFactionCRCList() const { return factionCRCList; } + uint32 getMapCRC() const { return mapCRC; } + uint32 getTilesetCRC() const { return tilesetCRC; } + uint32 getTechCRC() const { return techCRC; } + vector > getFactionCRCList() const { return factionCRCList; } //set void setDescription(const string& description) {this->description= description;} @@ -255,11 +255,11 @@ public: void setFlagTypes1(uint32 value) {this->flagTypes1 = value; } - void setMapCRC(int32 value) { mapCRC = value; } - void setTilesetCRC(int32 value) { tilesetCRC = value; } - void setTechCRC(int32 value) { techCRC = value; } + void setMapCRC(uint32 value) { mapCRC = value; } + void setTilesetCRC(uint32 value) { tilesetCRC = value; } + void setTechCRC(uint32 value) { techCRC = value; } - void setFactionCRCList(vector > value) { factionCRCList = value; } + void setFactionCRCList(vector > value) { factionCRCList = value; } int getAiAcceptSwitchTeamPercentChance() const { return aiAcceptSwitchTeamPercentChance;} void setAiAcceptSwitchTeamPercentChance(int value) { aiAcceptSwitchTeamPercentChance = value; } @@ -306,12 +306,12 @@ public: result += "networkPauseGameForLaggedClients = " + intToStr(networkPauseGameForLaggedClients) + "\n"; result += "pathFinderType = " + intToStr(pathFinderType) + "\n"; result += "flagTypes1 = " + intToStr(flagTypes1) + "\n"; - result += "mapCRC = " + intToStr(mapCRC) + "\n"; - result += "tilesetCRC = " + intToStr(tilesetCRC) + "\n"; - result += "techCRC = " + intToStr(techCRC) + "\n"; + result += "mapCRC = " + uIntToStr(mapCRC) + "\n"; + result += "tilesetCRC = " + uIntToStr(tilesetCRC) + "\n"; + result += "techCRC = " + uIntToStr(techCRC) + "\n"; for(unsigned int i = 0; i < factionCRCList.size(); ++i) { - result += "factionCRCList name [" + factionCRCList[i].first + "] CRC = " + intToStr(factionCRCList[i].second) + "\n"; + result += "factionCRCList name [" + factionCRCList[i].first + "] CRC = " + uIntToStr(factionCRCList[i].second) + "\n"; } result += "aiAcceptSwitchTeamPercentChance = " + intToStr(aiAcceptSwitchTeamPercentChance) + "\n"; @@ -424,18 +424,18 @@ public: // uint32 flagTypes1; gameSettingsNode->addAttribute("flagTypes1",intToStr(flagTypes1), mapTagReplacements); // int32 mapCRC; - gameSettingsNode->addAttribute("mapCRC",intToStr(mapCRC), mapTagReplacements); + gameSettingsNode->addAttribute("mapCRC",uIntToStr(mapCRC), mapTagReplacements); // int32 tilesetCRC; - gameSettingsNode->addAttribute("tilesetCRC",intToStr(tilesetCRC), mapTagReplacements); + gameSettingsNode->addAttribute("tilesetCRC",uIntToStr(tilesetCRC), mapTagReplacements); // int32 techCRC; - gameSettingsNode->addAttribute("techCRC",intToStr(techCRC), mapTagReplacements); + gameSettingsNode->addAttribute("techCRC",uIntToStr(techCRC), mapTagReplacements); // vector > factionCRCList; for(unsigned int i = 0; i < factionCRCList.size(); ++i) { - const pair &item = factionCRCList[i]; + const pair &item = factionCRCList[i]; XmlNode *factionCRCListNode = gameSettingsNode->addChild("factionCRCList"); factionCRCListNode->addAttribute("key",item.first, mapTagReplacements); - factionCRCListNode->addAttribute("value",intToStr(item.second), mapTagReplacements); + factionCRCListNode->addAttribute("value",uIntToStr(item.second), mapTagReplacements); } // int aiAcceptSwitchTeamPercentChance; gameSettingsNode->addAttribute("aiAcceptSwitchTeamPercentChance",intToStr(aiAcceptSwitchTeamPercentChance), mapTagReplacements); @@ -551,11 +551,11 @@ public: // uint32 flagTypes1; flagTypes1 = gameSettingsNode->getAttribute("flagTypes1")->getIntValue(); // int32 mapCRC; - mapCRC = gameSettingsNode->getAttribute("mapCRC")->getIntValue(); + mapCRC = gameSettingsNode->getAttribute("mapCRC")->getUIntValue(); // int32 tilesetCRC; - tilesetCRC = gameSettingsNode->getAttribute("tilesetCRC")->getIntValue(); + tilesetCRC = gameSettingsNode->getAttribute("tilesetCRC")->getUIntValue(); // int32 techCRC; - techCRC = gameSettingsNode->getAttribute("techCRC")->getIntValue(); + techCRC = gameSettingsNode->getAttribute("techCRC")->getUIntValue(); // vector > factionCRCList; // for(unsigned int i = 0; i < factionCRCList.size(); ++i) { // const pair &item = factionCRCList[i]; diff --git a/source/glest_game/graphics/renderer.h b/source/glest_game/graphics/renderer.h index 7f9797d0..e2955ca7 100644 --- a/source/glest_game/graphics/renderer.h +++ b/source/glest_game/graphics/renderer.h @@ -384,7 +384,7 @@ private: int indexCount; const int textureHandle; string texturePath; - int32 textureCRC; + uint32 textureCRC; }; typedef std::vector Layers; Layers layers; diff --git a/source/glest_game/main/main.cpp b/source/glest_game/main/main.cpp index 89ff0e44..a367402a 100644 --- a/source/glest_game/main/main.cpp +++ b/source/glest_game/main/main.cpp @@ -1397,14 +1397,14 @@ void runTilesetValidationForPath(string tilesetPath, string tilesetName, } if(showDuplicateFiles == true) { - std::map > mapDuplicateFiles; + std::map > mapDuplicateFiles; // Now check for duplicate data content for(std::map > >::iterator iterMap = loadedFileList.begin(); iterMap != loadedFileList.end(); ++iterMap) { string fileName = iterMap->first; Checksum checksum; checksum.addFile(fileName); - int32 crcValue = checksum.getSum(); + uint32 crcValue = checksum.getSum(); mapDuplicateFiles[crcValue].push_back(fileName); } @@ -1415,7 +1415,7 @@ void runTilesetValidationForPath(string tilesetPath, string tilesetName, int duplicateCount=0; bool foundDuplicates = false; - for(std::map >::iterator iterMap = mapDuplicateFiles.begin(); + for(std::map >::iterator iterMap = mapDuplicateFiles.begin(); iterMap != mapDuplicateFiles.end(); ++iterMap) { vector &fileList = iterMap->second; if(fileList.size() > 1) { @@ -1834,14 +1834,14 @@ void runTechValidationForPath(string techPath, string techName, } if(showDuplicateFiles == true) { - std::map > mapDuplicateFiles; + std::map > mapDuplicateFiles; // Now check for duplicate data content for(std::map > >::iterator iterMap = loadedFileList.begin(); iterMap != loadedFileList.end(); ++iterMap) { string fileName = iterMap->first; Checksum checksum; checksum.addFile(fileName); - int32 crcValue = checksum.getSum(); + uint32 crcValue = checksum.getSum(); if(crcValue == 0) { char szBuf[4096]=""; sprintf(szBuf,"Error calculating CRC for file [%s]",fileName.c_str()); @@ -1860,7 +1860,7 @@ void runTechValidationForPath(string techPath, string techName, int duplicateCount=0; bool foundDuplicates = false; - for(std::map >::iterator iterMap = mapDuplicateFiles.begin(); + for(std::map >::iterator iterMap = mapDuplicateFiles.begin(); iterMap != mapDuplicateFiles.end(); ++iterMap) { vector &fileList = iterMap->second; if(fileList.size() > 1) { @@ -3736,9 +3736,9 @@ int glestMain(int argc, char** argv) { if(file != "") { Checksum checksum; checksum.addFile(file); - int32 crcValue = checksum.getSum(); + uint32 crcValue = checksum.getSum(); - printf("CRC value for map [%s] file [%s] is [%d]\n",itemName.c_str(),file.c_str(),crcValue); + printf("CRC value for map [%s] file [%s] is [%u]\n",itemName.c_str(),file.c_str(),crcValue); } else { printf("Map [%s] was NOT FOUND\n",itemName.c_str()); @@ -3765,9 +3765,9 @@ int glestMain(int argc, char** argv) { Tokenize(paramValue,paramPartTokens,"="); if(paramPartTokens.size() >= 2 && paramPartTokens[1].length() > 0) { string itemName = paramPartTokens[1]; - int32 crcValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + itemName + string("/*"), ".xml", NULL, true); + uint32 crcValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,""), string("/") + itemName + string("/*"), ".xml", NULL, true); if(crcValue != 0) { - printf("CRC value for tileset [%s] is [%d]\n",itemName.c_str(),crcValue); + printf("CRC value for tileset [%s] is [%u]\n",itemName.c_str(),crcValue); } else { printf("Tileset [%s] was NOT FOUND\n",itemName.c_str()); @@ -3794,9 +3794,9 @@ int glestMain(int argc, char** argv) { Tokenize(paramValue,paramPartTokens,"="); if(paramPartTokens.size() >= 2 && paramPartTokens[1].length() > 0) { string itemName = paramPartTokens[1]; - int32 crcValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + itemName + "/*", ".xml", NULL, true); + uint32 crcValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + itemName + "/*", ".xml", NULL, true); if(crcValue != 0) { - printf("CRC value for techtree [%s] is [%d]\n",itemName.c_str(),crcValue); + printf("CRC value for techtree [%s] is [%u]\n",itemName.c_str(),crcValue); } else { printf("Techtree [%s] was NOT FOUND\n",itemName.c_str()); @@ -3823,9 +3823,9 @@ int glestMain(int argc, char** argv) { Tokenize(paramValue,paramPartTokens,"="); if(paramPartTokens.size() >= 2 && paramPartTokens[1].length() > 0) { string itemName = paramPartTokens[1]; - int32 crcValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptScenarios,""), "/" + itemName + "/*", ".xml", NULL, true); + uint32 crcValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptScenarios,""), "/" + itemName + "/*", ".xml", NULL, true); if(crcValue != 0) { - printf("CRC value for scenario [%s] is [%d]\n",itemName.c_str(),crcValue); + printf("CRC value for scenario [%s] is [%u]\n",itemName.c_str(),crcValue); } else { printf("Scenario [%s] was NOT FOUND\n",itemName.c_str()); @@ -3855,9 +3855,9 @@ int glestMain(int argc, char** argv) { string itemName = paramPartTokens[1]; string itemNameFilter = paramPartTokens[2]; //printf("\n\nitemName [%s] itemNameFilter [%s]\n",itemName.c_str(),itemNameFilter.c_str()); - int32 crcValue = getFolderTreeContentsCheckSumRecursively(itemName, itemNameFilter, NULL, true); + uint32 crcValue = getFolderTreeContentsCheckSumRecursively(itemName, itemNameFilter, NULL, true); - printf("CRC value for path [%s] filter [%s] is [%d]\n",itemName.c_str(),itemNameFilter.c_str(),crcValue); + printf("CRC value for path [%s] filter [%s] is [%u]\n",itemName.c_str(),itemNameFilter.c_str(),crcValue); return -1; } diff --git a/source/glest_game/menu/menu_state_connected_game.cpp b/source/glest_game/menu/menu_state_connected_game.cpp index cad49052..2197e223 100644 --- a/source/glest_game/menu/menu_state_connected_game.cpp +++ b/source/glest_game/menu/menu_state_connected_game.cpp @@ -1580,7 +1580,7 @@ void MenuStateConnectedGame::loadGameSettings(GameSettings *gameSettings) { if(factionName != GameConstants::RANDOMFACTION_SLOTNAME && factionName != GameConstants::OBSERVER_SLOTNAME) { //factionCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml", NULL, true); - int32 factionCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml", NULL); + uint32 factionCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml", NULL); if(factionCRC == 0) { factionCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml", NULL, true); } @@ -2035,7 +2035,7 @@ void MenuStateConnectedGame::update() { MutexSafeWrapper safeMutexFTPProgress(ftpClientThread != NULL ? ftpClientThread->getProgressMutex() : NULL,string(__FILE__) + "_" + intToStr(__LINE__)); - int32 tilesetCRC = lastCheckedCRCTilesetValue; + uint32 tilesetCRC = lastCheckedCRCTilesetValue; if(lastCheckedCRCTilesetName != gameSettings->getTileset() && gameSettings->getTileset() != "") { //console.addLine("Checking tileset CRC [" + gameSettings->getTileset() + "]"); @@ -2049,7 +2049,7 @@ void MenuStateConnectedGame::update() { lastCheckedCRCTilesetName = gameSettings->getTileset(); } - int32 techCRC = lastCheckedCRCTechtreeValue; + uint32 techCRC = lastCheckedCRCTechtreeValue; if(lastCheckedCRCTechtreeName != gameSettings->getTech() && gameSettings->getTech() != "") { //console.addLine("Checking techtree CRC [" + gameSettings->getTech() + "]"); @@ -2090,7 +2090,7 @@ void MenuStateConnectedGame::update() { factionName != GameConstants::OBSERVER_SLOTNAME && factionName != ITEM_MISSING) { - int32 factionCRC = 0; + uint32 factionCRC = 0; time_t now = time(NULL); time_t lastUpdateDate = getFolderTreeContentsCheckSumRecursivelyLastGenerated(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml"); @@ -2108,9 +2108,9 @@ void MenuStateConnectedGame::update() { } if(factionCRC != 0) { - vector > serverFactionCRCList = gameSettings->getFactionCRCList(); + vector > serverFactionCRCList = gameSettings->getFactionCRCList(); for(unsigned int factionIdx1 = 0; factionIdx1 < serverFactionCRCList.size(); ++factionIdx1) { - pair &serverFaction = serverFactionCRCList[factionIdx1]; + pair &serverFaction = serverFactionCRCList[factionIdx1]; if(serverFaction.first == factionName) { if(serverFaction.second != factionCRC) { factionCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml", NULL, true); @@ -2125,7 +2125,7 @@ void MenuStateConnectedGame::update() { //console.addLine("Found factions: " + intToStr(factionCRCList.size())); } - int32 mapCRC = lastCheckedCRCMapValue; + uint32 mapCRC = lastCheckedCRCMapValue; if(lastCheckedCRCMapName != gameSettings->getMap() && gameSettings->getMap() != "") { Checksum checksum; @@ -2210,14 +2210,14 @@ void MenuStateConnectedGame::update() { string mismatchedFactionText = ""; vector mismatchedFactionTextList; - vector > serverFactionCRCList = gameSettings->getFactionCRCList(); + vector > serverFactionCRCList = gameSettings->getFactionCRCList(); for(unsigned int factionIdx = 0; factionIdx < serverFactionCRCList.size(); ++factionIdx) { - pair &serverFaction = serverFactionCRCList[factionIdx]; + pair &serverFaction = serverFactionCRCList[factionIdx]; bool foundFaction = false; for(unsigned int clientFactionIdx = 0; clientFactionIdx < factionCRCList.size(); ++clientFactionIdx) { - pair &clientFaction = factionCRCList[clientFactionIdx]; + pair &clientFaction = factionCRCList[clientFactionIdx]; if(serverFaction.first == clientFaction.first) { foundFaction = true; @@ -2271,11 +2271,11 @@ void MenuStateConnectedGame::update() { } for(unsigned int clientFactionIdx = 0; clientFactionIdx < factionCRCList.size(); ++clientFactionIdx) { - pair &clientFaction = factionCRCList[clientFactionIdx]; + pair &clientFaction = factionCRCList[clientFactionIdx]; bool foundFaction = false; for(unsigned int factionIdx = 0; factionIdx < serverFactionCRCList.size(); ++factionIdx) { - pair &serverFaction = serverFactionCRCList[factionIdx]; + pair &serverFaction = serverFactionCRCList[factionIdx]; if(serverFaction.first == clientFaction.first) { foundFaction = true; diff --git a/source/glest_game/menu/menu_state_connected_game.h b/source/glest_game/menu/menu_state_connected_game.h index 35e5655c..31bbcc98 100644 --- a/source/glest_game/menu/menu_state_connected_game.h +++ b/source/glest_game/menu/menu_state_connected_game.h @@ -166,10 +166,10 @@ private: string lastCheckedCRCTilesetName; string lastCheckedCRCTechtreeName; string lastCheckedCRCMapName; - int32 lastCheckedCRCTilesetValue; - int32 lastCheckedCRCTechtreeValue; - int32 lastCheckedCRCMapValue; - vector > factionCRCList; + uint32 lastCheckedCRCTilesetValue; + uint32 lastCheckedCRCTechtreeValue; + uint32 lastCheckedCRCMapValue; + vector > factionCRCList; std::map > fileFTPProgressList; GraphicButton buttonCancelDownloads; diff --git a/source/glest_game/menu/menu_state_custom_game.cpp b/source/glest_game/menu/menu_state_custom_game.cpp index 88e5faad..f139e2a0 100644 --- a/source/glest_game/menu/menu_state_custom_game.cpp +++ b/source/glest_game/menu/menu_state_custom_game.cpp @@ -3166,7 +3166,7 @@ void MenuStateCustomGame::loadGameSettings(GameSettings *gameSettings,bool force if(factionName != GameConstants::RANDOMFACTION_SLOTNAME && factionName != GameConstants::OBSERVER_SLOTNAME) { //factionCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml", NULL, true); - int32 factionCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml", NULL); + uint32 factionCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml", NULL); if(factionCRC == 0) { factionCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), "/" + gameSettings->getTech() + "/factions/" + factionName + "/*", ".xml", NULL, true); } diff --git a/source/glest_game/menu/menu_state_custom_game.h b/source/glest_game/menu/menu_state_custom_game.h index b56cb146..c89eb856 100644 --- a/source/glest_game/menu/menu_state_custom_game.h +++ b/source/glest_game/menu/menu_state_custom_game.h @@ -187,10 +187,10 @@ private: string lastCheckedCRCTilesetName; string lastCheckedCRCTechtreeName; string lastCheckedCRCMapName; - int32 lastCheckedCRCTilesetValue; - int32 lastCheckedCRCTechtreeValue; - int32 lastCheckedCRCMapValue; - vector > factionCRCList; + uint32 lastCheckedCRCTilesetValue; + uint32 lastCheckedCRCTechtreeValue; + uint32 lastCheckedCRCMapValue; + vector > factionCRCList; bool forceWaitForShutdown; bool headlessServerMode; diff --git a/source/glest_game/menu/menu_state_mods.cpp b/source/glest_game/menu/menu_state_mods.cpp index 191bc511..782fd497 100644 --- a/source/glest_game/menu/menu_state_mods.cpp +++ b/source/glest_game/menu/menu_state_mods.cpp @@ -2626,7 +2626,7 @@ void MenuStateMods::FTPClient_CallbackEvent(string itemName, // Refresh CRC Config &config = Config::getInstance(); - int32 CRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), string("/") + itemName + string("/*"), ".xml", NULL, true); + uint32 CRCTechtreeValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,""), string("/") + itemName + string("/*"), ".xml", NULL, true); safeMutexFTPProgress.ReleaseLock(); refreshTechs(); @@ -2672,7 +2672,7 @@ void MenuStateMods::FTPClient_CallbackEvent(string itemName, // Refresh CRC Config &config = Config::getInstance(); - int32 CRCScenarioValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptScenarios,""), string("/") + itemName + string("/*"), ".xml", NULL, true); + uint32 CRCScenarioValue = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptScenarios,""), string("/") + itemName + string("/*"), ".xml", NULL, true); safeMutexFTPProgress.ReleaseLock(); refreshScenarios(); diff --git a/source/glest_game/menu/menu_state_mods.h b/source/glest_game/menu/menu_state_mods.h index 8290658a..d49c8379 100644 --- a/source/glest_game/menu/menu_state_mods.h +++ b/source/glest_game/menu/menu_state_mods.h @@ -204,7 +204,7 @@ private: void loadMapPreview(string name); void showRemoteDesription(ModInfo *modInfo); - std::map mapCRCUpdateList; + std::map mapCRCUpdateList; public: MenuStateMods(Program *program, MainMenu *mainMenu); diff --git a/source/glest_game/network/client_interface.cpp b/source/glest_game/network/client_interface.cpp index 91817f97..f9193cb4 100644 --- a/source/glest_game/network/client_interface.cpp +++ b/source/glest_game/network/client_interface.cpp @@ -339,10 +339,10 @@ void ClientInterface::updateLobby() { this->setNetworkGameDataSynchCheckTechMismatchReport(""); this->setReceivedDataSynchCheck(false); - int32 tilesetCRC = 0; - int32 techCRC = 0; - int32 mapCRC = 0; - vector > vctFileList; + uint32 tilesetCRC = 0; + uint32 techCRC = 0; + uint32 mapCRC = 0; + vector > vctFileList; try { Config &config = Config::getInstance(); @@ -424,7 +424,7 @@ void ClientInterface::updateLobby() { Checksum checksum; string file = networkMessageSynchNetworkGameDataFileCRCCheck.getFileName(); checksum.addFile(file); - int32 fileCRC = checksum.getSum(); + uint32 fileCRC = checksum.getSum(); if(fileCRC != networkMessageSynchNetworkGameDataFileCRCCheck.getFileCRC()) { diff --git a/source/glest_game/network/connection_slot.cpp b/source/glest_game/network/connection_slot.cpp index be5f04b8..6e4a519b 100644 --- a/source/glest_game/network/connection_slot.cpp +++ b/source/glest_game/network/connection_slot.cpp @@ -836,12 +836,12 @@ void ConnectionSlot::update(bool checkForNewClients,int lockedSlotIndex) { } //tileset - int32 tilesetCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,scenarioDir), string("/") + serverInterface->getGameSettings()->getTileset() + string("/*"), ".xml", NULL); - int32 techCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,scenarioDir), "/" + serverInterface->getGameSettings()->getTech() + "/*", ".xml", NULL); + uint32 tilesetCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTilesets,scenarioDir), string("/") + serverInterface->getGameSettings()->getTileset() + string("/*"), ".xml", NULL); + uint32 techCRC = getFolderTreeContentsCheckSumRecursively(config.getPathListForType(ptTechs,scenarioDir), "/" + serverInterface->getGameSettings()->getTech() + "/*", ".xml", NULL); Checksum checksum; string file = Map::getMapPath(serverInterface->getGameSettings()->getMap(),scenarioDir,false); checksum.addFile(file); - int32 mapCRC = checksum.getSum(); + uint32 mapCRC = checksum.getSum(); networkGameDataSynchCheckOkMap = (networkMessageSynchNetworkGameDataStatus.getMapCRC() == mapCRC); networkGameDataSynchCheckOkTile = (networkMessageSynchNetworkGameDataStatus.getTilesetCRC() == tilesetCRC); @@ -896,7 +896,7 @@ void ConnectionSlot::update(bool checkForNewClients,int lockedSlotIndex) { this->setNetworkGameDataSynchCheckTechMismatchReport(report); } if(networkGameDataSynchCheckOkMap == false) { - vctFileList.push_back(std::pair(Map::getMapPath(serverInterface->getGameSettings()->getMap(),scenarioDir,false),mapCRC)); + vctFileList.push_back(std::pair(Map::getMapPath(serverInterface->getGameSettings()->getMap(),scenarioDir,false),mapCRC)); } //for(int i = 0; i < vctFileList.size(); i++) diff --git a/source/glest_game/network/connection_slot.h b/source/glest_game/network/connection_slot.h index 6ece3895..4d73f088 100644 --- a/source/glest_game/network/connection_slot.h +++ b/source/glest_game/network/connection_slot.h @@ -113,7 +113,7 @@ private: int playerIndex; string name; bool ready; - vector > vctFileList; + vector > vctFileList; bool receivedNetworkGameStatus; time_t connectedTime; bool gotIntro; diff --git a/source/glest_game/network/network_interface.cpp b/source/glest_game/network/network_interface.cpp index 732bc7af..698fd46d 100644 --- a/source/glest_game/network/network_interface.cpp +++ b/source/glest_game/network/network_interface.cpp @@ -372,7 +372,7 @@ void FileTransferSocketThread::execute() Checksum checksum; checksum.addFile(file.fileName); - int32 crc = checksum.getSum(); + uint32 crc = checksum.getSum(); if(file.filecrc != crc) { //int ii = 0; diff --git a/source/glest_game/network/network_interface.h b/source/glest_game/network/network_interface.h index bdf97468..3d910fb4 100644 --- a/source/glest_game/network/network_interface.h +++ b/source/glest_game/network/network_interface.h @@ -345,7 +345,7 @@ class FileInfo public: string fileName; int64 filesize; - int32 filecrc; + uint32 filecrc; }; class FileTransferSocketThread : public Thread diff --git a/source/glest_game/network/network_message.cpp b/source/glest_game/network/network_message.cpp index 482b7d98..2dc61927 100644 --- a/source/glest_game/network/network_message.cpp +++ b/source/glest_game/network/network_message.cpp @@ -158,7 +158,7 @@ NetworkMessageReady::NetworkMessageReady() { data.messageType= nmtReady; } -NetworkMessageReady::NetworkMessageReady(int32 checksum) { +NetworkMessageReady::NetworkMessageReady(uint32 checksum) { data.messageType= nmtReady; data.checksum= checksum; } @@ -200,7 +200,7 @@ NetworkMessageLaunch::NetworkMessageLaunch(const GameSettings *gameSettings,int8 data.factionCRCList[i] = 0; } - vector > factionCRCList = gameSettings->getFactionCRCList(); + vector > factionCRCList = gameSettings->getFactionCRCList(); for(unsigned int i = 0; i < factionCRCList.size() && i < maxFactionCRCCount; ++i) { data.factionNameList[i] = factionCRCList[i].first; data.factionCRCList[i] = factionCRCList[i].second; @@ -277,7 +277,7 @@ void NetworkMessageLaunch::buildGameSettings(GameSettings *gameSettings) const { gameSettings->setTilesetCRC(data.tilesetCRC); gameSettings->setTechCRC(data.techCRC); - vector > factionCRCList; + vector > factionCRCList; for(unsigned int i = 0; i < maxFactionCRCCount; ++i) { if(data.factionNameList[i].getString() != "") { factionCRCList.push_back(make_pair(data.factionNameList[i].getString(),data.factionCRCList[i])); @@ -304,9 +304,9 @@ void NetworkMessageLaunch::buildGameSettings(GameSettings *gameSettings) const { gameSettings->setScenario(data.scenario.getString()); } -vector > NetworkMessageLaunch::getFactionCRCList() const { +vector > NetworkMessageLaunch::getFactionCRCList() const { - vector > factionCRCList; + vector > factionCRCList; for(unsigned int i = 0; i < maxFactionCRCCount; ++i) { if(data.factionNameList[i].getString() != "") { factionCRCList.push_back(make_pair(data.factionNameList[i].getString(),data.factionCRCList[i])); @@ -533,14 +533,14 @@ NetworkMessageSynchNetworkGameData::NetworkMessageSynchNetworkGameData(const Gam if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] data.techCRC = %d, [%s]\n",__FILE__,__FUNCTION__,__LINE__, data.header.techCRC,gameSettings->getTech().c_str()); - vector > vctFileList; + vector > vctFileList; vctFileList = getFolderTreeContentsCheckSumListRecursively(config.getPathListForType(ptTechs,scenarioDir),string("/") + gameSettings->getTech() + string("/*"), ".xml",&vctFileList); data.header.techCRCFileCount = min((int)vctFileList.size(),(int)maxFileCRCCount); if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] vctFileList.size() = %d, maxFileCRCCount = %d\n",__FILE__,__FUNCTION__,__LINE__, vctFileList.size(),maxFileCRCCount); for(int idx =0; idx < data.header.techCRCFileCount; ++idx) { - const std::pair &fileInfo = vctFileList[idx]; + const std::pair &fileInfo = vctFileList[idx]; data.detail.techCRCFileList[idx] = fileInfo.first; data.detail.techCRCFileCRCList[idx] = fileInfo.second; } @@ -554,7 +554,7 @@ NetworkMessageSynchNetworkGameData::NetworkMessageSynchNetworkGameData(const Gam if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] data.mapCRC = %d, [%s]\n",__FILE__,__FUNCTION__,__LINE__, data.header.mapCRC,gameSettings->getMap().c_str()); } -string NetworkMessageSynchNetworkGameData::getTechCRCFileMismatchReport(vector > &vctFileList) { +string NetworkMessageSynchNetworkGameData::getTechCRCFileMismatchReport(vector > &vctFileList) { string result = "Techtree: [" + data.header.tech.getString() + "] Filecount local: " + intToStr(vctFileList.size()) + " remote: " + intToStr(data.header.techCRCFileCount) + "\n"; if(vctFileList.size() <= 0) { result = result + "Local player has no files.\n"; @@ -564,12 +564,12 @@ string NetworkMessageSynchNetworkGameData::getTechCRCFileMismatchReport(vector &fileInfo = vctFileList[idx]; + std::pair &fileInfo = vctFileList[idx]; bool fileFound = false; - int32 remoteCRC = -1; + uint32 remoteCRC = 0; for(int j = 0; j < data.header.techCRCFileCount; ++j) { string networkFile = data.detail.techCRCFileList[j].getString(); - int32 &networkFileCRC = data.detail.techCRCFileCRCList[j]; + uint32 &networkFileCRC = data.detail.techCRCFileCRCList[j]; if(fileInfo.first == networkFile) { fileFound = true; remoteCRC = networkFileCRC; @@ -587,11 +587,11 @@ string NetworkMessageSynchNetworkGameData::getTechCRCFileMismatchReport(vector &fileInfo = vctFileList[idx]; + std::pair &fileInfo = vctFileList[idx]; if(networkFile == fileInfo.first) { fileFound = true; localCRC = fileInfo.second; @@ -639,7 +639,7 @@ bool NetworkMessageSynchNetworkGameData::receive(Socket* socket) { int packetIndex = iPacketLoop * NetworkMessageSynchNetworkGameData::maxFileCRCPacketCount; int maxFileCountPerPacket = maxFileCRCPacketCount; - int packetFileCount = min(maxFileCountPerPacket,data.header.techCRCFileCount - packetIndex); + int packetFileCount = min((uint32)maxFileCountPerPacket,data.header.techCRCFileCount - packetIndex); int packetDetail1DataSize = (DetailSize1 * packetFileCount); int packetDetail2DataSize = (DetailSize2 * packetFileCount); @@ -681,7 +681,7 @@ void NetworkMessageSynchNetworkGameData::send(Socket* socket) const { int packetIndex = iPacketLoop * NetworkMessageSynchNetworkGameData::maxFileCRCPacketCount; int maxFileCountPerPacket = maxFileCRCPacketCount; - int packetFileCount = min(maxFileCountPerPacket,data.header.techCRCFileCount - packetIndex); + int packetFileCount = min((uint32)maxFileCountPerPacket,data.header.techCRCFileCount - packetIndex); NetworkMessage::send(socket, &data.detail.techCRCFileList[packetIndex], (DetailSize1 * packetFileCount)); NetworkMessage::send(socket, &data.detail.techCRCFileCRCList[packetIndex], (DetailSize2 * packetFileCount)); @@ -693,7 +693,7 @@ void NetworkMessageSynchNetworkGameData::send(Socket* socket) const { // class NetworkMessageSynchNetworkGameDataStatus // ===================================================== -NetworkMessageSynchNetworkGameDataStatus::NetworkMessageSynchNetworkGameDataStatus(int32 mapCRC, int32 tilesetCRC, int32 techCRC, vector > &vctFileList) +NetworkMessageSynchNetworkGameDataStatus::NetworkMessageSynchNetworkGameDataStatus(uint32 mapCRC, uint32 tilesetCRC, uint32 techCRC, vector > &vctFileList) { data.header.messageType= nmtSynchNetworkGameDataStatus; @@ -703,13 +703,13 @@ NetworkMessageSynchNetworkGameDataStatus::NetworkMessageSynchNetworkGameDataStat data.header.techCRCFileCount = min((int)vctFileList.size(),(int)maxFileCRCCount); for(int idx =0; idx < data.header.techCRCFileCount; ++idx) { - const std::pair &fileInfo = vctFileList[idx]; + const std::pair &fileInfo = vctFileList[idx]; data.detail.techCRCFileList[idx] = fileInfo.first; data.detail.techCRCFileCRCList[idx] = fileInfo.second; } } -string NetworkMessageSynchNetworkGameDataStatus::getTechCRCFileMismatchReport(string techtree, vector > &vctFileList) { +string NetworkMessageSynchNetworkGameDataStatus::getTechCRCFileMismatchReport(string techtree, vector > &vctFileList) { string result = "Techtree: [" + techtree + "] Filecount local: " + intToStr(vctFileList.size()) + " remote: " + intToStr(data.header.techCRCFileCount) + "\n"; if(vctFileList.size() <= 0) { result = result + "Local player has no files.\n"; @@ -719,12 +719,12 @@ string NetworkMessageSynchNetworkGameDataStatus::getTechCRCFileMismatchReport(st } else { for(int idx = 0; idx < vctFileList.size(); ++idx) { - std::pair &fileInfo = vctFileList[idx]; + std::pair &fileInfo = vctFileList[idx]; bool fileFound = false; - int32 remoteCRC = -1; + uint32 remoteCRC = 0; for(int j = 0; j < data.header.techCRCFileCount; ++j) { string networkFile = data.detail.techCRCFileList[j].getString(); - int32 &networkFileCRC = data.detail.techCRCFileCRCList[j]; + uint32 &networkFileCRC = data.detail.techCRCFileCRCList[j]; if(fileInfo.first == networkFile) { fileFound = true; remoteCRC = networkFileCRC; @@ -742,11 +742,11 @@ string NetworkMessageSynchNetworkGameDataStatus::getTechCRCFileMismatchReport(st for(int i = 0; i < data.header.techCRCFileCount; ++i) { string networkFile = data.detail.techCRCFileList[i].getString(); - int32 &networkFileCRC = data.detail.techCRCFileCRCList[i]; + uint32 &networkFileCRC = data.detail.techCRCFileCRCList[i]; bool fileFound = false; - int32 localCRC = -1; + uint32 localCRC = 0; for(int idx = 0; idx < vctFileList.size(); ++idx) { - std::pair &fileInfo = vctFileList[idx]; + std::pair &fileInfo = vctFileList[idx]; if(networkFile == fileInfo.first) { fileFound = true; @@ -788,7 +788,7 @@ bool NetworkMessageSynchNetworkGameDataStatus::receive(Socket* socket) { int packetIndex = iPacketLoop * NetworkMessageSynchNetworkGameDataStatus::maxFileCRCPacketCount; int maxFileCountPerPacket = maxFileCRCPacketCount; - int packetFileCount = min(maxFileCountPerPacket,data.header.techCRCFileCount - packetIndex); + int packetFileCount = min((uint32)maxFileCountPerPacket,data.header.techCRCFileCount - packetIndex); if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] iPacketLoop = %d, packetIndex = %d, packetFileCount = %d\n",__FILE__,__FUNCTION__,__LINE__,iPacketLoop,packetIndex,packetFileCount); @@ -830,7 +830,7 @@ void NetworkMessageSynchNetworkGameDataStatus::send(Socket* socket) const { int packetIndex = iPacketLoop * NetworkMessageSynchNetworkGameDataStatus::maxFileCRCPacketCount; int maxFileCountPerPacket = maxFileCRCPacketCount; - int packetFileCount = min(maxFileCountPerPacket,data.header.techCRCFileCount - packetIndex); + int packetFileCount = min((uint32)maxFileCountPerPacket,data.header.techCRCFileCount - packetIndex); if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] packetLoop = %d, packetIndex = %d, packetFileCount = %d\n",__FILE__,__FUNCTION__,__LINE__,iPacketLoop,packetIndex,packetFileCount); @@ -844,7 +844,7 @@ void NetworkMessageSynchNetworkGameDataStatus::send(Socket* socket) const { // class NetworkMessageSynchNetworkGameDataFileCRCCheck // ===================================================== -NetworkMessageSynchNetworkGameDataFileCRCCheck::NetworkMessageSynchNetworkGameDataFileCRCCheck(int32 totalFileCount, int32 fileIndex, int32 fileCRC, const string fileName) +NetworkMessageSynchNetworkGameDataFileCRCCheck::NetworkMessageSynchNetworkGameDataFileCRCCheck(uint32 totalFileCount, uint32 fileIndex, uint32 fileCRC, const string fileName) { data.messageType= nmtSynchNetworkGameDataFileCRCCheck; diff --git a/source/glest_game/network/network_message.h b/source/glest_game/network/network_message.h index 9187901b..62efd003 100644 --- a/source/glest_game/network/network_message.h +++ b/source/glest_game/network/network_message.h @@ -167,7 +167,7 @@ class NetworkMessageReady: public NetworkMessage{ private: struct Data{ int8 messageType; - int32 checksum; + uint32 checksum; }; private: @@ -175,9 +175,9 @@ private: public: NetworkMessageReady(); - NetworkMessageReady(int32 checksum); + NetworkMessageReady(uint32 checksum); - int32 getChecksum() const {return data.checksum;} + uint32 getChecksum() const {return data.checksum;} virtual bool receive(Socket* socket); virtual void send(Socket* socket) const; @@ -210,11 +210,11 @@ private: int32 networkPlayerStatuses[GameConstants::maxPlayers]; //networkPlayerStatuses NetworkString networkPlayerLanguages[GameConstants::maxPlayers]; - int32 mapCRC; - int32 tilesetCRC; - int32 techCRC; + uint32 mapCRC; + uint32 tilesetCRC; + uint32 techCRC; NetworkString factionNameList[maxFactionCRCCount]; - int32 factionCRCList[maxFactionCRCCount]; + uint32 factionCRCList[maxFactionCRCCount]; int8 factionControls[GameConstants::maxPlayers]; int8 resourceMultiplierIndex[GameConstants::maxPlayers]; @@ -255,7 +255,7 @@ public: int getMapCRC() const { return data.mapCRC; } int getTilesetCRC() const { return data.tilesetCRC; } int getTechCRC() const { return data.techCRC; } - vector > getFactionCRCList() const; + vector > getFactionCRCList() const; virtual bool receive(Socket* socket); virtual void send(Socket* socket) const; @@ -395,22 +395,22 @@ private: NetworkString tileset; NetworkString tech; - int32 mapCRC; - int32 tilesetCRC; - int32 techCRC; + uint32 mapCRC; + uint32 tilesetCRC; + uint32 techCRC; - int32 techCRCFileCount; + uint32 techCRCFileCount; }; static const int32 HeaderSize = sizeof(DataHeader); struct DataDetail { NetworkString techCRCFileList[maxFileCRCCount]; - int32 techCRCFileCRCList[maxFileCRCCount]; + uint32 techCRCFileCRCList[maxFileCRCCount]; }; static const int32 DetailSize1 = sizeof(NetworkString); - static const int32 DetailSize2 = sizeof(int32); + static const int32 DetailSize2 = sizeof(uint32); struct Data { DataHeader header; @@ -431,15 +431,15 @@ public: string getTileset() const {return data.header.tileset.getString();} string getTech() const {return data.header.tech.getString();} - int32 getMapCRC() const {return data.header.mapCRC;} - int32 getTilesetCRC() const {return data.header.tilesetCRC;} - int32 getTechCRC() const {return data.header.techCRC;} + uint32 getMapCRC() const {return data.header.mapCRC;} + uint32 getTilesetCRC() const {return data.header.tilesetCRC;} + uint32 getTechCRC() const {return data.header.techCRC;} - int32 getTechCRCFileCount() const {return data.header.techCRCFileCount;} + uint32 getTechCRCFileCount() const {return data.header.techCRCFileCount;} const NetworkString * getTechCRCFileList() const {return &data.detail.techCRCFileList[0];} - const int32 * getTechCRCFileCRCList() const {return data.detail.techCRCFileCRCList;} + const uint32 * getTechCRCFileCRCList() const {return data.detail.techCRCFileCRCList;} - string getTechCRCFileMismatchReport(vector > &vctFileList); + string getTechCRCFileMismatchReport(vector > &vctFileList); }; #pragma pack(pop) @@ -463,21 +463,21 @@ private: struct DataHeader { int8 messageType; - int32 mapCRC; - int32 tilesetCRC; - int32 techCRC; + uint32 mapCRC; + uint32 tilesetCRC; + uint32 techCRC; - int32 techCRCFileCount; + uint32 techCRCFileCount; }; static const int32 HeaderSize = sizeof(DataHeader); struct DataDetail { NetworkString techCRCFileList[maxFileCRCCount]; - int32 techCRCFileCRCList[maxFileCRCCount]; + uint32 techCRCFileCRCList[maxFileCRCCount]; }; static const int32 DetailSize1 = sizeof(NetworkString); - static const int32 DetailSize2 = sizeof(int32); + static const int32 DetailSize2 = sizeof(uint32); struct Data { DataHeader header; @@ -489,20 +489,20 @@ private: public: NetworkMessageSynchNetworkGameDataStatus() {}; - NetworkMessageSynchNetworkGameDataStatus(int32 mapCRC, int32 tilesetCRC, int32 techCRC, vector > &vctFileList); + NetworkMessageSynchNetworkGameDataStatus(uint32 mapCRC, uint32 tilesetCRC, uint32 techCRC, vector > &vctFileList); virtual bool receive(Socket* socket); virtual void send(Socket* socket) const; - int32 getMapCRC() const {return data.header.mapCRC;} - int32 getTilesetCRC() const {return data.header.tilesetCRC;} - int32 getTechCRC() const {return data.header.techCRC;} + uint32 getMapCRC() const {return data.header.mapCRC;} + uint32 getTilesetCRC() const {return data.header.tilesetCRC;} + uint32 getTechCRC() const {return data.header.techCRC;} - int32 getTechCRCFileCount() const {return data.header.techCRCFileCount;} + uint32 getTechCRCFileCount() const {return data.header.techCRCFileCount;} const NetworkString * getTechCRCFileList() const {return &data.detail.techCRCFileList[0];} - const int32 * getTechCRCFileCRCList() const {return data.detail.techCRCFileCRCList;} + const uint32 * getTechCRCFileCRCList() const {return data.detail.techCRCFileCRCList;} - string getTechCRCFileMismatchReport(string techtree, vector > &vctFileList); + string getTechCRCFileMismatchReport(string techtree, vector > &vctFileList); }; #pragma pack(pop) @@ -524,9 +524,9 @@ private: struct Data{ int8 messageType; - int32 totalFileCount; - int32 fileIndex; - int32 fileCRC; + uint32 totalFileCount; + uint32 fileIndex; + uint32 fileCRC; NetworkString fileName; }; @@ -535,14 +535,14 @@ private: public: NetworkMessageSynchNetworkGameDataFileCRCCheck() {}; - NetworkMessageSynchNetworkGameDataFileCRCCheck(int32 totalFileCount, int32 fileIndex, int32 fileCRC, const string fileName); + NetworkMessageSynchNetworkGameDataFileCRCCheck(uint32 totalFileCount, uint32 fileIndex, uint32 fileCRC, const string fileName); virtual bool receive(Socket* socket); virtual void send(Socket* socket) const; - int32 getTotalFileCount() const {return data.totalFileCount;} - int32 getFileIndex() const {return data.fileIndex;} - int32 getFileCRC() const {return data.fileCRC;} + uint32 getTotalFileCount() const {return data.totalFileCount;} + uint32 getFileIndex() const {return data.fileIndex;} + uint32 getFileCRC() const {return data.fileCRC;} string getFileName() const {return data.fileName.getString();} }; #pragma pack(pop) diff --git a/source/shared_lib/include/platform/common/platform_common.h b/source/shared_lib/include/platform/common/platform_common.h index 9115e751..ce566429 100644 --- a/source/shared_lib/include/platform/common/platform_common.h +++ b/source/shared_lib/include/platform/common/platform_common.h @@ -182,20 +182,20 @@ void setCRCCacheFilePath(string path); std::pair getFolderTreeContentsCheckSumCacheKey(vector paths, string pathSearchString, const string filterFileExt); void clearFolderTreeContentsCheckSum(vector paths, string pathSearchString, const string filterFileExt); -int32 getFolderTreeContentsCheckSumRecursively(vector paths, string pathSearchString, const string filterFileExt, Checksum *recursiveChecksum,bool forceNoCache=false); +uint32 getFolderTreeContentsCheckSumRecursively(vector paths, string pathSearchString, const string filterFileExt, Checksum *recursiveChecksum,bool forceNoCache=false); time_t getFolderTreeContentsCheckSumRecursivelyLastGenerated(vector paths, string pathSearchString, const string filterFileExt); std::pair getFolderTreeContentsCheckSumCacheKey(const string &path, const string filterFileExt); void clearFolderTreeContentsCheckSum(const string &path, const string filterFileExt); -int32 getFolderTreeContentsCheckSumRecursively(const string &path, const string &filterFileExt, Checksum *recursiveChecksum,bool forceNoCache=false); +uint32 getFolderTreeContentsCheckSumRecursively(const string &path, const string &filterFileExt, Checksum *recursiveChecksum,bool forceNoCache=false); std::pair getFolderTreeContentsCheckSumListCacheKey(vector paths, string pathSearchString, const string filterFileExt); void clearFolderTreeContentsCheckSumList(vector paths, string pathSearchString, const string filterFileExt); -vector > getFolderTreeContentsCheckSumListRecursively(vector paths, string pathSearchString, const string filterFileExt, vector > *recursiveMap); +vector > getFolderTreeContentsCheckSumListRecursively(vector paths, string pathSearchString, const string filterFileExt, vector > *recursiveMap); std::pair getFolderTreeContentsCheckSumListCacheKey(const string &path, const string filterFileExt); void clearFolderTreeContentsCheckSumList(const string &path, const string filterFileExt); -vector > getFolderTreeContentsCheckSumListRecursively(const string &path, const string &filterFileExt, vector > *recursiveMap); +vector > getFolderTreeContentsCheckSumListRecursively(const string &path, const string &filterFileExt, vector > *recursiveMap); void createDirectoryPaths(string Path); string extractFileFromDirectoryPath(string filename); @@ -270,7 +270,7 @@ string getFileTextContents(string path); class ValueCheckerVault { protected: - std::map vaultList; + std::map vaultList; void addItemToVault(const void *ptr,int value); void checkItemInVault(const void *ptr,int value) const; diff --git a/source/shared_lib/include/util/checksum.h b/source/shared_lib/include/util/checksum.h index e1a6c43e..7358cef0 100644 --- a/source/shared_lib/include/util/checksum.h +++ b/source/shared_lib/include/util/checksum.h @@ -29,28 +29,30 @@ namespace Shared{ namespace Util{ class Checksum { private: - int32 sum; + uint32 sum; int32 r; int32 c1; int32 c2; - std::map fileList; + std::map fileList; static Mutex fileListCacheSynchAccessor; - static std::map fileListCache; + static std::map fileListCache; - void addSum(int32 value); + void addSum(uint32 value); bool addFileToSum(const string &path); public: Checksum(); - int32 getSum(); - int32 getFinalFileListSum(); - int32 getFileCount(); + uint32 getSum(); + uint32 getFinalFileListSum(); + uint32 getFileCount(); - int32 addByte(int8 value); + //uint32 addByte(int8 value); + uint32 addByte(const char value); + uint32 addBytes(const void *_data, size_t _size); void addString(const string &value); - int32 addInt(const int32 &value); + uint32 addInt(const int32 &value); void addFile(const string &path); static void removeFileFromCache(const string file); diff --git a/source/shared_lib/include/util/conversion.h b/source/shared_lib/include/util/conversion.h index 87c3fadc..956d464a 100644 --- a/source/shared_lib/include/util/conversion.h +++ b/source/shared_lib/include/util/conversion.h @@ -24,13 +24,16 @@ namespace Shared { namespace Util { bool strToBool(const string &s); int strToInt(const string &s); +uint32 strToUInt(const string &s); float strToFloat(const string &s); bool strToBool(const string &s, bool *b); bool strToInt(const string &s, int *i); +bool strToUInt(const string &s, uint32 *i); bool strToFloat(const string &s, float *f); string boolToStr(bool b); +string uIntToStr(uint32 i); string intToStr(int64 i); string intToHex(int i); string floatToStr(float f,int precsion=2); diff --git a/source/shared_lib/include/xml/xml_parser.h b/source/shared_lib/include/xml/xml_parser.h index 81b17bc5..fe475257 100644 --- a/source/shared_lib/include/xml/xml_parser.h +++ b/source/shared_lib/include/xml/xml_parser.h @@ -17,6 +17,7 @@ #include #include #include "rapidxml/rapidxml.hpp" +#include "data_types.h" #include "leak_dumper.h" using namespace rapidxml; @@ -187,6 +188,7 @@ public: bool getBoolValue() const; int getIntValue() const; + Shared::Platform::uint32 getUIntValue() const; int getIntValue(int min, int max) const; float getFloatValue() const; float getFloatValue(float min, float max) const; diff --git a/source/shared_lib/sources/platform/common/platform_common.cpp b/source/shared_lib/sources/platform/common/platform_common.cpp index e205469b..b4a7d1dc 100644 --- a/source/shared_lib/sources/platform/common/platform_common.cpp +++ b/source/shared_lib/sources/platform/common/platform_common.cpp @@ -627,7 +627,7 @@ std::pair getFolderTreeContentsCheckSumCacheKey(vector pa return make_pair(cacheLookupId,cacheKey); } -pair hasCachedFileCRCValue(string crcCacheFile, int32 &value) { +pair hasCachedFileCRCValue(string crcCacheFile, uint32 &value) { //bool result = false; if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) { @@ -643,7 +643,7 @@ pair hasCachedFileCRCValue(string crcCacheFile, int32 &value) { #endif if(fp != NULL) { time_t refreshDate = 0; - int32 crcValue = 0; + uint32 crcValue = 0; time_t lastUpdateDate = 0; if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) { @@ -707,7 +707,7 @@ pair hasCachedFileCRCValue(string crcCacheFile, int32 &value) { return result; } -void writeCachedFileCRCValue(string crcCacheFile, int32 &crcValue) { +void writeCachedFileCRCValue(string crcCacheFile, uint32 &crcValue) { #ifdef WIN32 FILE *fp = _wfopen(utf8_decode(crcCacheFile).c_str(), L"w"); #else @@ -738,7 +738,7 @@ void writeCachedFileCRCValue(string crcCacheFile, int32 &crcValue) { void clearFolderTreeContentsCheckSum(vector paths, string pathSearchString, const string filterFileExt) { std::pair cacheKeys = getFolderTreeContentsCheckSumCacheKey(paths, pathSearchString, filterFileExt); string cacheLookupId = cacheKeys.first; - std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); + std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); string cacheKey = cacheKeys.second; if(crcTreeCache.find(cacheKey) != crcTreeCache.end()) { @@ -762,13 +762,13 @@ time_t getFolderTreeContentsCheckSumRecursivelyLastGenerated(vector path std::pair cacheKeys = getFolderTreeContentsCheckSumCacheKey(paths, pathSearchString, filterFileExt); string cacheLookupId = cacheKeys.first; - std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); + std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); string cacheKey = cacheKeys.second; string crcCacheFile = getFormattedCRCCacheFileName(cacheKeys); if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"-------------- In [%s::%s Line: %d] looking for cached CRC file [%s] for [%s] -----------\n",__FILE__,__FUNCTION__,__LINE__,crcCacheFile.c_str(),pathSearchString.c_str()); - int32 crcValue = 0; + uint32 crcValue = 0; pair crcResult = hasCachedFileCRCValue(crcCacheFile, crcValue); if(crcResult.first == true) { struct tm *loctime = localtime (&crcResult.second); @@ -789,12 +789,12 @@ time_t getFolderTreeContentsCheckSumRecursivelyLastGenerated(vector path } //finds all filenames like path and gets their checksum of all files combined -int32 getFolderTreeContentsCheckSumRecursively(vector paths, string pathSearchString, const string filterFileExt, Checksum *recursiveChecksum, bool forceNoCache) { +uint32 getFolderTreeContentsCheckSumRecursively(vector paths, string pathSearchString, const string filterFileExt, Checksum *recursiveChecksum, bool forceNoCache) { if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"-------------- In [%s::%s Line: %d] Calculating CRC for [%s] -----------\n",__FILE__,__FUNCTION__,__LINE__,pathSearchString.c_str()); std::pair cacheKeys = getFolderTreeContentsCheckSumCacheKey(paths, pathSearchString, filterFileExt); string cacheLookupId = cacheKeys.first; - std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); + std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); string cacheKey = cacheKeys.second; if(forceNoCache == false && crcTreeCache.find(cacheKey) != crcTreeCache.end()) { @@ -810,7 +810,7 @@ int32 getFolderTreeContentsCheckSumRecursively(vector paths, string path if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"-------------- In [%s::%s Line: %d] looking for cached CRC file [%s] for [%s] forceNoCache = %d -----------\n",__FILE__,__FUNCTION__,__LINE__,crcCacheFile.c_str(),pathSearchString.c_str(),forceNoCache); } - int32 crcValue = 0; + uint32 crcValue = 0; if(forceNoCache == false && hasCachedFileCRCValue(crcCacheFile, crcValue).first == true) { crcTreeCache[cacheKey] = crcValue; if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] scanning folders found CACHED FILE checksum = %d for cacheKey [%s] forceNoCache = %d\n",__FILE__,__FUNCTION__,__LINE__,crcTreeCache[cacheKey],cacheKey.c_str(),forceNoCache); @@ -840,7 +840,7 @@ int32 getFolderTreeContentsCheckSumRecursively(vector paths, string path if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] Final CRC file count: %d\n",__FILE__,__FUNCTION__,__LINE__,checksum.getFileCount()); - int32 result = checksum.getFinalFileListSum(); + uint32 result = checksum.getFinalFileListSum(); //if(forceNoCache == false) { crcTreeCache[cacheKey] = result; writeCachedFileCRCValue(crcCacheFile, crcTreeCache[cacheKey]); @@ -858,7 +858,7 @@ std::pair getFolderTreeContentsCheckSumCacheKey(const string &pat void clearFolderTreeContentsCheckSum(const string &path, const string filterFileExt) { std::pair cacheKeys = getFolderTreeContentsCheckSumCacheKey(path,filterFileExt); string cacheLookupId = cacheKeys.first; - std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); + std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); string cacheKey = cacheKeys.second; if(crcTreeCache.find(cacheKey) != crcTreeCache.end()) { @@ -872,11 +872,11 @@ void clearFolderTreeContentsCheckSum(const string &path, const string filterFile } //finds all filenames like path and gets their checksum of all files combined -int32 getFolderTreeContentsCheckSumRecursively(const string &path, const string &filterFileExt, Checksum *recursiveChecksum, bool forceNoCache) { +uint32 getFolderTreeContentsCheckSumRecursively(const string &path, const string &filterFileExt, Checksum *recursiveChecksum, bool forceNoCache) { std::pair cacheKeys = getFolderTreeContentsCheckSumCacheKey(path, filterFileExt); string cacheLookupId = cacheKeys.first; - std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); + std::map &crcTreeCache = CacheManager::getCachedItem< std::map >(cacheLookupId); string cacheKey = cacheKeys.second; if(forceNoCache == false && crcTreeCache.find(cacheKey) != crcTreeCache.end()) { @@ -892,7 +892,7 @@ int32 getFolderTreeContentsCheckSumRecursively(const string &path, const string if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"-------------- In [%s::%s Line: %d] looking for cached CRC file [%s] for [%s] forceNoCache = %d -----------\n",__FILE__,__FUNCTION__,__LINE__,crcCacheFile.c_str(),path.c_str(),forceNoCache); } - int32 crcValue = 0; + uint32 crcValue = 0; if(forceNoCache == false && hasCachedFileCRCValue(crcCacheFile, crcValue).first == true) { crcTreeCache[cacheKey] = crcValue; if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] scanning folders found CACHED FILE checksum = %d for cacheKey [%s] forceNoCache = %d\n",__FILE__,__FUNCTION__,__LINE__,crcTreeCache[cacheKey],cacheKey.c_str(),forceNoCache); @@ -999,7 +999,7 @@ int32 getFolderTreeContentsCheckSumRecursively(const string &path, const string //printf("In [%s::%s Line: %d] Final CRC file count for [%s]: %d\n",__FILE__,__FUNCTION__,__LINE__,path.c_str(),checksum.getFileCount()); if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] Final CRC file count for [%s]: %d\n",__FILE__,__FUNCTION__,__LINE__,path.c_str(),checksum.getFileCount()); - int32 result = checksum.getFinalFileListSum(); + uint32 result = checksum.getFinalFileListSum(); //if(forceNoCache == false) { crcTreeCache[cacheKey] = result; if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] scanning [%s] ending checksum = %d for cacheKey [%s] fileMatchCount = %d, fileLoopCount = %d\n",__FILE__,__FUNCTION__,path.c_str(),crcTreeCache[cacheKey],cacheKey.c_str(),fileMatchCount,fileLoopCount); @@ -1028,7 +1028,7 @@ std::pair getFolderTreeContentsCheckSumListCacheKey(vector paths, string pathSearchString, const string filterFileExt) { std::pair cacheKeys = getFolderTreeContentsCheckSumListCacheKey(paths, pathSearchString, filterFileExt); string cacheLookupId = cacheKeys.first; - std::map > > &crcTreeCache = CacheManager::getCachedItem< std::map > > >(cacheLookupId); + std::map > > &crcTreeCache = CacheManager::getCachedItem< std::map > > >(cacheLookupId); string cacheKey = cacheKeys.second; if(crcTreeCache.find(cacheKey) != crcTreeCache.end()) { @@ -1045,10 +1045,10 @@ void clearFolderTreeContentsCheckSumList(vector paths, string pathSearch } } -vector > getFolderTreeContentsCheckSumListRecursively(vector paths, string pathSearchString, string filterFileExt, vector > *recursiveMap) { +vector > getFolderTreeContentsCheckSumListRecursively(vector paths, string pathSearchString, string filterFileExt, vector > *recursiveMap) { std::pair cacheKeys = getFolderTreeContentsCheckSumListCacheKey(paths, pathSearchString, filterFileExt); string cacheLookupId = cacheKeys.first; - std::map > > &crcTreeCache = CacheManager::getCachedItem< std::map > > >(cacheLookupId); + std::map > > &crcTreeCache = CacheManager::getCachedItem< std::map > > >(cacheLookupId); string cacheKey = cacheKeys.second; if(crcTreeCache.find(cacheKey) != crcTreeCache.end()) { @@ -1061,7 +1061,7 @@ vector > getFolderTreeContentsCheckSumListRecursively(ve bool topLevelCaller = (recursiveMap == NULL); - vector > checksumFiles = (recursiveMap == NULL ? vector >() : *recursiveMap); + vector > checksumFiles = (recursiveMap == NULL ? vector >() : *recursiveMap); for(unsigned int idx = 0; idx < paths.size(); ++idx) { string path = paths[idx] + pathSearchString; checksumFiles = getFolderTreeContentsCheckSumListRecursively(path, filterFileExt, &checksumFiles); @@ -1205,7 +1205,7 @@ std::pair getFolderTreeContentsCheckSumListCacheKey(const string void clearFolderTreeContentsCheckSumList(const string &path, const string filterFileExt) { std::pair cacheKeys = getFolderTreeContentsCheckSumListCacheKey(path,filterFileExt); string cacheLookupId = cacheKeys.first; - std::map > > &crcTreeCache = CacheManager::getCachedItem< std::map > > >(cacheLookupId); + std::map > > &crcTreeCache = CacheManager::getCachedItem< std::map > > >(cacheLookupId); string cacheKey = cacheKeys.second; if(crcTreeCache.find(cacheKey) != crcTreeCache.end()) { @@ -1219,10 +1219,10 @@ void clearFolderTreeContentsCheckSumList(const string &path, const string filter } //finds all filenames like path and gets the checksum of each file -vector > getFolderTreeContentsCheckSumListRecursively(const string &path, const string &filterFileExt, vector > *recursiveMap) { +vector > getFolderTreeContentsCheckSumListRecursively(const string &path, const string &filterFileExt, vector > *recursiveMap) { std::pair cacheKeys = getFolderTreeContentsCheckSumListCacheKey(path, filterFileExt); string cacheLookupId = cacheKeys.first; - std::map > > &crcTreeCache = CacheManager::getCachedItem< std::map > > >(cacheLookupId); + std::map > > &crcTreeCache = CacheManager::getCachedItem< std::map > > >(cacheLookupId); string cacheKey = cacheKeys.second; if(crcTreeCache.find(cacheKey) != crcTreeCache.end()) { @@ -1231,7 +1231,7 @@ vector > getFolderTreeContentsCheckSumListRecursively(co } bool topLevelCaller = (recursiveMap == NULL); - vector > checksumFiles = (recursiveMap == NULL ? vector >() : *recursiveMap); + vector > checksumFiles = (recursiveMap == NULL ? vector >() : *recursiveMap); std::string mypath = path; /** Stupid win32 is searching for all files without extension when *. is @@ -1270,7 +1270,7 @@ vector > getFolderTreeContentsCheckSumListRecursively(co Checksum checksum; checksum.addFile(p); - checksumFiles.push_back(std::pair(p,checksum.getSum())); + checksumFiles.push_back(std::pair(p,checksum.getSum())); } } } @@ -2179,7 +2179,7 @@ void ValueCheckerVault::addItemToVault(const void *ptr,int value) { void ValueCheckerVault::checkItemInVault(const void *ptr,int value) const { #ifndef _DISABLE_MEMORY_VAULT_CHECKS - map::const_iterator iterFind = vaultList.find(ptr); + map::const_iterator iterFind = vaultList.find(ptr); if(iterFind == vaultList.end()) { // if(SystemFlags::VERBOSE_MODE_ENABLED) { // printf("In [%s::%s Line: %d] check vault key [%p] value [%d]\n",__FILE__,__FUNCTION__,__LINE__,ptr,value); diff --git a/source/shared_lib/sources/util/checksum.cpp b/source/shared_lib/sources/util/checksum.cpp index b714d7f0..c2ea98ec 100644 --- a/source/shared_lib/sources/util/checksum.cpp +++ b/source/shared_lib/sources/util/checksum.cpp @@ -38,7 +38,43 @@ namespace Shared{ namespace Util{ // ===================================================== Mutex Checksum::fileListCacheSynchAccessor; -std::map Checksum::fileListCache; +std::map Checksum::fileListCache; + +int crc_table[256] = +{ + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, + 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, + 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, + 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, + 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, + 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, + 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, + 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, + 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, + 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, + 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, + 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, + 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, + 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, + 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, + 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, + 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, + 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, + 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, + 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, + 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, + 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, + 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, + 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, + 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, + 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d +}; Checksum::Checksum() { sum= 0; @@ -47,20 +83,39 @@ Checksum::Checksum() { c2= 22719; } -int32 Checksum::addByte(int8 value) { - int32 cipher= (value ^ (r >> 8)); +uint32 Checksum::addByte(const char value) { +// int32 cipher= (value ^ (r >> 8)); +// +// r= (cipher + r) * c1 + c2; +// sum += cipher; +// +// return cipher; - r= (cipher + r) * c1 + c2; - sum += cipher; + const unsigned char *rVal = reinterpret_cast(&value); + sum = ~sum; + sum = (sum >> 8) ^ crc_table[*rVal ^ (sum & 0xff)]; + sum = ~sum; - return cipher; + return sum; } -void Checksum::addSum(int32 value) { +uint32 Checksum::addBytes(const void *_data, size_t _size) { + const unsigned char *rVal = reinterpret_cast(_data); + sum = ~sum; + while (_size--) { + sum = (sum >> 8) ^ crc_table[*rVal++ ^ (sum & 0xff)]; + } + sum = ~sum; + + return sum; +} + + +void Checksum::addSum(uint32 value) { sum += value; } -int32 Checksum::addInt(const int32 &value) { +uint32 Checksum::addInt(const int32 &value) { int8 byte = (value >> 0) & 0xFF; addByte(byte); byte = (value >> 8) & 0xFF; @@ -221,35 +276,41 @@ bool Checksum::addFileToSum(const string &path) { if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] buf.size() = %d, path [%s], isXMLFile = %d\n",__FILE__,__FUNCTION__,__LINE__,buf.size(), path.c_str(),isXMLFile); - for(unsigned int i = 0; i < buf.size(); ++i) { - // Ignore Spaces in XML files as they are - // ONLY for formatting - if(isXMLFile == true) { - if(inCommentTag == true) { - if(buf[i] == '>' && i >= 3 && buf[i-1] == '-' && buf[i-2] == '-') { - inCommentTag = false; - //printf("TURNING OFF comment TAG, i = %d [%c]",i,buf[i]); - } - else { - //printf("SKIPPING XML comment character, i = %d [%c]",i,buf[i]); - } - continue; - } - //else if(buf[i] == '-' && i >= 4 && buf[i-1] == '-' && buf[i-2] == '!' && buf[i-3] == '<') { - else if(buf[i] == '<' && i+4 < bufSize && buf[i+1] == '!' && buf[i+2] == '-' && buf[i+3] == '-') { - inCommentTag = true; - //printf("TURNING ON comment TAG, i = %d [%c]",i,buf[i]); - continue; - } - else if(buf[i] == ' ' || buf[i] == '\t' || buf[i] == '\n' || buf[i] == '\r') { - //printf("SKIPPING special character, i = %d [%c]",i,buf[i]); - continue; - } - } - int32 cipher = addByte(buf[i]); + if(isXMLFile == true) { + for(unsigned int i = 0; i < buf.size(); ++i) { + // Ignore Spaces in XML files as they are + // ONLY for formatting + //if(isXMLFile == true) { + if(inCommentTag == true) { + if(buf[i] == '>' && i >= 3 && buf[i-1] == '-' && buf[i-2] == '-') { + inCommentTag = false; + //printf("TURNING OFF comment TAG, i = %d [%c]",i,buf[i]); + } + else { + //printf("SKIPPING XML comment character, i = %d [%c]",i,buf[i]); + } + continue; + } + //else if(buf[i] == '-' && i >= 4 && buf[i-1] == '-' && buf[i-2] == '!' && buf[i-3] == '<') { + else if(buf[i] == '<' && i+4 < bufSize && buf[i+1] == '!' && buf[i+2] == '-' && buf[i+3] == '-') { + inCommentTag = true; + //printf("TURNING ON comment TAG, i = %d [%c]",i,buf[i]); + continue; + } + else if(buf[i] == ' ' || buf[i] == '\t' || buf[i] == '\n' || buf[i] == '\r') { + //printf("SKIPPING special character, i = %d [%c]",i,buf[i]); + continue; + } + //} + uint32 cipher = addByte(buf[i]); - if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] %d / %d, cipher = %d\n",__FILE__,__FUNCTION__,__LINE__,i,buf.size(), cipher); - } + if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] %d / %d, cipher = %d\n",__FILE__,__FUNCTION__,__LINE__,i,buf.size(), cipher); + } + } + else { + uint32 cipher = addBytes(&buf[0],buf.size()); + if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] %d, cipher = %d\n",__FILE__,__FUNCTION__,__LINE__,buf.size(), cipher); + } // Close the file ifs.close(); @@ -263,7 +324,7 @@ bool Checksum::addFileToSum(const string &path) { return fileExists; } -int32 Checksum::getSum() { +uint32 Checksum::getSum() { //printf("Getting checksum for files [%d]\n",fileList.size()); if(fileList.size() > 0) { if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] fileList.size() = %d\n",__FILE__,__FUNCTION__,__LINE__,fileList.size()); @@ -272,7 +333,7 @@ int32 Checksum::getSum() { { - for(std::map::iterator iterMap = fileList.begin(); + for(std::map::iterator iterMap = fileList.begin(); iterMap != fileList.end(); ++iterMap) { MutexSafeWrapper safeMutexSocketDestructorFlag(&Checksum::fileListCacheSynchAccessor,string(__FILE__) + "_" + intToStr(__LINE__)); @@ -296,13 +357,13 @@ int32 Checksum::getSum() { return sum; } -int32 Checksum::getFinalFileListSum() { +uint32 Checksum::getFinalFileListSum() { sum = 0; return getSum(); } -int32 Checksum::getFileCount() { - return (int32)fileList.size(); +uint32 Checksum::getFileCount() { + return (uint32)fileList.size(); } void Checksum::removeFileFromCache(const string file) { diff --git a/source/shared_lib/sources/util/conversion.cpp b/source/shared_lib/sources/util/conversion.cpp index a5337fa5..05cffbcb 100644 --- a/source/shared_lib/sources/util/conversion.cpp +++ b/source/shared_lib/sources/util/conversion.cpp @@ -49,6 +49,18 @@ int strToInt(const string &s){ return intValue; } +uint32 strToUInt(const string &s){ + char *endChar; + setlocale(LC_NUMERIC, "C"); + uint32 intValue= strtoul(s.c_str(), &endChar, 10); + + if(*endChar!='\0'){ + throw megaglest_runtime_error("Error converting from string to uint, found: [" + s + "]"); + } + + return intValue; +} + float strToFloat(const string &s){ char *endChar; @@ -88,6 +100,18 @@ bool strToInt(const string &s, int *i) { return true; } +bool strToUInt(const string &s, uint32 *i) { + char *endChar; + + setlocale(LC_NUMERIC, "C"); + *i= strtoul(s.c_str(), &endChar, 10); + + if(*endChar!='\0'){ + return false; + } + return true; +} + bool strToFloat(const string &s, float *f) { char *endChar; setlocale(LC_NUMERIC, "C"); @@ -114,6 +138,12 @@ string intToStr(int64 i) { return (str[0] != '\0' ? str : ""); } +string uIntToStr(uint32 i) { + char str[strSize]=""; + snprintf(str, strSize-1, "%u", i); + return (str[0] != '\0' ? str : ""); +} + string intToHex(int i){ char str[strSize]=""; snprintf(str, strSize-1, "%x", i); diff --git a/source/shared_lib/sources/xml/xml_parser.cpp b/source/shared_lib/sources/xml/xml_parser.cpp index 980d814a..c55570c4 100644 --- a/source/shared_lib/sources/xml/xml_parser.cpp +++ b/source/shared_lib/sources/xml/xml_parser.cpp @@ -787,6 +787,10 @@ int XmlAttribute::getIntValue() const { return strToInt(value); } +uint32 XmlAttribute::getUIntValue() const { + return strToUInt(value); +} + int XmlAttribute::getIntValue(int min, int max) const { int i= strToInt(value); if(imax){