From c09476ec0377aafb1932d0a486021837d3fd7b35 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 6 Jan 2016 23:19:34 +0100 Subject: [PATCH 1/5] Fixed: Servers compilation --HG-- branch : develop --- .../mission_manager/missions_commands.cpp | 2 +- .../player_manager/character.cpp | 1 - .../src/frontend_service/fe_receive_sub.cpp | 2 +- .../src/input_output_service/messages.cpp | 39 ++------------ .../input_output_service/string_manager.cpp | 54 ------------------- 5 files changed, 6 insertions(+), 92 deletions(-) diff --git a/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp b/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp index ef0ffa25b..a23ccab88 100644 --- a/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp +++ b/code/ryzom/server/src/entities_game_service/mission_manager/missions_commands.cpp @@ -1068,7 +1068,7 @@ NLMISC_COMMAND(accessPowo, "give access to the powo", " player_name number" sint32 cell; buildingPlayer->addUser(c, 0, ownerId, cell); // c->setPowoCell(cell); - CBuildingManager::getInstance()->setRoomLifeTime(cell, TGameCycle(NLMISC::TGameTime(4*60*60) / CTickEventHandler::getGameTimeStep())); +// CBuildingManager::getInstance()->setRoomLifeTime(cell, TGameCycle(NLMISC::TGameTime(4*60*60) / CTickEventHandler::getGameTimeStep())); log.displayNL("%d", cell); } } else { diff --git a/code/ryzom/server/src/entities_game_service/player_manager/character.cpp b/code/ryzom/server/src/entities_game_service/player_manager/character.cpp index 5234407c8..259a0fc6f 100644 --- a/code/ryzom/server/src/entities_game_service/player_manager/character.cpp +++ b/code/ryzom/server/src/entities_game_service/player_manager/character.cpp @@ -146,7 +146,6 @@ #include "modules/client_command_forwarder.h" #include "server_share/log_character_gen.h" #include "server_share/log_item_gen.h" -#include "server_share/mongo_wrapper.h" /////////// // USING // diff --git a/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp b/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp index 45734b609..1ae61dc96 100644 --- a/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp +++ b/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp @@ -842,7 +842,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) { // The client has neither been authenticated nor provided a user id, but is allowed to connect (dev mode) nlinfo ("%s using AutoAllocUserid", _CurrentInMsg->AddrFrom.asString().c_str() ); - string filename = CPath::standardizePath( SaveShardRoot.get() ) + CPath::standardizePath( IService::getInstance()->SaveFilesDirectory.get() ) + "auto_uid_map.bin"; + string filename = CPath::standardizePath( SaveShardRootGameShare.get() ) + CPath::standardizePath( IService::getInstance()->SaveFilesDirectory.get() ) + "auto_uid_map.bin"; // Get previously allocated user ids if ( _AutoUidMap.empty() ) diff --git a/code/ryzom/server/src/input_output_service/messages.cpp b/code/ryzom/server/src/input_output_service/messages.cpp index 3387cfecf..4af959590 100644 --- a/code/ryzom/server/src/input_output_service/messages.cpp +++ b/code/ryzom/server/src/input_output_service/messages.cpp @@ -45,9 +45,6 @@ extern CGenericXmlMsgHeaderManager GenericXmlMsgHeaderMngr; extern CVariable VerboseChatManagement; -typedef NLMISC::CTwinMap TChanTwinMap; -extern TChanTwinMap _ChanNames; - //----------------------------------------------- // cbImpulsionReadyString : @@ -1587,26 +1584,15 @@ void cbDynChatAddChan(CMessage& msgin, const string &serviceName, TServiceId ser bool noBroadcast; bool forwardInput; bool unify; - string name; msgin.serial(chanID); msgin.serial(noBroadcast); msgin.serial(forwardInput); msgin.serial(unify); - msgin.serial(name); - - nlinfo("cbDynChatAddChan: add channel : %s", name.c_str()); + nlinfo("cbDynChatAddChan: add channel"); bool res = IOS->getChatManager().getDynChat().addChan(chanID, noBroadcast, forwardInput, unify); - if (!res) - nlwarning("Couldn't add chan %s", chanID.toString().c_str()); - else - { - if (_ChanNames.getA(name) == NULL && _ChanNames.getB(chanID) == NULL) - _ChanNames.add(chanID, name); - else - nlwarning("Couldn't add chan %s. already added! %p %p", chanID.toString().c_str(), _ChanNames.getA(name), _ChanNames.getB(chanID)); - nlinfo("cbDynChatAddChan: add channel %s",chanID.toString().c_str()); - } + if (!res) nlwarning("Couldn't add chan %s", chanID.toString().c_str()); + else nlinfo("cbDynChatAddChan: add channel %s",chanID.toString().c_str()); } //----------------------------------------------- @@ -1816,23 +1802,7 @@ void cbDynChatSetHideBubble(CMessage& msgin, const string &serviceName, TService chan->HideBubble = hideBubble; } -void cbDynChatSetUniversalChannel(CMessage& msgin, const string &serviceName, TServiceId serviceId) -{ - TChanID chanID; - bool universalChannel; - - msgin.serial(chanID); - msgin.serial(universalChannel); - - CChatManager &cm = IOS->getChatManager(); - CDynChatChan *chan = cm.getDynChat().getChan(chanID); - if (!chan) - { - nlwarning("Unknown chan"); - return; - } - chan->UniversalChannel = universalChannel; -} + void cbDynChatServiceChat(CMessage& msgin, const string &serviceName, TServiceId serviceId) { @@ -2102,7 +2072,6 @@ TUnifiedCallbackItem CbIOSArray[]= { "DYN_CHAT:SERVICE_CHAT", cbDynChatServiceChat }, // a service send a chat message in the channel without sender id { "DYN_CHAT:SERVICE_TELL", cbDynChatServiceTell }, // a service send a chat message to a specific client in the channel without sender id { "DYN_CHAT:SET_HIDE_BUBBLE", cbDynChatSetHideBubble }, // a service send a chat message to a specific client in the channel without sender id - { "DYN_CHAT:SET_UNIVERSAL_CHANNEL", cbDynChatSetUniversalChannel }, //received from DSS { "REQUEST_DSR", cbRequestDsr}, // { "ADD_DM", cbAddDM }, // A character enter a ring session that he own diff --git a/code/ryzom/server/src/input_output_service/string_manager.cpp b/code/ryzom/server/src/input_output_service/string_manager.cpp index 56a351fea..1e1215594 100644 --- a/code/ryzom/server/src/input_output_service/string_manager.cpp +++ b/code/ryzom/server/src/input_output_service/string_manager.cpp @@ -246,60 +246,6 @@ void CStringManager::clearCache(NLMISC::CLog *log) -// load the values using the george sheet -void CStringManager::TSheetInfo::readGeorges (const NLMISC::CSmartPtr &form, const NLMISC::CSheetId &sheetId) -{ - if (form) - { - SheetName = sheetId.toString(); - - std::string ext = NLMISC::CSheetId::fileExtensionFromType(sheetId.getSheetType()); - - SheetName = SheetName.substr(0, SheetName.find(ext)); - // remove ending '.' - if (!SheetName.empty() && *SheetName.rbegin() == '.') - SheetName.resize(SheetName.size()-1); - - std::string gender; - - if (sheetId.getSheetType() == NLMISC::CSheetId::typeFromFileExtension("creature")) - { - form->getRootNode ().getValueByName (gender, "Basics.Gender"); - sint genderId; - NLMISC::fromString(gender, genderId); - Gender = GSGENDER::EGender(genderId); - - form->getRootNode ().getValueByName (Race, "Basics.Race"); - -// form->getRootNode ().getValueByName (DisplayName, "Basics.First Name"); -// std::string s; -// form->getRootNode ().getValueByName (s, "Basics.CharacterName"); -// if (!DisplayName.empty()) -// DisplayName+=' '; -// DisplayName+=s; - - form->getRootNode ().getValueByName (Profile, "Basics.Profile"); - form->getRootNode ().getValueByName (ChatProfile, "Basics.ChatProfile"); - } - else if (sheetId.getSheetType() == NLMISC::CSheetId::typeFromFileExtension("race_stats")) - { - form->getRootNode ().getValueByName (Race, "Race"); - } -/* else if (sheetId.getType() == NLMISC::CSheetId::typeFromFileExtension("sitem")) - { - // read any item specific data - } -*/ else - { - nlwarning("CStringManager::TEntityInfo : Do not know the type of the sheet '%s'.", sheetId.toString().c_str()); - return; - } - } -} - - - - const CStringManager::CEntityWords &CStringManager::getEntityWords(TLanguages lang, STRING_MANAGER::TParamType type) const { nlassert(lang < NB_LANGUAGES); From 245726f34778fae8776ffd9c2e361c32455adb23 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 6 Jan 2016 23:20:40 +0100 Subject: [PATCH 2/5] Changed: Don't need to use system API, NeL already has equivalent --HG-- branch : develop --- code/nel/tools/3d/ig_elevation/main.cpp | 137 +++++------------------- 1 file changed, 27 insertions(+), 110 deletions(-) diff --git a/code/nel/tools/3d/ig_elevation/main.cpp b/code/nel/tools/3d/ig_elevation/main.cpp index f44015873..a3f7dba5f 100644 --- a/code/nel/tools/3d/ig_elevation/main.cpp +++ b/code/nel/tools/3d/ig_elevation/main.cpp @@ -26,6 +26,7 @@ #include "nel/misc/config_file.h" #include "nel/misc/file.h" +#include "nel/misc/path.h" #include "nel/misc/bitmap.h" #include "nel/misc/block_memory.h" #include "nel/misc/i_xml.h" @@ -35,15 +36,6 @@ #include "nel/3d/scene_group.h" -#ifdef NL_OS_WINDOWS - #include -#else - #include /* for directories functions */ - #include - #include /* getcwd, chdir -- replacement for getCurDiretory & setCurDirectory on windows */ -#endif - - // --------------------------------------------------------------------------- using namespace std; @@ -132,75 +124,6 @@ struct CZoneLimits sint32 _ZoneMaxY; }; -// --------------------------------------------------------------------------- -#ifdef NL_OS_WINDOWS // win32 code -void dir (const string &sFilter, vector &sAllFiles, bool bFullPath) -{ - WIN32_FIND_DATA findData; - HANDLE hFind; - char sCurDir[MAX_PATH]; - sAllFiles.clear (); - GetCurrentDirectory (MAX_PATH, sCurDir); - hFind = FindFirstFile (("*"+sFilter).c_str(), &findData); - while (hFind != INVALID_HANDLE_VALUE) - { - DWORD res = GetFileAttributes(findData.cFileName); - if (res != INVALID_FILE_ATTRIBUTES && !(res&FILE_ATTRIBUTE_DIRECTORY)) - { - if (bFullPath) - sAllFiles.push_back(string(sCurDir) + "\\" + findData.cFileName); - else - sAllFiles.push_back(findData.cFileName); - } - if (FindNextFile (hFind, &findData) == 0) - break; - } - FindClose (hFind); -} - -void getcwd (char *dir, int length) -{ - GetCurrentDirectoryA (length, dir); -} - -void chdir(const char *path) -{ - SetCurrentDirectoryA (path); -} - -#else // posix version of the void dir(...) function. -void dir (const string &sFilter, vector &sAllFiles, bool bFullPath) -{ - char sCurDir[MAX_PATH]; - DIR* dp = NULL; - struct dirent *dirp= NULL; - - getcwd ( sCurDir, MAX_PATH ) ; - sAllFiles.clear (); - if ( (dp = opendir( sCurDir )) == NULL) - { - string sTmp = string("ERROR : Can't open the dir : \"")+string(sCurDir)+string("\"") ; - outString ( sTmp ) ; - return ; - } - - while ( (dirp = readdir(dp)) != NULL) - { - std:string sFileName = std::string(dirp->d_name) ; - if (sFileName.substr((sFileName.length()-sFilter.length()),sFilter.length()).find(sFilter)!= std::string::npos ) - { - if (bFullPath) - sAllFiles.push_back(string(sCurDir) + "/" + sFileName); - else - sAllFiles.push_back(sFileName); - } - - } - closedir(dp); -} -#endif - - // --------------------------------------------------------------------------- CZoneRegion *loadLand (const string &filename) { @@ -219,21 +142,19 @@ CZoneRegion *loadLand (const string &filename) } else { - string sTmp = string("Can't open the land file : ") + filename; - outString (sTmp); + outString (toString("Can't open the land files: %s", filename.c_str())); } } catch (const Exception& e) { - string sTmp = string("Error in land file : ") + e.what(); - outString (sTmp); + outString(toString("Error in land file: %s", e.what())); } return ZoneRegion; } // *************************************************************************** -CInstanceGroup* LoadInstanceGroup (const char* sFilename) +CInstanceGroup* LoadInstanceGroup (const std::string &sFilename) { CIFile file; CInstanceGroup *newIG = new CInstanceGroup; @@ -260,7 +181,7 @@ CInstanceGroup* LoadInstanceGroup (const char* sFilename) } // *************************************************************************** -void SaveInstanceGroup (const char* sFilename, CInstanceGroup *pIG) +void SaveInstanceGroup (const std::string &sFilename, CInstanceGroup *pIG) { COFile file; @@ -272,14 +193,12 @@ void SaveInstanceGroup (const char* sFilename, CInstanceGroup *pIG) } catch (const Exception &e) { - string stTmp = string(e.what()) ; - outString( stTmp ); + outString(e.what()); } } else { - string stTemp = string("Couldn't create ") + string(sFilename) ; - outString( stTemp ); + outString(toString("Couldn't create %s", sFilename.c_str())); } } @@ -325,8 +244,7 @@ int main(int nNbArg, char**ppArgs) new CApplicationContext(); NL3D_BlockMemoryAssertOnPurge = false; - char sCurDir[MAX_PATH]; - getcwd (sCurDir, MAX_PATH); + std::string sCurDir = CPath::getCurrentPath(); if (nNbArg != 2) { @@ -386,17 +304,14 @@ int main(int nNbArg, char**ppArgs) } else { - string sTmp = string("Couldn't not open ")+string(options.HeightMapFile1) - +string(" : heightmap 1 map ignored"); - outString(sTmp); + outString(toString("Couldn't not open %s: heightmap 1 map ignored", options.HeightMapFile1.c_str())); delete HeightMap1; HeightMap1 = NULL; } } catch (const Exception &e) { - string sTmp = string("Cant load height map : ") + options.HeightMapFile1 + " : " + e.what(); - outString (sTmp); + outString(toString("Cant load height map : %s : %s", options.HeightMapFile1.c_str(), e.what())); delete HeightMap1; HeightMap1 = NULL; } @@ -414,33 +329,37 @@ int main(int nNbArg, char**ppArgs) } else { - string sTmp = string("Couldn't not open ")+string(options.HeightMapFile2) - +string(" : heightmap 2 map ignored\n"); - outString(sTmp); + outString(toString("Couldn't not open %s: heightmap 2 map ignored", options.HeightMapFile2.c_str())); delete HeightMap2; HeightMap2 = NULL; } } catch (const Exception &e) { - string sTmp = string("Cant load height map : ") + options.HeightMapFile2 + " : " + e.what() + "\n"; - outString (sTmp); + outString (string("Cant load height map : ") + options.HeightMapFile2 + " : " + e.what() + "\n"); delete HeightMap2; HeightMap1 = NULL; } } - // Get all files + // get all files + vector vAllFilesUnfiltered; + CPath::getPathContent(options.InputIGDir, false, false, true, vAllFilesUnfiltered); + + // keep only .ig files vector vAllFiles; - chdir (options.InputIGDir.c_str()); - dir (".ig", vAllFiles, false); - chdir (sCurDir); + for(uint i = 0, len = (uint)vAllFilesUnfiltered.size(); i < len; ++i) + { + if (toLower(CFile::getExtension(vAllFilesUnfiltered[i])) == "ig") + { + vAllFiles.push_back(vAllFilesUnfiltered[i]); + } + } for (uint32 i = 0; i < vAllFiles.size(); ++i) { - chdir (options.InputIGDir.c_str()); - CInstanceGroup *pIG = LoadInstanceGroup (vAllFiles[i].c_str()); - chdir (sCurDir); + CInstanceGroup *pIG = LoadInstanceGroup (CPath::standardizePath(options.InputIGDir) + vAllFiles[i]); + if (pIG != NULL) { bool realTimeSunContribution = pIG->getRealTimeSunContribution(); @@ -511,10 +430,8 @@ int main(int nNbArg, char**ppArgs) pIGout->build (vGlobalPos, IA, Clusters, Portals, PLN); pIGout->enableRealTimeSunContribution(realTimeSunContribution); + SaveInstanceGroup (CPath::standardizePath(options.OutputIGDir) + vAllFiles[i], pIGout); - chdir (options.OutputIGDir.c_str()); - SaveInstanceGroup (vAllFiles[i].c_str(), pIGout); - chdir (sCurDir); delete pIG; } } From 59aff6a4bc087dab67b34a021a6d151d2a819f2b Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 6 Jan 2016 23:21:22 +0100 Subject: [PATCH 3/5] Changed: Added more fromString tests --HG-- branch : develop --- .../nel_unit_test/ut_misc_string_common.h | 322 ++++++++++++++++++ 1 file changed, 322 insertions(+) diff --git a/code/nel/tools/nel_unit_test/ut_misc_string_common.h b/code/nel/tools/nel_unit_test/ut_misc_string_common.h index a1833ac16..43bfb76e1 100644 --- a/code/nel/tools/nel_unit_test/ut_misc_string_common.h +++ b/code/nel/tools/nel_unit_test/ut_misc_string_common.h @@ -29,6 +29,12 @@ struct CUTMiscStringCommon : public Test::Suite TEST_ADD(CUTMiscStringCommon::fromStringUint16); TEST_ADD(CUTMiscStringCommon::fromStringSint32); TEST_ADD(CUTMiscStringCommon::fromStringUint32); + TEST_ADD(CUTMiscStringCommon::fromStringSint64); + TEST_ADD(CUTMiscStringCommon::fromStringUint64); + TEST_ADD(CUTMiscStringCommon::fromStringFloat); + TEST_ADD(CUTMiscStringCommon::fromStringDouble); + TEST_ADD(CUTMiscStringCommon::fromStringBool); + // Add a line here when adding a new test METHOD } @@ -403,6 +409,322 @@ struct CUTMiscStringCommon : public Test::Suite ret = NLMISC::fromString("+1", val); TEST_ASSERT(ret && val == 1); } + + void fromStringSint64() + { + bool ret; + + // tests for sint64 + sint64 val; + + // positive value + ret = NLMISC::fromString("1", val); + TEST_ASSERT(ret && val == 1); + + // negative value + ret = NLMISC::fromString("-1", val); + TEST_ASSERT(ret && val == -1); + + // bad character + ret = NLMISC::fromString("a", val); + TEST_ASSERT(!ret && val == 0); + + // right character and bad character + ret = NLMISC::fromString("1a", val); + TEST_ASSERT(ret && val == 1); + + // min limit + ret = NLMISC::fromString("-9223372036854775808", val); + TEST_ASSERT(ret && val == LLONG_MIN); + + // max limit + ret = NLMISC::fromString("9223372036854775807", val); + TEST_ASSERT(ret && val == LLONG_MAX); + + // min limit -1 + ret = NLMISC::fromString("-9223372036854775809", val); + TEST_ASSERT(!ret && val == 0); + + // max limit +1 + ret = NLMISC::fromString("9223372036854775808", val); + TEST_ASSERT(!ret && val == 0); + + // with period + ret = NLMISC::fromString("1.2", val); + TEST_ASSERT(ret && val == 1); + + // with coma + ret = NLMISC::fromString("1,2", val); + TEST_ASSERT(ret && val == 1); + + // with spaces before + ret = NLMISC::fromString(" 10", val); + TEST_ASSERT(ret && val == 10); + + // with spaces after + ret = NLMISC::fromString("10 ", val); + TEST_ASSERT(ret && val == 10); + + // with 0s before + ret = NLMISC::fromString("001", val); + TEST_ASSERT(ret && val == 1); + + // with + before + ret = NLMISC::fromString("+1", val); + TEST_ASSERT(ret && val == 1); + } + + void fromStringUint64() + { + bool ret; + + // tests for uint64 + uint64 val; + + // positive value + ret = NLMISC::fromString("1", val); + TEST_ASSERT(ret && val == 1); + + // bad character + ret = NLMISC::fromString("a", val); + TEST_ASSERT(!ret && val == 0); + + // right character and bad character + ret = NLMISC::fromString("1a", val); + TEST_ASSERT(ret && val == 1); + + // min limit + ret = NLMISC::fromString("0", val); + TEST_ASSERT(ret && val == 0); + + // max limit + ret = NLMISC::fromString("4294967295", val); + TEST_ASSERT(ret && val == 4294967295); + + // min limit -1 + ret = NLMISC::fromString("-1", val); + TEST_ASSERT(!ret && val == 0); + + // max limit +1 + ret = NLMISC::fromString("4294967296", val); + TEST_ASSERT(!ret && val == 0); + + // with period + ret = NLMISC::fromString("1.2", val); + TEST_ASSERT(ret && val == 1); + + // with coma + ret = NLMISC::fromString("1,2", val); + TEST_ASSERT(ret && val == 1); + + // with spaces before + ret = NLMISC::fromString(" 10", val); + TEST_ASSERT(ret && val == 10); + + // with spaces after + ret = NLMISC::fromString("10 ", val); + TEST_ASSERT(ret && val == 10); + + // with 0s before + ret = NLMISC::fromString("001", val); + TEST_ASSERT(ret && val == 1); + + // with + before + ret = NLMISC::fromString("+1", val); + TEST_ASSERT(ret && val == 1); + } + + void fromStringFloat() + { + bool ret; + + // tests for float + float val; + + // positive value + ret = NLMISC::fromString("1", val); + TEST_ASSERT(ret && val == 1); + + // negative value + ret = NLMISC::fromString("-1", val); + TEST_ASSERT(ret && val == -1); + + // bad character + ret = NLMISC::fromString("a", val); + TEST_ASSERT(!ret && val == 0); + + // right character and bad character + ret = NLMISC::fromString("1a", val); + TEST_ASSERT(ret && val == 1); + + // min limit + ret = NLMISC::fromString("-2147483648", val); + TEST_ASSERT(ret && val == INT_MIN); + + // max limit + ret = NLMISC::fromString("2147483647", val); + TEST_ASSERT(ret && val == INT_MAX); + + // min limit -1 + ret = NLMISC::fromString("-2147483649", val); + TEST_ASSERT(!ret && val == 0); + + // max limit +1 + ret = NLMISC::fromString("2147483648", val); + TEST_ASSERT(!ret && val == 0); + + // with period + ret = NLMISC::fromString("1.2", val); + TEST_ASSERT(ret && val == 1); + + // with coma + ret = NLMISC::fromString("1,2", val); + TEST_ASSERT(ret && val == 1); + + // with spaces before + ret = NLMISC::fromString(" 10", val); + TEST_ASSERT(ret && val == 10); + + // with spaces after + ret = NLMISC::fromString("10 ", val); + TEST_ASSERT(ret && val == 10); + + // with 0s before + ret = NLMISC::fromString("001", val); + TEST_ASSERT(ret && val == 1); + + // with + before + ret = NLMISC::fromString("+1", val); + TEST_ASSERT(ret && val == 1); + } + + void fromStringDouble() + { + bool ret; + + // tests for double + double val; + + // positive value + ret = NLMISC::fromString("1", val); + TEST_ASSERT(ret && val == 1.0); + + // negative value + ret = NLMISC::fromString("-1", val); + TEST_ASSERT(ret && val == -1.0); + + // bad character + ret = NLMISC::fromString("a", val); + TEST_ASSERT(!ret && val == 0); + + // right character and bad character + ret = NLMISC::fromString("1a", val); + TEST_ASSERT(ret && val == 1.0); + + // min limit + ret = NLMISC::fromString("2.2250738585072014e-308", val); + TEST_ASSERT(ret && val == DBL_MIN); + + // max limit + ret = NLMISC::fromString("1.7976931348623158e+308", val); + TEST_ASSERT(ret && val == DBL_MAX); + + // min limit -1 + ret = NLMISC::fromString("3e-408", val); + TEST_ASSERT(!ret && val == 0.0); + + // max limit +1 + ret = NLMISC::fromString("2e+308", val); + TEST_ASSERT(!ret && val == 0.0); + + // with period + ret = NLMISC::fromString("1.2", val); + TEST_ASSERT(ret && val == 1.2); + + // with coma + ret = NLMISC::fromString("1,2", val); + TEST_ASSERT(ret && val == 1.0); + + // with spaces before + ret = NLMISC::fromString(" 10", val); + TEST_ASSERT(ret && val == 10.0); + + // with spaces after + ret = NLMISC::fromString("10 ", val); + TEST_ASSERT(ret && val == 10.0); + + // with 0s before + ret = NLMISC::fromString("001", val); + TEST_ASSERT(ret && val == 1.0); + + // with + before + ret = NLMISC::fromString("+1", val); + TEST_ASSERT(ret && val == 1.0); + } + + void fromStringBool() + { + bool ret; + + // tests for bool + bool val; + + // true value + ret = NLMISC::fromString("1", val); + TEST_ASSERT(ret && val); + + // false value + ret = NLMISC::fromString("0", val); + TEST_ASSERT(ret && !val); + + // bad character + ret = NLMISC::fromString("a", val); + TEST_ASSERT(!ret && val); + + // right character and bad character + ret = NLMISC::fromString("1a", val); + TEST_ASSERT(!ret && val); + + // min limit + ret = NLMISC::fromString("-2147483648", val); + TEST_ASSERT(!ret && val); + + // max limit + ret = NLMISC::fromString("2147483647", val); + TEST_ASSERT(!ret && val); + + // min limit -1 + ret = NLMISC::fromString("-2147483649", val); + TEST_ASSERT(!ret && val); + + // max limit +1 + ret = NLMISC::fromString("2147483648", val); + TEST_ASSERT(!ret && val); + + // with period + ret = NLMISC::fromString("1.2", val); + TEST_ASSERT(!ret && val); + + // with coma + ret = NLMISC::fromString("1,2", val); + TEST_ASSERT(!ret && val); + + // with spaces before + ret = NLMISC::fromString(" 10", val); + TEST_ASSERT(!ret && val); + + // with spaces after + ret = NLMISC::fromString("10 ", val); + TEST_ASSERT(!ret && val); + + // with 0s before + ret = NLMISC::fromString("001", val); + TEST_ASSERT(!ret && val); + + // with + before + ret = NLMISC::fromString("+1", val); + TEST_ASSERT(!ret && val); + } }; #endif From 76dece0ec2205424ae383ef7f8c8e2488632e887 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 6 Jan 2016 23:21:38 +0100 Subject: [PATCH 4/5] Changed: Minor changes --HG-- branch : develop --- .../src/frontend_service/fe_receive_sub.cpp | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp b/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp index 1ae61dc96..3968dbb64 100644 --- a/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp +++ b/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp @@ -137,7 +137,7 @@ void CFeReceiveSub::init( uint16 firstAcceptableFrontendPort, uint16 lastAccepta _CurrentInMsg = new TReceivedMessage(); _History = history; - + _ClientIdCont = clientidcont; _ClientIdCont->resize( MaxNbClients+1 ); // because the client ids start at 1 TClientIdCont::iterator iclient; @@ -326,7 +326,7 @@ void CFeReceiveSub::handleIncomingMsg() //nldebug( "FERECV: Handling incoming message" ); - // Retrieve client info or add one + // Retrieve client info or add one THostMap::iterator ihm = _ClientMap.find( _CurrentInMsg->AddrFrom ); if ( ihm == _ClientMap.end() ) { @@ -348,7 +348,7 @@ void CFeReceiveSub::handleIncomingMsg() { // Remove client nlinfo( "FERECV: Disc event for client %u", GETCLIENTA(ihm)->clientId() ); - removeFromRemoveList(GETCLIENTA(ihm)->clientId() ); + removeFromRemoveList(GETCLIENTA(ihm)->clientId() ); removeClientById( GETCLIENTA(ihm)->clientId() ); // Do not call handleReceivedMsg() @@ -398,7 +398,7 @@ CClientHost *CFeReceiveSub::addClient( const NLNET::CInetAddress& addrfrom, TUid } CClientHost *clienthost; - + // Create client object and add it into the client map TClientId clientid = _ClientIdPool.getNewClientId(); if ( clientid == InvalidClientId ) @@ -425,7 +425,7 @@ CClientHost *CFeReceiveSub::addClient( const NLNET::CInetAddress& addrfrom, TUid { nlwarning( "Problem: Inserted twice the same address in the client map" ); - + } MEM_DELTA_MULTI2_MID(Client,AfterInsertClient); // 24 CFrontEndService::instance()->PrioSub.VisionProvider.DistanceSpreader.notifyClientAddition( cmPreviousEnd ); @@ -491,7 +491,7 @@ CClientHost *CFeReceiveSub::addClient( const NLNET::CInetAddress& addrfrom, TUid // The client object will be removed when the client exits return NULL; } - + MEM_DELTA_MULTI2_MID(Client,AfterSendCLConnect); TClientId mon = CFrontEndService::instance()->MonitoredClient; if ( mon != 0 && clientid == mon ) @@ -654,7 +654,7 @@ void CFeReceiveSub::doRemoveClient( CClientHost *client, bool crashed ) //if( ! findInReconnectList( client->Uid ) ) //nldebug( "disconnecting client %d from login service", client->clientId() ); CLoginServer::clientDisconnected( client->Uid ); - + } CFrontEndService::instance()->sendSub()->disableSendBuffer( client->clientId() ); @@ -732,7 +732,7 @@ void CFeReceiveSub::freeIdsOfRemovedClients() { MEM_DELTA_MULTI2(RemClient,FreeIdsOfRemovedClients); CClientHost *clienthost = *ic; - + // Display info nlinfo( "FE: Freeing client %u (%s)", clienthost->clientId(), clienthost->address().asString().c_str() ); clienthost->displayClientProperties( false ); @@ -740,7 +740,7 @@ void CFeReceiveSub::freeIdsOfRemovedClients() // Reset vision and links in tables clienthost->resetClientVision(); removeClientLinks( clienthost ); - + // Remove all about the client and delete object deleteClient( clienthost ); @@ -778,7 +778,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) //nlinfo( "currentsize: %u", currentsize ); memcpy( Msgin.bufferToFill( currentsize ), _CurrentInMsg->userDataR(), currentsize ); - + try { uint32 receivednumber; @@ -844,7 +844,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) nlinfo ("%s using AutoAllocUserid", _CurrentInMsg->AddrFrom.asString().c_str() ); string filename = CPath::standardizePath( SaveShardRootGameShare.get() ) + CPath::standardizePath( IService::getInstance()->SaveFilesDirectory.get() ) + "auto_uid_map.bin"; - // Get previously allocated user ids + // Get previously allocated user ids if ( _AutoUidMap.empty() ) { // Load from file @@ -858,7 +858,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) { nlinfo( "No AutoAllocUserid data found yet" ); } - + // Init CurrentAutoAllocUserid TUid maxUid = 0; for ( TAutoUidMap::const_iterator itaum=_AutoUidMap.begin(); itaum!=_AutoUidMap.end(); ++itaum ) @@ -868,7 +868,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) } CurrentAutoAllocUserid = std::max( BaseAutoAllocUserid, maxUid + 1 ); } - + // Look up the address TAutoUidMap::iterator itaum = _AutoUidMap.find( _CurrentInMsg->AddrFrom.internalIPAddress() ); if ( itaum != _AutoUidMap.end() ) @@ -888,7 +888,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) do { uid = CurrentAutoAllocUserid++; } while ( findClientHostByUid( uid ) != NULL ); _AutoUidMap.insert( std::make_pair( _CurrentInMsg->AddrFrom.internalIPAddress(), uid ) ); - + } // Save the allocated user ids @@ -946,7 +946,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) computeStats( clienthost, receivednumber, currentsize, false ); nlinfo( "FERECV: Client %u is disconnecting", clienthost->clientId() ); - removeFromRemoveList( clienthost->clientId() ); + removeFromRemoveList( clienthost->clientId() ); // false because the client, in this case, didn't crashed removeClientById( clienthost->clientId(), false ); // actions are automatically removed when deleting blocks @@ -955,7 +955,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) if (code == SYSTEM_QUIT_CODE) { - H_AUTO(SystemQuitCode); + H_AUTO(SystemQuitCode); uint32 quitId; Msgin.serialAndLog1(quitId); @@ -1027,7 +1027,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) // } // } - H_AUTO(SwitchConnectionState); + H_AUTO(SwitchConnectionState); switch (clienthost->ConnectionState) { case CClientHost::Synchronize: @@ -1198,7 +1198,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) { // actions are automatically removed when deleting blocks nlinfo( "FERECV: Client %u is disconnecting", clienthost->clientId() ); - removeFromRemoveList( clienthost->clientId() ); + removeFromRemoveList( clienthost->clientId() ); removeClientById( clienthost->clientId() ); // Make stats and set client's receive number // only acknowledge packet number for good normal messages @@ -1417,7 +1417,7 @@ void CFeReceiveSub::handleReceivedMsg( CClientHost *clienthost ) //nlinfo("FERECV: received packet %d from client %d (%d actions decoded): %s", receivednumber, clienthost->clientId(), numActions, debugcat); - // warning: actions in CActionBlock are automatically removed when deleting block + // warning: actions in CActionBlock are automatically removed when deleting block } From d494f00ab6d37ef8030195974beac8ff66edde63 Mon Sep 17 00:00:00 2001 From: kervala Date: Wed, 6 Jan 2016 23:22:01 +0100 Subject: [PATCH 5/5] Fixed: Compilation with dynamic version of Qt 5 --HG-- branch : develop --- code/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index 1e82448fd..25e64db27 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -371,6 +371,10 @@ IF(WITH_QT5) ENDIF() ELSE() SET(QT_LIBRARIES Qt5::Widgets Qt5::Network Qt5::Xml Qt5::Gui Qt5::OpenGL Qt5::Core) + + IF(WIN32) + SET(QT_LIBRARIES ${QT_LIBRARIES} Qt5::WinExtras) + ENDIF() ENDIF() ELSE() MESSAGE(WARNING "Unable to find Qt 5")