diff options
author | Riccardo Spagni <ric@spagni.net> | 2016-12-12 23:46:47 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2016-12-12 23:46:47 +0200 |
commit | 1a286061ff294f8fd8910492e1725b08d0942377 (patch) | |
tree | 8b340ead05c950767ba6f8776a864eff2afced39 /src/wallet/api/wallet.cpp | |
parent | Merge pull request #1424 (diff) | |
parent | addressbook updates (diff) | |
download | monero-1a286061ff294f8fd8910492e1725b08d0942377.tar.xz |
Merge pull request #1436
3b4539ee addressbook updates (Jaquee)
Diffstat (limited to 'src/wallet/api/wallet.cpp')
-rw-r--r-- | src/wallet/api/wallet.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/wallet/api/wallet.cpp b/src/wallet/api/wallet.cpp index 0a2f0f680..5b7a3e286 100644 --- a/src/wallet/api/wallet.cpp +++ b/src/wallet/api/wallet.cpp @@ -248,7 +248,7 @@ bool WalletImpl::create(const std::string &path, const std::string &password, co if (keys_file_exists || wallet_file_exists) { m_errorString = "attempting to generate or restore wallet, but specified file(s) exist. Exiting to not risk overwriting."; LOG_ERROR(m_errorString); - m_status = Status_Error; + m_status = Status_Critical; return false; } // TODO: validate language @@ -260,7 +260,7 @@ bool WalletImpl::create(const std::string &path, const std::string &password, co m_status = Status_Ok; } catch (const std::exception &e) { LOG_ERROR("Error creating wallet: " << e.what()); - m_status = Status_Error; + m_status = Status_Critical; m_errorString = e.what(); return false; } @@ -287,7 +287,7 @@ bool WalletImpl::open(const std::string &path, const std::string &password) m_password = password; } catch (const std::exception &e) { LOG_ERROR("Error opening wallet: " << e.what()); - m_status = Status_Error; + m_status = Status_Critical; m_errorString = e.what(); } return m_status == Status_Ok; @@ -319,7 +319,7 @@ bool WalletImpl::recover(const std::string &path, const std::string &seed) // TODO: wallet->init(daemon_address); } catch (const std::exception &e) { - m_status = Status_Error; + m_status = Status_Critical; m_errorString = e.what(); } return m_status == Status_Ok; @@ -331,7 +331,12 @@ bool WalletImpl::close() bool result = false; LOG_PRINT_L3("closing wallet..."); try { - m_wallet->store(); + // Do not store wallet with invalid status + // Status Critical refers to errors on opening or creating wallets. + if (status() != Status_Critical) + m_wallet->store(); + else + LOG_PRINT_L3("Status_Critical - not storing wallet"); LOG_PRINT_L3("wallet::store done"); LOG_PRINT_L3("Calling wallet::stop..."); m_wallet->stop(); @@ -339,7 +344,7 @@ bool WalletImpl::close() result = true; clearStatus(); } catch (const std::exception &e) { - m_status = Status_Error; + m_status = Status_Critical; m_errorString = e.what(); LOG_ERROR("Error closing wallet: " << e.what()); } |