From 8065e1bf2229294fea502226962bd66d37ff81ce Mon Sep 17 00:00:00 2001 From: Dennis Brentjes Date: Thu, 22 Sep 2016 16:11:39 +0200 Subject: Some changes to the network-handler. --- network-handler/main.cpp | 19 +++++++------------ network-handler/nodemanager.cpp | 14 ++++++++++++-- network-handler/nodemanager.hpp | 18 +++++++++++++++--- 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/network-handler/main.cpp b/network-handler/main.cpp index c8cae05..84de894 100644 --- a/network-handler/main.cpp +++ b/network-handler/main.cpp @@ -15,12 +15,13 @@ int main(int argc, char* argv[]) { po::options_description desc("Allowed options"); desc.add_options() - ("help,h", "produce help message") - ("port,p", po::value()->default_value(9200), "Set listening port") - ("enable_v4", po::value()->default_value(true), "Enable/disable ipv4 accept support") + ("help,h", "produce help message.") + ("port,p", po::value()->default_value(9200), "Set listening port.") + ("enable_v4", po::value()->default_value(true), "Enable/disable ipv4 accept support.") ("interface4,4", po::value()->default_value("0.0.0.0"), "Set the ipv4 address to listen on.") - ("enable_v6", po::value()->default_value(true), "Enable/disable ipv6 accept support") - ("interface6,6", po::value()->default_value("::"), "Set the ipv6 address to listen on") + ("enable_v6", po::value()->default_value(true), "Enable/disable ipv6 accept support.") + ("interface6,6", po::value()->default_value("::"), "Set the ipv6 address to listen on.") + ("nodes,n", po::value(), "Set the node addreses to use in the cmix network.") ; po::variables_map vm; @@ -38,7 +39,7 @@ int main(int argc, char* argv[]) { std::string if6 = vm["interface6"].as(); uint16_t port = vm["port"].as(); - NodeManager node_manager = key_exchange_phase(); + NodeManager node_manager({}); ListenSettings lsettings{en4, if4, en6, if6, port}; @@ -46,9 +47,3 @@ int main(int argc, char* argv[]) { handler.run(); } -NodeManager key_exchange_phase() { - NodeManager manager; - - return manager; -} - diff --git a/network-handler/nodemanager.cpp b/network-handler/nodemanager.cpp index f345b72..165cb3b 100644 --- a/network-handler/nodemanager.cpp +++ b/network-handler/nodemanager.cpp @@ -1,4 +1,14 @@ #include "nodemanager.hpp" -NodeManager::NodeManager() -{} +#include "connect.hpp" + +NodeManager::NodeManager(std::vector connections) +: io_service() +, api(get_curve25519_implementation()) +, key_pair(api.create_key_pair()) +, nodes() +{ + for(auto&& ci : connections) { + nodes.emplace_back(connect(ci.host, ci.port, io_service)); + } +} diff --git a/network-handler/nodemanager.hpp b/network-handler/nodemanager.hpp index e6a42c5..651e6a4 100644 --- a/network-handler/nodemanager.hpp +++ b/network-handler/nodemanager.hpp @@ -1,12 +1,24 @@ #pragma once #include "nodeclient.hpp" +#include "api.h" +#include "curve25519.h" -#include +#include + +struct ConnectionInfo { + std::string host; + std::string port; +}; class NodeManager { - std::vector clients; + boost::asio::io_service io_service; + Api api; + KeyPair key_pair; + std::list nodes; public: - NodeManager(); + NodeManager(std::vector connections); + + }; -- cgit v1.2.3-70-g09d2