Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move common UDP/TCP channels functions to transport #1971

Merged
merged 8 commits into from
May 14, 2019
18 changes: 9 additions & 9 deletions nano/core_test/network.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ TEST (network, send_node_id_handshake)
system.nodes.push_back (node1);
auto initial (system.nodes[0]->stats.count (nano::stat::type::message, nano::stat::detail::node_id_handshake, nano::stat::dir::in));
auto initial_node1 (node1->stats.count (nano::stat::type::message, nano::stat::detail::node_id_handshake, nano::stat::dir::in));
nano::transport::channel_udp channel (system.nodes[0]->network.udp_channels, node1->network.endpoint ());
auto channel (std::make_shared<nano::transport::channel_udp> (system.nodes[0]->network.udp_channels, node1->network.endpoint ()));
system.nodes[0]->network.send_keepalive (channel);
ASSERT_EQ (0, system.nodes[0]->network.size ());
ASSERT_EQ (0, node1->network.size ());
Expand Down Expand Up @@ -106,7 +106,7 @@ TEST (network, last_contacted)
auto node1 (std::make_shared<nano::node> (init1, system.io_ctx, 24001, nano::unique_path (), system.alarm, system.logging, system.work));
node1->start ();
system.nodes.push_back (node1);
nano::transport::channel_udp channel1 (node1->network.udp_channels, nano::endpoint (boost::asio::ip::address_v6::loopback (), 24000));
auto channel1 (std::make_shared<nano::transport::channel_udp> (node1->network.udp_channels, nano::endpoint (boost::asio::ip::address_v6::loopback (), 24000)));
node1->network.send_keepalive (channel1);
system.deadline_set (10s);

Expand Down Expand Up @@ -143,7 +143,7 @@ TEST (network, multi_keepalive)
node1->start ();
system.nodes.push_back (node1);
ASSERT_EQ (0, node1->network.size ());
nano::transport::channel_udp channel1 (node1->network.udp_channels, system.nodes[0]->network.endpoint ());
auto channel1 (std::make_shared<nano::transport::channel_udp> (node1->network.udp_channels, system.nodes[0]->network.endpoint ()));
node1->network.send_keepalive (channel1);
ASSERT_EQ (0, node1->network.size ());
ASSERT_EQ (0, system.nodes[0]->network.size ());
Expand All @@ -157,7 +157,7 @@ TEST (network, multi_keepalive)
ASSERT_FALSE (init2.error ());
node2->start ();
system.nodes.push_back (node2);
nano::transport::channel_udp channel2 (node2->network.udp_channels, system.nodes[0]->network.endpoint ());
auto channel2 (std::make_shared<nano::transport::channel_udp> (node2->network.udp_channels, system.nodes[0]->network.endpoint ()));
node2->network.send_keepalive (channel2);
system.deadline_set (10s);
while (node1->network.size () != 2 || system.nodes[0]->network.size () != 2 || node2->network.size () != 2)
Expand Down Expand Up @@ -1160,12 +1160,12 @@ TEST (network, endpoint_bad_fd)
TEST (network, reserved_address)
{
nano::system system (24000, 1);
ASSERT_FALSE (system.nodes[0]->network.udp_channels.reserved_address (nano::endpoint (boost::asio::ip::address_v6::from_string ("2001::"), 0)));
ASSERT_FALSE (nano::transport::reserved_address (nano::endpoint (boost::asio::ip::address_v6::from_string ("2001::"), 0)));
nano::endpoint loopback (boost::asio::ip::address_v6::from_string ("::1"), 1);
ASSERT_FALSE (system.nodes[0]->network.udp_channels.reserved_address (loopback));
ASSERT_FALSE (nano::transport::reserved_address (loopback));
nano::endpoint private_network_peer (boost::asio::ip::address_v6::from_string ("::ffff:10.0.0.0"), 1);
ASSERT_TRUE (system.nodes[0]->network.udp_channels.reserved_address (private_network_peer, false));
ASSERT_FALSE (system.nodes[0]->network.udp_channels.reserved_address (private_network_peer, true));
ASSERT_TRUE (nano::transport::reserved_address (private_network_peer, false));
ASSERT_FALSE (nano::transport::reserved_address (private_network_peer, true));
}

TEST (node, port_mapping)
Expand Down Expand Up @@ -2032,7 +2032,7 @@ TEST (network, replace_port)
}
auto peers_list (system.nodes[0]->network.udp_channels.list (std::numeric_limits<size_t>::max ()));
ASSERT_EQ (peers_list[0]->get_node_id ().get (), node1->node_id.pub);
nano::transport::channel_udp channel (system.nodes[0]->network.udp_channels, node1->network.endpoint ());
auto channel (std::make_shared<nano::transport::channel_udp> (system.nodes[0]->network.udp_channels, node1->network.endpoint ()));
system.nodes[0]->network.send_keepalive (channel);
system.deadline_set (5s);
while (!system.nodes[0]->network.udp_channels.channel (node1->network.endpoint ()))
Expand Down
14 changes: 7 additions & 7 deletions nano/core_test/node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ TEST (node, node_receive_quorum)
nano::system system2 (24001, 1);
system2.wallet (0)->insert_adhoc (nano::test_genesis_key.prv);
ASSERT_TRUE (system.nodes[0]->balance (key.pub).is_zero ());
nano::transport::channel_udp channel (system.nodes[0]->network.udp_channels, system2.nodes[0]->network.endpoint ());
auto channel (std::make_shared<nano::transport::channel_udp> (system.nodes[0]->network.udp_channels, system2.nodes[0]->network.endpoint ()));
system.nodes[0]->network.send_keepalive (channel);
while (system.nodes[0]->balance (key.pub).is_zero ())
{
Expand All @@ -236,7 +236,7 @@ TEST (node, auto_bootstrap)
nano::node_init init1;
auto node1 (std::make_shared<nano::node> (init1, system.io_ctx, 24001, nano::unique_path (), system.alarm, system.logging, system.work));
ASSERT_FALSE (init1.error ());
nano::transport::channel_udp channel (node1->network.udp_channels, system.nodes[0]->network.endpoint ());
auto channel (std::make_shared<nano::transport::channel_udp> (node1->network.udp_channels, system.nodes[0]->network.endpoint ()));
node1->network.send_keepalive (channel);
node1->start ();
system.nodes.push_back (node1);
Expand Down Expand Up @@ -267,7 +267,7 @@ TEST (node, auto_bootstrap_reverse)
auto node1 (std::make_shared<nano::node> (init1, system.io_ctx, 24001, nano::unique_path (), system.alarm, system.logging, system.work));
ASSERT_FALSE (init1.error ());
ASSERT_NE (nullptr, system.wallet (0)->send_action (nano::test_genesis_key.pub, key2.pub, system.nodes[0]->config.receive_minimum.number ()));
nano::transport::channel_udp channel (system.nodes[0]->network.udp_channels, node1->network.endpoint ());
auto channel (std::make_shared<nano::transport::channel_udp> (system.nodes[0]->network.udp_channels, node1->network.endpoint ()));
system.nodes[0]->network.send_keepalive (channel);
node1->start ();
system.nodes.push_back (node1);
Expand Down Expand Up @@ -443,16 +443,16 @@ TEST (node, connect_after_junk)
auto node1 (std::make_shared<nano::node> (init1, system.io_ctx, 24001, nano::unique_path (), system.alarm, system.logging, system.work));
auto junk_buffer (std::make_shared<std::vector<uint8_t>> ());
junk_buffer->push_back (0);
nano::transport::channel_udp channel1 (node1->network.udp_channels, system.nodes[0]->network.endpoint ());
channel1.send_buffer (junk_buffer, nano::stat::detail::bulk_pull, [](boost::system::error_code const &, size_t) {});
auto channel1 (std::make_shared<nano::transport::channel_udp> (node1->network.udp_channels, system.nodes[0]->network.endpoint ()));
channel1->send_buffer (junk_buffer, nano::stat::detail::bulk_pull, [](boost::system::error_code const &, size_t) {});
system.deadline_set (10s);
while (system.nodes[0]->stats.count (nano::stat::type::error) == 0)
{
ASSERT_NO_ERROR (system.poll ());
}
node1->start ();
system.nodes.push_back (node1);
nano::transport::channel_udp channel2 (node1->network.udp_channels, system.nodes[0]->network.endpoint ());
auto channel2 (std::make_shared<nano::transport::channel_udp> (node1->network.udp_channels, system.nodes[0]->network.endpoint ()));
node1->network.send_keepalive (channel2);
system.deadline_set (10s);
while (node1->network.empty ())
Expand Down Expand Up @@ -1189,7 +1189,7 @@ TEST (node, fork_bootstrap_flip)
auto transaction (node2.store.tx_begin_read ());
ASSERT_TRUE (node2.store.block_exists (transaction, send2->hash ()));
}
nano::transport::channel_udp channel (node1.network.udp_channels, node2.network.endpoint ());
auto channel (std::make_shared<nano::transport::channel_udp> (node1.network.udp_channels, node2.network.endpoint ()));
node1.network.send_keepalive (channel);
system1.deadline_set (50s);
while (node2.network.empty ())
Expand Down
10 changes: 5 additions & 5 deletions nano/core_test/peer_container.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -133,17 +133,17 @@ TEST (peer_container, reachout)
nano::endpoint endpoint0 (boost::asio::ip::address_v6::loopback (), 24000);
// Make sure having been contacted by them already indicates we shouldn't reach out
system.nodes[0]->network.udp_channels.insert (endpoint0, nano::protocol_version);
ASSERT_TRUE (system.nodes[0]->network.udp_channels.reachout (endpoint0));
ASSERT_TRUE (system.nodes[0]->network.reachout (endpoint0));
nano::endpoint endpoint1 (boost::asio::ip::address_v6::loopback (), 24001);
ASSERT_FALSE (system.nodes[0]->network.udp_channels.reachout (endpoint1));
ASSERT_FALSE (system.nodes[0]->network.reachout (endpoint1));
// Reaching out to them once should signal we shouldn't reach out again.
ASSERT_TRUE (system.nodes[0]->network.udp_channels.reachout (endpoint1));
ASSERT_TRUE (system.nodes[0]->network.reachout (endpoint1));
// Make sure we don't purge new items
system.nodes[0]->network.cleanup (std::chrono::steady_clock::now () - std::chrono::seconds (10));
ASSERT_TRUE (system.nodes[0]->network.udp_channels.reachout (endpoint1));
ASSERT_TRUE (system.nodes[0]->network.reachout (endpoint1));
// Make sure we purge old items
system.nodes[0]->network.cleanup (std::chrono::steady_clock::now () + std::chrono::seconds (10));
ASSERT_FALSE (system.nodes[0]->network.udp_channels.reachout (endpoint1));
ASSERT_FALSE (system.nodes[0]->network.reachout (endpoint1));
}

TEST (peer_container, depeer)
Expand Down
5 changes: 3 additions & 2 deletions nano/node/json_handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2481,7 +2481,7 @@ void nano::json_handler::peers ()
if (peer_details)
{
boost::property_tree::ptree pending_tree;
pending_tree.put ("protocol_version", std::to_string (channel->network_version));
pending_tree.put ("protocol_version", std::to_string (channel->get_network_version ()));
auto node_id_l (channel->get_node_id ());
if (node_id_l.is_initialized ())
{
Expand All @@ -2491,11 +2491,12 @@ void nano::json_handler::peers ()
{
pending_tree.put ("node_id", "");
}
pending_tree.put ("type", channel->get_type () == nano::transport::transport_type::tcp ? "tcp" : "udp");
peers_l.push_back (boost::property_tree::ptree::value_type (text.str (), pending_tree));
}
else
{
peers_l.push_back (boost::property_tree::ptree::value_type (text.str (), boost::property_tree::ptree (std::to_string (channel->network_version))));
peers_l.push_back (boost::property_tree::ptree::value_type (text.str (), boost::property_tree::ptree (std::to_string (channel->get_network_version ()))));
}
}
response_l.add_child ("peers", peers_l);
Expand Down
Loading