Browse Source

Try to gracefully handle exceptions in litelib_process_response

language
Duke Leto 2 years ago
parent
commit
eda57b5a1b
  1. 7
      src/connection.cpp
  2. 1
      src/controller.cpp
  3. 9
      src/settings.cpp

7
src/connection.cpp

@ -248,6 +248,7 @@ void ConnectionLoader::doAutoConnect()
void ConnectionLoader::createOrRestore(bool dangerous, QString server)
{
qDebug() << __func__ << ": server=" << server;
// Close the startup dialog, since we'll be showing the wizard
d->hide();
// Create a wizard
@ -264,13 +265,14 @@ void ConnectionLoader::doRPCSetConnection(Connection* conn)
d->accept();
QTimer::singleShot(1, [=]() { delete this; });
QFile plaintextWallet(dirwalletconnection);
try {
QFile plaintextWallet(dirwalletconnection);
main->logger->write("Path to Wallet.dat : " );
qDebug() << __func__ << ": wallet path =" << plaintextWallet;
plaintextWallet.remove();
} catch (...) {
qDebug() << "No plaintext wallet found! file=" << plaintextWallet;
main->logger->write("no Plaintext wallet.dat");
}
@ -284,13 +286,14 @@ void ConnectionLoader::doRPCSetConnectionShield(Connection* conn)
main->getRPC()->shield([=] (auto) {});
QTimer::singleShot(1, [=]() { delete this; });
QFile plaintextWallet(dirwalletconnection);
try {
QFile plaintextWallet(dirwalletconnection);
main->logger->write("Path to Wallet.dat : " );
qDebug() << __func__ << ": wallet path =" << plaintextWallet;
plaintextWallet.remove();
} catch (...) {
main->logger->write("no Plaintext wallet.dat");
qDebug() << "No plaintext wallet found! file=" << plaintextWallet;
}
}

1
src/controller.cpp

@ -44,7 +44,6 @@ Controller::Controller(MainWindow* main)
transactionsTableModel = new TxTableModel(ui->transactionsTable);
main->ui->transactionsTable->setModel(transactionsTableModel);
// Set up timer to refresh Price
priceTimer = new QTimer(main);
QObject::connect(priceTimer, &QTimer::timeout, [=]() {

9
src/settings.cpp

@ -324,7 +324,14 @@ QString Settings::getRandomServer() {
while (tries < servers.size() ) {
qDebug() << "Checking if lite server " << server << " is a alive, try=" << tries;
char* resp = litelib_initialize_existing(false, server.toStdString().c_str());
QString response = litelib_process_response(resp);
QString response = "";
try {
response = litelib_process_response(resp);
} catch (const std::exception& e) {
qDebug() << __func__ << ": litelib_process_response threw an exception, ignoring: " << e.what();
}
// if we see a valid connection, return this server
if (response.toUpper().trimmed() == "OK") {

Loading…
Cancel
Save