mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-03 09:56:38 -05:00
util: make GetDataDir read-only & create datadir..
.. only in bitcoind and bitcoin-qt This changes behaviour of GetConfigFilePath which now always returns the absolute path of the provided -conf argument.
This commit is contained in:
parent
56e370fbb9
commit
64c105442c
3 changed files with 5 additions and 12 deletions
|
@ -167,6 +167,7 @@ static void initTranslations(QTranslator &qtTranslatorBase, QTranslator &qtTrans
|
|||
|
||||
static bool InitSettings()
|
||||
{
|
||||
gArgs.EnsureDataDir();
|
||||
if (!gArgs.GetSettingsPath()) {
|
||||
return true; // Do nothing if settings file disabled.
|
||||
}
|
||||
|
|
|
@ -417,8 +417,7 @@ const fs::path& ArgsManager::GetDataDir(bool net_specific) const
|
|||
LOCK(cs_args);
|
||||
fs::path& path = net_specific ? m_cached_network_datadir_path : m_cached_datadir_path;
|
||||
|
||||
// Cache the path to avoid calling fs::create_directories on every call of
|
||||
// this function
|
||||
// Used cached path if available
|
||||
if (!path.empty()) return path;
|
||||
|
||||
const fs::path datadir{GetPathArg("-datadir")};
|
||||
|
@ -432,15 +431,8 @@ const fs::path& ArgsManager::GetDataDir(bool net_specific) const
|
|||
path = GetDefaultDataDir();
|
||||
}
|
||||
|
||||
if (!fs::exists(path)) {
|
||||
fs::create_directories(path / "wallets");
|
||||
}
|
||||
|
||||
if (net_specific && !BaseParams().DataDir().empty()) {
|
||||
path /= fs::PathFromString(BaseParams().DataDir());
|
||||
if (!fs::exists(path)) {
|
||||
fs::create_directories(path / "wallets");
|
||||
}
|
||||
}
|
||||
|
||||
return path;
|
||||
|
@ -512,6 +504,7 @@ bool ArgsManager::IsArgSet(const std::string& strArg) const
|
|||
|
||||
bool ArgsManager::InitSettings(std::string& error)
|
||||
{
|
||||
EnsureDataDir();
|
||||
if (!GetSettingsPath()) {
|
||||
return true; // Do nothing if settings file disabled.
|
||||
}
|
||||
|
@ -999,8 +992,8 @@ bool ArgsManager::ReadConfigFiles(std::string& error, bool ignore_invalid_keys)
|
|||
m_config_sections.clear();
|
||||
}
|
||||
|
||||
const fs::path conf_path = GetPathArg("-conf", BITCOIN_CONF_FILENAME);
|
||||
std::ifstream stream{GetConfigFile(conf_path)};
|
||||
const auto conf_path{GetConfigFilePath()};
|
||||
std::ifstream stream{conf_path};
|
||||
|
||||
// not ok to have a config file specified that cannot be opened
|
||||
if (IsArgSet("-conf") && !stream.good()) {
|
||||
|
|
|
@ -492,7 +492,6 @@ private:
|
|||
*
|
||||
* @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
|
||||
*/
|
||||
const fs::path& GetDataDir(bool net_specific) const;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue