aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/util/system.cpp8
-rw-r--r--src/util/system.h18
2 files changed, 21 insertions, 5 deletions
diff --git a/src/util/system.cpp b/src/util/system.cpp
index 06684c78ad..3613d780ca 100644
--- a/src/util/system.cpp
+++ b/src/util/system.cpp
@@ -404,7 +404,7 @@ const fs::path& ArgsManager::GetBlocksDirPath() const
return path;
}
} else {
- path = GetDataDirPath(false);
+ path = GetDataDirBase();
}
path /= BaseParams().DataDir();
@@ -513,7 +513,7 @@ bool ArgsManager::GetSettingsPath(fs::path* filepath, bool temp) const
}
if (filepath) {
std::string settings = GetArg("-settings", BITCOIN_SETTINGS_FILENAME);
- *filepath = fsbridge::AbsPathJoin(GetDataDirPath(/* net_specific= */ true), temp ? settings + ".tmp" : settings);
+ *filepath = fsbridge::AbsPathJoin(GetDataDirNet(), temp ? settings + ".tmp" : settings);
}
return true;
}
@@ -804,7 +804,7 @@ fs::path GetDefaultDataDir()
const fs::path &GetDataDir(bool fNetSpecific)
{
- return gArgs.GetDataDirPath(fNetSpecific);
+ return fNetSpecific ? gArgs.GetDataDirNet() : gArgs.GetDataDirBase();
}
bool CheckDataDirOption()
@@ -1361,7 +1361,7 @@ fs::path AbsPathForConfigVal(const fs::path& path, bool net_specific)
if (path.is_absolute()) {
return path;
}
- return fsbridge::AbsPathJoin(GetDataDir(net_specific), path);
+ return fsbridge::AbsPathJoin(net_specific ? gArgs.GetDataDirNet() : gArgs.GetDataDirBase(), path);
}
void ScheduleBatchPriority()
diff --git a/src/util/system.h b/src/util/system.h
index 88a217f71d..fcbbd24e83 100644
--- a/src/util/system.h
+++ b/src/util/system.h
@@ -119,7 +119,7 @@ UniValue RunCommandParseJSON(const std::string& str_command, const std::string&
* the datadir if they are not absolute.
*
* @param path The path to be conditionally prefixed with datadir.
- * @param net_specific Forwarded to GetDataDir().
+ * @param net_specific Use network specific datadir variant
* @return The normalized path.
*/
fs::path AbsPathForConfigVal(const fs::path& path, bool net_specific = true);
@@ -271,6 +271,22 @@ public:
/**
* Get data directory path
*
+ * @return Absolute path on success, otherwise an empty path when a non-directory path would be returned
+ * @post Returned directory path is created unless it is empty
+ */
+ const fs::path& GetDataDirBase() const { return GetDataDirPath(false); }
+
+ /**
+ * Get data directory path with appended network identifier
+ *
+ * @return Absolute path on success, otherwise an empty path when a non-directory path would be returned
+ * @post Returned directory path is created unless it is empty
+ */
+ const fs::path& GetDataDirNet() const { return GetDataDirPath(true); }
+
+ /**
+ * Get data directory path
+ *
* @param net_specific Append network identifier to the returned path
* @return Absolute path on success, otherwise an empty path when a non-directory path would be returned
* @post Returned directory path is created unless it is empty