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()
|
// 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()));
|
return InitError(strprintf(_("Specified blocks directory \"%s\" does not exist."), gArgs.GetArg("-blocksdir", "").c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -728,18 +728,17 @@ fs::path GetDefaultDataDir()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static fs::path g_blocks_path_cached;
|
|
||||||
static fs::path g_blocks_path_cache_net_specific;
|
static fs::path g_blocks_path_cache_net_specific;
|
||||||
static fs::path pathCached;
|
static fs::path pathCached;
|
||||||
static fs::path pathCachedNetSpecific;
|
static fs::path pathCachedNetSpecific;
|
||||||
static CCriticalSection csPathCached;
|
static CCriticalSection csPathCached;
|
||||||
|
|
||||||
const fs::path &GetBlocksDir(bool fNetSpecific)
|
const fs::path &GetBlocksDir()
|
||||||
{
|
{
|
||||||
|
|
||||||
LOCK(csPathCached);
|
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
|
// This can be called during exceptions by LogPrintf(), so we cache the
|
||||||
// value so we don't have to do memory allocations after that.
|
// value so we don't have to do memory allocations after that.
|
||||||
|
@ -755,9 +754,8 @@ const fs::path &GetBlocksDir(bool fNetSpecific)
|
||||||
} else {
|
} else {
|
||||||
path = GetDataDir(false);
|
path = GetDataDir(false);
|
||||||
}
|
}
|
||||||
if (fNetSpecific)
|
|
||||||
path /= BaseParams().DataDir();
|
|
||||||
|
|
||||||
|
path /= BaseParams().DataDir();
|
||||||
path /= "blocks";
|
path /= "blocks";
|
||||||
fs::create_directories(path);
|
fs::create_directories(path);
|
||||||
return path;
|
return path;
|
||||||
|
@ -801,7 +799,6 @@ void ClearDatadirCache()
|
||||||
|
|
||||||
pathCached = fs::path();
|
pathCached = fs::path();
|
||||||
pathCachedNetSpecific = fs::path();
|
pathCachedNetSpecific = fs::path();
|
||||||
g_blocks_path_cached = fs::path();
|
|
||||||
g_blocks_path_cache_net_specific = fs::path();
|
g_blocks_path_cache_net_specific = fs::path();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,8 @@ void ReleaseDirectoryLocks();
|
||||||
|
|
||||||
bool TryCreateDirectories(const fs::path& p);
|
bool TryCreateDirectories(const fs::path& p);
|
||||||
fs::path GetDefaultDataDir();
|
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);
|
const fs::path &GetDataDir(bool fNetSpecific = true);
|
||||||
void ClearDatadirCache();
|
void ClearDatadirCache();
|
||||||
fs::path GetConfigFile(const std::string& confPath);
|
fs::path GetConfigFile(const std::string& confPath);
|
||||||
|
|
Loading…
Reference in a new issue