diff options
| author | Luke Dashjr <[email protected]> | 2016-09-09 08:50:09 +0000 |
|---|---|---|
| committer | Luke Dashjr <[email protected]> | 2017-06-06 21:17:09 +0000 |
| commit | 0f08575be2c6016c2c920e2b5b994e467576857d (patch) | |
| tree | 2550988b0afa0379b0c493eb73bb0c1be7438935 /src/wallet/wallet.cpp | |
| parent | Wallet: Replace pwalletMain with a vector of wallet pointers (diff) | |
| download | discoin-0f08575be2c6016c2c920e2b5b994e467576857d.tar.xz discoin-0f08575be2c6016c2c920e2b5b994e467576857d.zip | |
Wallet: Support loading multiple wallets if -wallet used more than once
Diffstat (limited to 'src/wallet/wallet.cpp')
| -rw-r--r-- | src/wallet/wallet.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index e5c9f11aa..241aaffce 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -3930,19 +3930,21 @@ bool CWallet::InitLoadWallet() return true; } - std::string walletFile = GetArg("-wallet", DEFAULT_WALLET_DAT); + SoftSetArg("-wallet", DEFAULT_WALLET_DAT); - if (boost::filesystem::path(walletFile).filename() != walletFile) { - return InitError(_("-wallet parameter must only specify a filename (not a path)")); - } else if (SanitizeString(walletFile, SAFE_CHARS_FILENAME) != walletFile) { - return InitError(_("Invalid characters in -wallet filename")); - } + for (const std::string& walletFile : gArgs.GetArgs("-wallet")) { + if (boost::filesystem::path(walletFile).filename() != walletFile) { + return InitError(_("-wallet parameter must only specify a filename (not a path)")); + } else if (SanitizeString(walletFile, SAFE_CHARS_FILENAME) != walletFile) { + return InitError(_("Invalid characters in -wallet filename")); + } - CWallet * const pwallet = CreateWalletFromFile(walletFile); - if (!pwallet) { - return false; + CWallet * const pwallet = CreateWalletFromFile(walletFile); + if (!pwallet) { + return false; + } + vpwallets.push_back(pwallet); } - vpwallets.push_back(pwallet); return true; } |