From a6ad183755a960374ab73206b61d0ecba2fb1ab1 Mon Sep 17 00:00:00 2001 From: clemahieu Date: Mon, 3 Jul 2017 00:34:11 -0500 Subject: [PATCH] Resetting state if a connection drops. --- rai/node/bootstrap.cpp | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/rai/node/bootstrap.cpp b/rai/node/bootstrap.cpp index 33178b96..b00bc19e 100755 --- a/rai/node/bootstrap.cpp +++ b/rai/node/bootstrap.cpp @@ -274,10 +274,22 @@ count (0) rai::frontier_req_client::~frontier_req_client () { - if (connection->node->config.logging.network_logging ()) - { - BOOST_LOG (connection->node->log) << "Exiting frontier_req initiator"; - } + std::lock_guard lock (connection->attempt->mutex); + if (connection->attempt->state == rai::attempt_state::requesting_frontiers) + { + if (connection->node->config.logging.network_logging ()) + { + BOOST_LOG (connection->node->log) << "frontier_req failed, reattempting"; + } + connection->attempt->state = rai::attempt_state::starting; + } + else + { + if (connection->node->config.logging.network_logging ()) + { + BOOST_LOG (connection->node->log) << "Exiting frontier_req initiator"; + } + } } void rai::frontier_req_client::receive_frontier () @@ -619,10 +631,22 @@ synchronization (*connection->node, [this] (MDB_txn * transaction_a, rai::block rai::bulk_push_client::~bulk_push_client () { - if (connection->node->config.logging.network_logging ()) - { - BOOST_LOG (connection->node->log) << "Exiting bulk push client"; - } + std::lock_guard lock (connection->attempt->mutex); + if (connection->attempt->state == rai::attempt_state::pushing) + { + if (connection->node->config.logging.network_logging ()) + { + BOOST_LOG (connection->node->log) << "Bulk push client failed"; + } + connection->attempt->state = rai::attempt_state::complete; + } + else + { + if (connection->node->config.logging.network_logging ()) + { + BOOST_LOG (connection->node->log) << "Exiting bulk push client"; + } + } } void rai::bulk_push_client::start ()