egs_crash_2.patch
b/code/ryzom/common/src/game_share/_backup_service_interface_singleton.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
49 | 49 |
// method used to update stuff on config file reload / variable change |
50 | 50 |
void onSaveShardRootModified( NLMISC::IVariable &var ); |
51 | 51 |
// configuration variables - to be setup in cfg files |
52 |
CVariable<string> SaveShardRoot("variables", "SaveShardRoot", "Root directory of all files saved by any shard", "", 0, true, onSaveShardRootModified, false);
|
|
52 |
CVariable<string> GSSaveShardRoot("variables", "GSSaveShardRoot", "Root directory of all files saved by any shard", "", 0, true, onSaveShardRootModified, false);
|
|
53 | 53 |
|
54 | 54 |
// stats variables |
55 | 55 |
CVariable<NLMISC::TTime> BSLastAckTime("BSIF", "BSLastAckTime", "The timestamp of the last ack received from backup system", 0, 0, true); |
... | ... | |
103 | 103 |
|
104 | 104 |
_ShardDependentBsi.init("BS"); |
105 | 105 |
_ShardDependentBsi.setRemotePath( IService::getInstance()->SaveFilesDirectory.toString() ); |
106 |
_ShardDependentBsi.setLocalPath( CPath::standardizePath( SaveShardRoot.get() ) + IService::getInstance()->SaveFilesDirectory.toString() ); |
|
106 |
_ShardDependentBsi.setLocalPath( CPath::standardizePath( GSSaveShardRoot.get() ) + IService::getInstance()->SaveFilesDirectory.toString() );
|
|
107 | 107 |
|
108 | 108 |
_GlobalBsi.init("BS"); |
109 | 109 |
_GlobalBsi.setRemotePath( string() ); |
110 |
_GlobalBsi.setLocalPath( SaveShardRoot.get() ); |
|
110 |
_GlobalBsi.setLocalPath( GSSaveShardRoot.get() );
|
|
111 | 111 |
|
112 | 112 |
// _PDBsi.init("PDBS"); |
113 | 113 |
// _PDBsi.setRemotePath( IService::getInstance()->SaveFilesDirectory.toString() ); |
... | ... | |
357 | 357 |
if ( var.getName() == "SaveFilesDirectory" ) |
358 | 358 |
{ |
359 | 359 |
_ShardDependentBsi.setRemotePath( var.toString() ); |
360 |
_ShardDependentBsi.setLocalPath( CPath::standardizePath( SaveShardRoot.get() ) + var.toString() ); |
|
360 |
_ShardDependentBsi.setLocalPath( CPath::standardizePath( GSSaveShardRoot.get() ) + var.toString() );
|
|
361 | 361 |
// _PDBsi.setRemotePath( var.toString() ); |
362 | 362 |
// _PDBsi.setLocalPath( CPath::standardizePath( SaveShardRoot.get() ) + var.toString() ); |
363 | 363 |
} |
b/code/ryzom/common/src/game_share/server_edition_module.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
96 | 96 |
CVariable<uint32> TimeBeforeAutoCloseAnimationSessionWithNoPlayer("DSS", "TimeBeforeAutoCloseAnimationSessionWithNoPlayer", "Delay in secondes before a empty animation session is closed", 15*60, 0, true); |
97 | 97 |
|
98 | 98 |
CVariable<std::string> DefaultCharRingAccess( "DSS", "DefaultCharRingAccess", "Default Access Ring for player eg 'f1:j1:l1:d1:p1:g1:a1:'", "a1", 0, true ); |
99 |
CVariable<bool> DontUseSU( "DSS", "DontUseSU", "Simulate the SU", false, 0, true );
|
|
99 |
CVariable<bool> DSSDontUseSU( "DSS", "DSSDontUseSU", "Simulate the SU", false, 0, true );
|
|
100 | 100 |
|
101 | 101 |
CVariable<bool> AcceptScenarioWithoutHeader("DSS", "AcceptScenarioWithoutHeader", "AcceptScenarioWithoutHeader", false, 0, true); |
102 | 102 |
CVariable<bool> MustVerifyRingAccessWhileLoadingAnimation("DSS", "MustVerifyRingAccessWhileLoadingAnimation", "MustVerifyRingAccessWhileLoadingAnimation", false, 0, true); |
... | ... | |
1205 | 1205 |
return; |
1206 | 1206 |
} |
1207 | 1207 |
|
1208 |
if (DontUseSU) |
|
1208 |
if (DSSDontUseSU)
|
|
1209 | 1209 |
{ |
1210 | 1210 |
TCharId charId = static_cast<TCharId>(clientEid.getShortId()); |
1211 | 1211 |
CEditionSession* editionSession = getSessionByCharId(charId); |
b/code/ryzom/server/src/ai_service/ai_script_data_manager.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
97 | 97 |
} |
98 | 98 |
|
99 | 99 |
|
100 |
CVariable<string> SaveShardRoot2("variables", "SaveShardRoot2", "Root directory of all saved data by any shard", "/home/nevrax/save_shard", 0, true, cbOnSaveShardRootModified); // (SaveShardRoot from game_share/backup_service_interface.cpp is not instanciated because nothing is used from that file)
|
|
100 |
CVariable<string> AISSaveShardRoot("variables", "AISSaveShardRoot", "Root directory of all saved data by any shard", "/home/nevrax/save_shard", 0, true, cbOnSaveShardRootModified); // (SaveShardRoot from game_share/backup_service_interface.cpp is not instanciated because nothing is used from that file)
|
|
101 | 101 |
CVariable<string> PdrFilename("ai", "PdrFilename", "Pdr file containing AIScript variables", string("ai_persistent_var.pdr"), 0, true); |
102 | 102 |
|
103 | 103 |
|
... | ... | |
173 | 173 |
|
174 | 174 |
std::string CAIScriptDataManager::dirname() |
175 | 175 |
{ |
176 |
return SaveShardRoot2.get()+"/"+IService::getInstance()->SaveFilesDirectory.toString()+"/ai_script_data";
|
|
176 |
return AISSaveShardRoot.get()+"/"+IService::getInstance()->SaveFilesDirectory.toString()+"/ai_script_data";
|
|
177 | 177 |
} |
178 | 178 |
|
179 | 179 |
//CConfigFile* CAIScriptDataManager::createFile(string name) |
b/code/ryzom/server/src/backup_service/backup_file_access.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
36 | 36 |
NLMISC::CVariable<bool> VerboseLog("backup", "VerboseLog", "Activate verbose logging of BS activity", false); |
37 | 37 |
NLMISC::CVariable<bool> UseTempFile("backup", "UseTempFile", "Flag the use of temporary file for safe write or append operation", true, true); |
38 | 38 |
|
39 |
extern NLMISC::CVariable<std::string> SaveShardRoot; |
|
39 |
extern NLMISC::CVariable<std::string> BSSaveShardRoot;
|
|
40 | 40 |
|
41 | 41 |
bool bsstrincmp(const char* s1, const char* s2, int n) |
42 | 42 |
{ |
... | ... | |
48 | 48 |
|
49 | 49 |
std::string getBackupFileName(const std::string& filename) |
50 | 50 |
{ |
51 |
return SaveShardRoot.get() + filename; |
|
51 |
return BSSaveShardRoot.get() + filename;
|
|
52 | 52 |
/* // BSFilePrefix and BSFileSubst are deprecated |
53 | 53 |
if (BSFilePrefix.get().empty()) |
54 | 54 |
return filename; |
b/code/ryzom/server/src/backup_service/backup_service.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
60 | 60 |
|
61 | 61 |
|
62 | 62 |
extern CDirectoryRateStat DirStats; |
63 |
extern NLMISC::CVariable<std::string> SaveShardRoot; |
|
63 |
extern NLMISC::CVariable<std::string> BSSaveShardRoot;
|
|
64 | 64 |
|
65 | 65 |
using namespace NLNET; |
66 | 66 |
using namespace NLMISC; |
... | ... | |
537 | 537 |
} |
538 | 538 |
} |
539 | 539 |
// In case something like getPathContent() has returned full paths, make paths relative to match the requested filenames |
540 |
fdc.stripFilename(SaveShardRoot.get()); |
|
540 |
fdc.stripFilename(BSSaveShardRoot.get());
|
|
541 | 541 |
|
542 | 542 |
// compose the output message |
543 | 543 |
CMessage msgout("BS_FILE_CLASS"); |
b/code/ryzom/server/src/backup_service/commands.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
30 | 30 |
|
31 | 31 |
CDirectoryRateStat DirStats; |
32 | 32 |
|
33 |
extern CVariable<string> SaveShardRoot; |
|
33 |
extern CVariable<string> BSSaveShardRoot;
|
|
34 | 34 |
|
35 | 35 |
|
36 | 36 |
NLMISC_COMMAND(displayFileStats, "display file read/write stats for the last minute", "") |
... | ... | |
74 | 74 |
{ |
75 | 75 |
// just output the list of available shard id |
76 | 76 |
vector<string> shards; |
77 |
CPath::getPathContent(SaveShardRoot, false, true, false, shards); |
|
77 |
CPath::getPathContent(BSSaveShardRoot, false, true, false, shards);
|
|
78 | 78 |
|
79 |
log.displayNL("Listing %u available shard id in path '%s':", shards.size(), SaveShardRoot.c_str()); |
|
79 |
log.displayNL("Listing %u available shard id in path '%s':", shards.size(), BSSaveShardRoot.c_str());
|
|
80 | 80 |
for (uint i=0; i<shards.size(); ++i) |
81 | 81 |
{ |
82 | 82 |
string id = shards[i]; |
... | ... | |
107 | 107 |
useFilter = true; |
108 | 108 |
} |
109 | 109 |
|
110 |
string fileName = SaveShardRoot.toString()+"/"+args[0]+"/characters/account_"+args[1]+"_"+args[2]+"_pdr.bin"; |
|
110 |
string fileName = BSSaveShardRoot.toString()+"/"+args[0]+"/characters/account_"+args[1]+"_"+args[2]+"_pdr.bin";
|
|
111 | 111 |
if (!CFile::isExists(fileName)) |
112 | 112 |
{ |
113 | 113 |
log.displayNL("The file '%s' (located here '%s') cannot be found in '%s' backup directory", |
b/code/ryzom/server/src/backup_service/web_connection.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
169 | 169 |
} |
170 | 170 |
|
171 | 171 |
CVariable<string> IncrementalBackupDirectory("backup", "IncrementalBackupDirectory", "Directory to find incremental backuped archives", "", 0, true); |
172 |
CVariable<string> SaveShardRoot("backup", "SaveShardRoot", "Root directory of all saved data by BS", "/home/nevrax/save_shard", 0, true, cbOnSaveShardRootModified); // (SaveShardRoot from game_share/backup_service_interface.cpp is not instanciated because the nothing is used from that file)
|
|
172 |
CVariable<string> BSSaveShardRoot("backup", "BSSaveShardRoot", "Root directory of all saved data by BS", "/home/nevrax/save_shard", 0, true, cbOnSaveShardRootModified); // (SaveShardRoot from game_share/backup_service_interface.cpp is not instanciated because the nothing is used from that file)
|
|
173 | 173 |
CVariable<string> SaveTemplatePath("backup", "SaveTemplatePath", "Directory to find saves (with shard and account replacement strings)", "$shard/characters/account_$userid_$charid$ext", 0, true); |
174 | 174 |
CVariable<string> SaveExtList("backup", "SaveExtList", "List of possible extensions for save files (space separated)", "_pdr.bin _pdr.xml .bin", 0, true); |
175 | 175 |
|
... | ... | |
209 | 209 |
explode(str, string("%%"), params, true); |
210 | 210 |
|
211 | 211 |
string incrementalDir = IncrementalBackupDirectory; |
212 |
string saveShardRoot = SaveShardRoot; |
|
212 |
string saveShardRoot = BSSaveShardRoot;
|
|
213 | 213 |
string templatePath = SaveTemplatePath; |
214 | 214 |
string extList = SaveExtList; |
215 | 215 |
|
... | ... | |
292 | 292 |
|
293 | 293 |
explode(str, string("%%"), params, true); |
294 | 294 |
|
295 |
string saveShardRoot = SaveShardRoot; |
|
295 |
string saveShardRoot = BSSaveShardRoot;
|
|
296 | 296 |
string templatePath = SaveTemplatePath; |
297 | 297 |
|
298 | 298 |
string shard; |
... | ... | |
367 | 367 |
|
368 | 368 |
explode(str, string("%%"), params, true); |
369 | 369 |
|
370 |
string saveShardRoot = SaveShardRoot; |
|
370 |
string saveShardRoot = BSSaveShardRoot;
|
|
371 | 371 |
string templatePath = SaveTemplatePath; |
372 | 372 |
string extList = SaveExtList; |
373 | 373 |
|
b/code/ryzom/server/src/entities_game_service/entity_manager/entity_callbacks.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
106 | 106 |
|
107 | 107 |
extern vector<CMainlandSummary> Mainlands; |
108 | 108 |
|
109 |
extern CVariable<bool> DontUseSU; |
|
109 |
extern CVariable<bool> EGSDontUseSU;
|
|
110 | 110 |
|
111 | 111 |
// For shard names |
112 | 112 |
extern NLMISC::CVariable<uint32> FixedSessionId; |
... | ... | |
1011 | 1011 |
goto CreationFailed; |
1012 | 1012 |
} |
1013 | 1013 |
|
1014 |
if( DontUseSU.get() == 0) |
|
1014 |
if( EGSDontUseSU.get() == 0)
|
|
1015 | 1015 |
{ |
1016 | 1016 |
IShardUnifierEvent::getInstance()->validateCharacterCreation(userId, createCharMsg.Slot, createCharMsg); |
1017 | 1017 |
} |
b/code/ryzom/server/src/entities_game_service/guild_manager/guild_manager.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
55 | 55 |
extern bool IOSIsUp; |
56 | 56 |
extern CGenericXmlMsgHeaderManager GenericMsgManager; |
57 | 57 |
extern CVariable<uint32> AllowCharsFromAllSessions; |
58 |
extern CVariable<bool> DontUseSU; |
|
58 |
extern CVariable<bool> EGSDontUseSU;
|
|
59 | 59 |
|
60 | 60 |
CGuildManager* CGuildManager::_Instance = NULL; |
61 | 61 |
|
... | ... | |
1367 | 1367 |
|
1368 | 1368 |
// Send the guild list to SU to synchronize the ring database and name manager |
1369 | 1369 |
// (and eventualy rename some conflicting guilds) |
1370 |
if (DontUseSU.get() == 0) |
|
1370 |
if (EGSDontUseSU.get() == 0)
|
|
1371 | 1371 |
{ |
1372 | 1372 |
std::vector<CHARSYNC::CGuildInfo> guildInfos; |
1373 | 1373 |
|
... | ... | |
1388 | 1388 |
_GuildLoaded = true; |
1389 | 1389 |
|
1390 | 1390 |
// check guild member list against the eid translator |
1391 |
if ((DontUseSU.get() == 0) && IShardUnifierEvent::getInstance()->isEidTranslatorInitilazed()) |
|
1391 |
if ((EGSDontUseSU.get() == 0) && IShardUnifierEvent::getInstance()->isEidTranslatorInitilazed())
|
|
1392 | 1392 |
{ |
1393 | 1393 |
checkGuildMemberLists(); |
1394 | 1394 |
} |
b/code/ryzom/server/src/entities_game_service/modules/shard_unifier_client.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
54 | 54 |
|
55 | 55 |
extern NLMISC::CVariable<uint32> FixedSessionId; |
56 | 56 |
|
57 |
CVariable<bool> DontUseSU( "su", "DontUseSU", "If 1, allow running a shard with no Shard Unifier Service", 0, 0, 1 );
|
|
57 |
CVariable<bool> EGSDontUseSU( "su", "EGSDontUseSU", "If 1, allow running a shard with no Shard Unifier Service", 0, 0, 1 );
|
|
58 | 58 |
CVariable<bool> SimulateCharacterHasEditSession( "su", "SimulateCharacterHasEditSession", "If 1 simulate that character have alreay an edition sessiion", 0, 0, 1 ); |
59 | 59 |
|
60 | 60 |
|
... | ... | |
662 | 662 |
|
663 | 663 |
virtual void validateCharacterNameBeforeCreate(uint32 userId, uint8 charIndex, const ucstring &name, uint32 homeSessionId) |
664 | 664 |
{ |
665 |
if (DontUseSU.get() == 1) |
|
665 |
if (EGSDontUseSU.get() == 1)
|
|
666 | 666 |
{ |
667 | 667 |
// send the response to the client |
668 | 668 |
sendIfNameIsValide( userId, true ); |
... | ... | |
694 | 694 |
|
695 | 695 |
virtual bool validateCharacterCreation (uint32 userId, uint8 charIndex, const CCreateCharMsg &createCharMsg) |
696 | 696 |
{ |
697 |
if (DontUseSU.get() == 1) |
|
697 |
if (EGSDontUseSU.get() == 1)
|
|
698 | 698 |
{ |
699 | 699 |
cbCreateChar_part2(userId, createCharMsg, true); |
700 | 700 |
return true; |
701 | 701 |
} |
702 | 702 |
|
703 | 703 |
// send a name assignment to SU name unifier |
704 |
if ((_CharacterSynch == NULL) && (DontUseSU.get() == 0)) |
|
704 |
if ((_CharacterSynch == NULL) && (EGSDontUseSU.get() == 0))
|
|
705 | 705 |
{ |
706 | 706 |
nlinfo("VALID_NAME::SU::validateCharacterCreation name %s rejected because we have no character sync to validate the name with using SU", createCharMsg.Name.toString().c_str()); |
707 | 707 |
return false; |
b/code/ryzom/server/src/frontend_service/fe_receive_sub.cpp Wed Oct 06 11:56:21 2010 +0200 | ||
---|---|---|
75 | 75 |
void cbGwTrDisconnection ( TClientId clientId ); |
76 | 76 |
|
77 | 77 |
|
78 |
CVariable<string> SaveShardRoot("variables", "SaveShardRoot", "Root directory of all files saved by any shard", "", 0, true, NULL, false);
|
|
78 |
CVariable<string> FESSaveShardRoot("variables", "FESSaveShardRoot", "Root directory of all files saved by any shard", "", 0, true, NULL, false);
|
|
79 | 79 |
extern CVariable<bool> VerboseFEStatsTime; |
80 | 80 |
|
81 | 81 |
|
... | ... | |
842 | 842 |
{ |
843 | 843 |
// The client has neither been authenticated nor provided a user id, but is allowed to connect (dev mode) |
844 | 844 |
nlinfo ("%s using AutoAllocUserid", _CurrentInMsg->AddrFrom.asString().c_str() ); |
845 |
string filename = CPath::standardizePath( SaveShardRoot.get() ) + CPath::standardizePath( IService::getInstance()->SaveFilesDirectory.get() ) + "auto_uid_map.bin"; |
|
845 |
string filename = CPath::standardizePath( FESSaveShardRoot.get() ) + CPath::standardizePath( IService::getInstance()->SaveFilesDirectory.get() ) + "auto_uid_map.bin";
|
|
846 | 846 |
|
847 | 847 |
// Get previously allocated user ids |
848 | 848 |
if ( _AutoUidMap.empty() ) |