#include "node.hpp" #include "connect.hpp" Node::Node(ListenSettings const& listen_settings, NodeNetworkSettings network_settings) : io_service() , server(io_service, listen_settings, [this](boost::asio::ip::tcp::socket&& socket){accept_handler(std::move(socket));}) , clients() , next_node(connect(network_settings.next_host, network_settings.next_port, io_service)) , api(get_curve25519_implementation()) , keypair(api.create_key_pair()) { if(network_settings.is_first) { start_initialisation(); } } void Node::accept_handler(boost::asio::ip::tcp::socket&& socket) { clients.emplace_back(std::move(socket)); auto it = --clients.end(); clients.back().on_done( [this, it]() { clients.erase(it); } ); clients.back().receive(); }