From f49807dea5df26ea3da55c3f67335b7fb2789379 Mon Sep 17 00:00:00 2001 From: Thiago Silva Date: Tue, 20 Sep 2022 13:38:27 -0300 Subject: [PATCH] Return if !socket_l in channel_a->send() --- nano/node/transport/tcp.cpp | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/nano/node/transport/tcp.cpp b/nano/node/transport/tcp.cpp index dc303848..351e5ba7 100644 --- a/nano/node/transport/tcp.cpp +++ b/nano/node/transport/tcp.cpp @@ -707,22 +707,24 @@ void nano::transport::tcp_channels::start_tcp_receive_node_id (std::shared_ptrsocket.lock ()) + auto socket_l = channel_a->socket.lock (); + if (!socket_l) { - channel_a->set_last_packet_sent (std::chrono::steady_clock::now ()); - auto response_server = std::make_shared (socket_l, node_l); - node_l->network.tcp_channels.insert (channel_a, socket_l, response_server); - // Listen for possible responses - response_server->socket->type_set (nano::socket::type_t::realtime_response_server); - response_server->remote_node_id = channel_a->get_node_id (); - response_server->start (); + return; + } + channel_a->set_last_packet_sent (std::chrono::steady_clock::now ()); + auto response_server = std::make_shared (socket_l, node_l); + node_l->network.tcp_channels.insert (channel_a, socket_l, response_server); + // Listen for possible responses + response_server->socket->type_set (nano::socket::type_t::realtime_response_server); + response_server->remote_node_id = channel_a->get_node_id (); + response_server->start (); - if (!node_l->flags.disable_initial_telemetry_requests) - { - node_l->telemetry->get_metrics_single_peer_async (channel_a, [] (nano::telemetry_data_response const &) { - // Intentionally empty, starts the telemetry request cycle to more quickly disconnect from invalid peers - }); - } + if (!node_l->flags.disable_initial_telemetry_requests) + { + node_l->telemetry->get_metrics_single_peer_async (channel_a, [] (nano::telemetry_data_response const &) { + // Intentionally empty, starts the telemetry request cycle to more quickly disconnect from invalid peers + }); } }); });