Converting received_block function to use early-return pattern.
This commit is contained in:
parent
a1432635d0
commit
0824bdf9ef
1 changed files with 63 additions and 72 deletions
|
|
@ -201,12 +201,22 @@ void nano::bulk_pull_client::received_type ()
|
||||||
|
|
||||||
void nano::bulk_pull_client::received_block (boost::system::error_code const & ec, std::size_t size_a, nano::block_type type_a)
|
void nano::bulk_pull_client::received_block (boost::system::error_code const & ec, std::size_t size_a, nano::block_type type_a)
|
||||||
{
|
{
|
||||||
if (!ec)
|
if (ec)
|
||||||
{
|
{
|
||||||
nano::bufferstream stream (connection->receive_buffer->data (), size_a);
|
network_error = true;
|
||||||
auto block (nano::deserialize_block (stream, type_a));
|
return;
|
||||||
if (block != nullptr)
|
}
|
||||||
|
nano::bufferstream stream{ connection->receive_buffer->data (), size_a };
|
||||||
|
auto block = nano::deserialize_block (stream, type_a);
|
||||||
|
if (block == nullptr)
|
||||||
{
|
{
|
||||||
|
// Avoid re-using slow peers, or peers that sent the wrong blocks.
|
||||||
|
if (!connection->pending_stop && (expected == pull.end || (pull.count != 0 && pull.count == pull_blocks)))
|
||||||
|
{
|
||||||
|
connection->connections.pool_connection (connection);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (connection->node->network_params.work.validate_entry (*block))
|
if (connection->node->network_params.work.validate_entry (*block))
|
||||||
{
|
{
|
||||||
if (connection->node->config.logging.bulk_pull_logging ())
|
if (connection->node->config.logging.bulk_pull_logging ())
|
||||||
|
|
@ -261,25 +271,6 @@ void nano::bulk_pull_client::received_block (boost::system::error_code const & e
|
||||||
{
|
{
|
||||||
connection->connections.pool_connection (connection);
|
connection->connections.pool_connection (connection);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (connection->node->config.logging.bulk_pull_logging ())
|
|
||||||
{
|
|
||||||
connection->node->logger.try_log ("Error deserializing block received from pull request");
|
|
||||||
}
|
|
||||||
connection->node->stats.inc (nano::stat::type::bootstrap, nano::stat::detail::bulk_pull_deserialize_receive_block, nano::stat::dir::in);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (connection->node->config.logging.bulk_pull_logging ())
|
|
||||||
{
|
|
||||||
connection->node->logger.try_log (boost::str (boost::format ("Error bulk receiving block: %1%") % ec.message ()));
|
|
||||||
}
|
|
||||||
connection->node->stats.inc (nano::stat::type::bootstrap, nano::stat::detail::bulk_pull_receive_block_failure, nano::stat::dir::in);
|
|
||||||
network_error = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nano::bulk_pull_account_client::bulk_pull_account_client (std::shared_ptr<nano::bootstrap_client> const & connection_a, std::shared_ptr<nano::bootstrap_attempt_wallet> const & attempt_a, nano::account const & account_a) :
|
nano::bulk_pull_account_client::bulk_pull_account_client (std::shared_ptr<nano::bootstrap_client> const & connection_a, std::shared_ptr<nano::bootstrap_attempt_wallet> const & attempt_a, nano::account const & account_a) :
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue