Fixed: Crash in backup service

This commit is contained in:
kervala 2016-01-21 15:06:40 +01:00
parent 8a1b7d7836
commit 7f054799b4
4 changed files with 13 additions and 12 deletions

View file

@ -36,7 +36,7 @@ NLMISC::CVariable<std::string> BSFileSubst("backup", "BSFileSubst", "file read/w
NLMISC::CVariable<bool> VerboseLog("backup", "VerboseLog", "Activate verbose logging of BS activity", false);
NLMISC::CVariable<bool> UseTempFile("backup", "UseTempFile", "Flag the use of temporary file for safe write or append operation", true, true);
extern NLMISC::CVariable<std::string> SaveShardRootBackupService;
extern NLMISC::CVariable<std::string> SaveShardRootGameShare;
bool bsstrincmp(const char* s1, const char* s2, int n)
{
@ -48,7 +48,7 @@ bool bsstrincmp(const char* s1, const char* s2, int n)
std::string getBackupFileName(const std::string& filename)
{
return SaveShardRootBackupService.get() + filename;
return SaveShardRootGameShare.get() + filename;
/* // BSFilePrefix and BSFileSubst are deprecated
if (BSFilePrefix.get().empty())
return filename;

View file

@ -62,7 +62,7 @@ struct CBackupMsgSaveFileRecv
extern CDirectoryRateStat DirStats;
extern NLMISC::CVariable<std::string> SaveShardRootBackupService;
extern NLMISC::CVariable<std::string> SaveShardRootGameShare;
using namespace NLNET;
using namespace NLMISC;
@ -542,7 +542,7 @@ static CMessage getFileClassImp( CMessage& msgin)
}
}
// In case something like getPathContent() has returned full paths, make paths relative to match the requested filenames
fdc.stripFilename(SaveShardRootBackupService.get());
fdc.stripFilename(SaveShardRootGameShare.get());
// compose the output message
CMessage msgout("BS_FILE_CLASS");

View file

@ -30,7 +30,7 @@ using namespace NLNET;
CDirectoryRateStat DirStats;
extern CVariable<string> SaveShardRootBackupService;
extern CVariable<string> SaveShardRootGameShare;
NLMISC_COMMAND(displayFileStats, "display file read/write stats for the last minute", "")
@ -74,9 +74,9 @@ NLMISC_COMMAND ( dumpCharacterFile, "dump the content of the save file for a cha
{
// just output the list of available shard id
vector<string> shards;
CPath::getPathContent(SaveShardRootBackupService, false, true, false, shards);
CPath::getPathContent(SaveShardRootGameShare, false, true, false, shards);
log.displayNL("Listing %u available shard id in path '%s':", shards.size(), SaveShardRootBackupService.c_str());
log.displayNL("Listing %u available shard id in path '%s':", shards.size(), SaveShardRootGameShare.c_str());
for (uint i=0; i<shards.size(); ++i)
{
string id = shards[i];
@ -107,7 +107,7 @@ NLMISC_COMMAND ( dumpCharacterFile, "dump the content of the save file for a cha
useFilter = true;
}
string fileName = SaveShardRootBackupService.toString()+"/"+args[0]+"/characters/account_"+args[1]+"_"+args[2]+"_pdr.bin";
string fileName = SaveShardRootGameShare.toString()+"/"+args[0]+"/characters/account_"+args[1]+"_"+args[2]+"_pdr.bin";
if (!CFile::isExists(fileName))
{
log.displayNL("The file '%s' (located here '%s') cannot be found in '%s' backup directory",

View file

@ -169,7 +169,8 @@ void cbOnSaveShardRootModified( NLMISC::IVariable& var )
}
CVariable<string> IncrementalBackupDirectory("backup", "IncrementalBackupDirectory", "Directory to find incremental backuped archives", "", 0, true);
CVariable<string> SaveShardRootBackupService("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)
//CVariable<string> SaveShardRootBackupService("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)
extern CVariable<string> SaveShardRootGameShare;
CVariable<string> SaveTemplatePath("backup", "SaveTemplatePath", "Directory to find saves (with shard and account replacement strings)", "$shard/characters/account_$userid_$charid$ext", 0, true);
CVariable<string> SaveExtList("backup", "SaveExtList", "List of possible extensions for save files (space separated)", "_pdr.bin _pdr.xml .bin", 0, true);
@ -209,7 +210,7 @@ void cbGetSaveList(CMemStream &msgin, TSockId host)
explode(str, string("%%"), params, true);
string incrementalDir = IncrementalBackupDirectory.get();
string saveShardRoot = SaveShardRootBackupService.get();
string saveShardRoot = SaveShardRootGameShare.get();
string templatePath = SaveTemplatePath.get();
string extList = SaveExtList.get();
@ -292,7 +293,7 @@ void cbRestoreSave(CMemStream &msgin, TSockId host)
explode(str, string("%%"), params, true);
string saveShardRoot = SaveShardRootBackupService.get();
string saveShardRoot = SaveShardRootGameShare.get();
string templatePath = SaveTemplatePath.get();
string shard;
@ -367,7 +368,7 @@ void cbCopyOverSave(CMemStream &msgin, TSockId host)
explode(str, string("%%"), params, true);
string saveShardRoot = SaveShardRootBackupService.get();
string saveShardRoot = SaveShardRootGameShare.get();
string templatePath = SaveTemplatePath.get();
string extList = SaveExtList.get();