diff --git a/nano/node/network.cpp b/nano/node/network.cpp index 129513149..a564c42b5 100644 --- a/nano/node/network.cpp +++ b/nano/node/network.cpp @@ -575,12 +575,7 @@ void nano::network::merge_peer (nano::endpoint const & peer_a) if (!reachout (peer_a, node.config.allow_local_peers)) { std::weak_ptr node_w (node.shared ()); - node.network.tcp_channels.start_tcp (peer_a, [node_w] (std::shared_ptr const & channel_a) { - if (auto node_l = node_w.lock ()) - { - node_l->network.send_keepalive (channel_a); - } - }); + node.network.tcp_channels.start_tcp (peer_a); } } diff --git a/nano/node/transport/tcp.cpp b/nano/node/transport/tcp.cpp index a02f8bcbb..12a138788 100644 --- a/nano/node/transport/tcp.cpp +++ b/nano/node/transport/tcp.cpp @@ -714,9 +714,13 @@ void nano::transport::tcp_channels::udp_fallback (nano::endpoint const & endpoin nano::lock_guard lock (mutex); attempts.get ().erase (nano::transport::map_endpoint_to_tcp (endpoint_a)); } - if (callback_a && !node.flags.disable_udp) + if (!node.flags.disable_udp) { auto channel_udp (node.network.udp_channels.create (endpoint_a)); - callback_a (channel_udp); + node.network.send_keepalive (channel_udp); + if (callback_a) + { + callback_a (channel_udp); + } } }