aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2018-10-05 21:04:08 +0300
committerHennadii Stepanov <32963518+hebasto@users.noreply.github.com>2018-11-05 13:26:43 +0200
commitc3f1821ac788e522e7558e3575150433450dcb8c (patch)
treef8151d24bfca9a789146b4ad4d4909f4532f29c0
parent13d98ea0d76ee55c24e4fb76b962ed696a4b6123 (diff)
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.
-rw-r--r--src/init.cpp2
-rw-r--r--src/util/system.cpp9
-rw-r--r--src/util/system.h3
3 files changed, 6 insertions, 8 deletions
diff --git a/src/init.cpp b/src/init.cpp
index 90dfeb3604..070f52caf7 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -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()));
}
diff --git a/src/util/system.cpp b/src/util/system.cpp
index 4f5dd2d6e9..38d8ef534e 100644
--- a/src/util/system.cpp
+++ b/src/util/system.cpp
@@ -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();
}
diff --git a/src/util/system.h b/src/util/system.h
index 5634b8dd61..dd8868d166 100644
--- a/src/util/system.h
+++ b/src/util/system.h
@@ -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);