diff options
author | Jaquee <jaquee.monero@gmail.com> | 2016-12-12 21:39:29 +0100 |
---|---|---|
committer | Jaquee <jaquee.monero@gmail.com> | 2016-12-12 21:50:50 +0100 |
commit | 3b4539ee7e75779029fc77d66263c0ae164af396 (patch) | |
tree | 8b340ead05c950767ba6f8776a864eff2afced39 /src/wallet/api/wallet.cpp | |
parent | Merge pull request #1424 (diff) | |
download | monero-3b4539ee7e75779029fc77d66263c0ae164af396.tar.xz |
addressbook updates
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()); } |