aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/walletutil.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2019-03-20 20:38:50 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2019-03-20 20:38:55 +0100
commit6cf81b01b48e871a35072dd08e7735c3ba42528c (patch)
treeb9868e1ecd82923729726239b3b1b2a9c7af6e2b /src/wallet/walletutil.cpp
parent392d1382c1b1459aaea86250cecaa54b84508f2d (diff)
parentfe95f84542f81862e9759503416d9da9f67d191b (diff)
downloadbitcoin-6cf81b01b48e871a35072dd08e7735c3ba42528c.tar.xz
Merge #15575: 0.17: Backport 15297
fe95f84542f81862e9759503416d9da9f67d191b qa: Test .walletlock file is closed (João Barbosa) 2e9e904a5d58e0d288e9abc1cbc602a8674bc1a2 wallet: Close wallet env lock file (João Barbosa) 22cdb6cf590d61668c85c1c08dcc15b4e95921c6 wallet: Close dbenv error file db.log (João Barbosa) f20513bd71d0530ad9285b9558e3a02733250a63 Tests: add unit tests for GetWalletEnv (Pierre Rochard) 85c6263ddbde7189bbb52317dd3ad9202b5ebf40 Trivial: add doxygen-compatible comments relating to BerkeleyEnvironment (Pierre Rochard) f22d02f5371efcaa48a8d5d1b8cd31c65d8235f3 Free BerkeleyEnvironment instances when not in use (Russell Yanofsky) 0a9af2d4cb093d254a36d094b8d8ed7603fc9404 wallet: Create IsDatabaseLoaded function (Chun Kuan Lee) 7751ea37b65cae2cff766d09b2c95770aa7d71d8 Refactor: Move m_db pointers into BerkeleyDatabase (Russell Yanofsky) caf1146b1345d70fbe4cc5f662d8393a79ac6068 wallet: Add trailing wallet.dat when detecting duplicate wallet if it's a directory. (Chun Kuan Lee) 34da2b7c76a023459e46e3a2ca4dc3ecc2b9a438 tests: add test case for loading copied wallet twice (Chun Kuan Lee) 8965b6ab4753f3223d90d9c1ab03b190f0320dd8 wallet: Fix duplicate fileid (Chun Kuan Lee) 16e57594556ac481a32f5d5ed1a988b2772ba804 wallet: Refactor to use WalletLocation (João Barbosa) 21693ff0b743f094e73111a81c1c86e2622d937c wallet: Add WalletLocation utility class (João Barbosa) 1c98a758d0f43f12d600731373758303cefe7cd7 No longer shutdown after encrypting the wallet (Andrew Chow) 435df68c62562e30a6d11b0bfc2cf56434dbc4a0 Move BerkeleyEnvironment deletion from internal method to callsite (Andrew Chow) 048fda2a66df405cd98706612c87b59c2912c441 After encrypting the wallet, reload the database environment (Andrew Chow) f455979eb1b65c9822b414aa9e6b04b5c43322a0 Add function to close all Db's and reload the databae environment (Andrew Chow) Pull request description: This PR backports the following pull requests: - #12493 [wallet] Reopen CDBEnv after encryption instead of shutting down - #14350 Add WalletLocation class - #14320 [bugfix] wallet: Fix duplicate fileid detection - #14552 wallet: detecting duplicate wallet by comparing the db filename. - #11911 Free BerkeleyEnvironment instances when not in use - #15297 wallet: Releases dangling files on BerkeleyEnvironment::Close Tree-SHA512: 52d759bc4f140ca96e39b37746cc20e786741b08ddc658a87ea77fbcfbb481f1c7b75aba4fc57ca9bca8ca7154e535da1fdd650fd114873655cd85c490c79f14
Diffstat (limited to 'src/wallet/walletutil.cpp')
-rw-r--r--src/wallet/walletutil.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/wallet/walletutil.cpp b/src/wallet/walletutil.cpp
index 34c76ec4c4..064885ed49 100644
--- a/src/wallet/walletutil.cpp
+++ b/src/wallet/walletutil.cpp
@@ -25,3 +25,14 @@ fs::path GetWalletDir()
return path;
}
+
+WalletLocation::WalletLocation(const std::string& name)
+ : m_name(name)
+ , m_path(fs::absolute(name, GetWalletDir()))
+{
+}
+
+bool WalletLocation::Exists() const
+{
+ return fs::symlink_status(m_path).type() != fs::file_not_found;
+}