diff options
-rw-r--r-- | src/util/system.cpp | 8 | ||||
-rw-r--r-- | src/util/system.h | 18 |
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 |