Make blockdir always net specific
The blocks directory is net specific by definition. Also this prevents the side effect of calling GetBlocksDir(false) in the non-mainnet environment.
This commit is contained in:
parent
13d98ea0d7
commit
c3f1821ac7
3 changed files with 6 additions and 8 deletions
|
@ -906,7 +906,7 @@ bool AppInitParameterInteraction()
|
|||
|
||||
// also see: InitParameterInteraction()
|
||||
|
||||
if (!fs::is_directory(GetBlocksDir(false))) {
|
||||
if (!fs::is_directory(GetBlocksDir())) {
|
||||
return InitError(strprintf(_("Specified blocks directory \"%s\" does not exist."), gArgs.GetArg("-blocksdir", "").c_str()));
|
||||
}
|
||||
|
||||
|
|
|
@ -728,18 +728,17 @@ fs::path GetDefaultDataDir()
|
|||
#endif
|
||||
}
|
||||
|
||||
static fs::path g_blocks_path_cached;
|
||||
static fs::path g_blocks_path_cache_net_specific;
|
||||
static fs::path pathCached;
|
||||
static fs::path pathCachedNetSpecific;
|
||||
static CCriticalSection csPathCached;
|
||||
|
||||
const fs::path &GetBlocksDir(bool fNetSpecific)
|
||||
const fs::path &GetBlocksDir()
|
||||
{
|
||||
|
||||
LOCK(csPathCached);
|
||||
|
||||
fs::path &path = fNetSpecific ? g_blocks_path_cache_net_specific : g_blocks_path_cached;
|
||||
fs::path &path = g_blocks_path_cache_net_specific;
|
||||
|
||||
// This can be called during exceptions by LogPrintf(), so we cache the
|
||||
// value so we don't have to do memory allocations after that.
|
||||
|
@ -755,9 +754,8 @@ const fs::path &GetBlocksDir(bool fNetSpecific)
|
|||
} else {
|
||||
path = GetDataDir(false);
|
||||
}
|
||||
if (fNetSpecific)
|
||||
path /= BaseParams().DataDir();
|
||||
|
||||
path /= BaseParams().DataDir();
|
||||
path /= "blocks";
|
||||
fs::create_directories(path);
|
||||
return path;
|
||||
|
@ -801,7 +799,6 @@ void ClearDatadirCache()
|
|||
|
||||
pathCached = fs::path();
|
||||
pathCachedNetSpecific = fs::path();
|
||||
g_blocks_path_cached = fs::path();
|
||||
g_blocks_path_cache_net_specific = fs::path();
|
||||
}
|
||||
|
||||
|
|
|
@ -78,7 +78,8 @@ void ReleaseDirectoryLocks();
|
|||
|
||||
bool TryCreateDirectories(const fs::path& p);
|
||||
fs::path GetDefaultDataDir();
|
||||
const fs::path &GetBlocksDir(bool fNetSpecific = true);
|
||||
// The blocks directory is always net specific.
|
||||
const fs::path &GetBlocksDir();
|
||||
const fs::path &GetDataDir(bool fNetSpecific = true);
|
||||
void ClearDatadirCache();
|
||||
fs::path GetConfigFile(const std::string& confPath);
|
||||
|
|
Loading…
Reference in a new issue