diff options
Diffstat (limited to 'node/Node.cpp')
-rw-r--r-- | node/Node.cpp | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/node/Node.cpp b/node/Node.cpp index dcf1d657..7b51d3bd 100644 --- a/node/Node.cpp +++ b/node/Node.cpp @@ -27,4 +27,127 @@ #include "Node.hpp" #include "RuntimeEnvironment.hpp" +#include "NetworkConfigMaster.hpp" +#include "CMWC4096.hpp" +#include "Switch.hpp" +#include "Multicaster.hpp" +#include "AntiRecursion.hpp" +#include "Topology.hpp" +#include "Buffer.hpp" +#include "Packet.hpp" +#include "Logger.hpp" +#include "Address.hpp" +#include "Identity.hpp" +namespace ZeroTier { + +Node::Node( + ZT1_DataStoreGetFunction *dataStoreGetFunction, + ZT1_DataStorePutFunction *dataStorePutFunction, + ZT1_VirtualNetworkConfigCallback *networkConfigCallback, + ZT1_StatusCallback *statusCallback) : + RR(new RuntimeEnvironment(this)), + _outputWireMessages((ZT1_WireMessage *)0), + _outputWireMessageCount(0), + _outputWireMessageCapacity(8), + _outputWireMessages_m(), + _outputFrames((ZT1_VirtualNetworkFrame *)0), + _outputFrameCount(0), + _outputFrameCapacity(8), + _outputFrames_m(), + _dataStoreGetFunction(dataStoreGetFunction), + _dataStorePutFunction(dataStorePutFunction), + _networkConfigCallback(networkConfigCallback), + _statusCallback(statusCallback), + _networks(), + _networks_m(), + _now(0), + _timeOfLastPacketReceived(0), + _timeOfLastPrivilegedPacket(0), + _spamCounter(0) +{ + try { + _outputWireMessages = new ZT1_WireMessage[_outputWireMessageCapacity]; + _outputFrames = new ZT1_VirtualNetworkFrame[_outputFrameCapacity]; + RR->prng = new CMWC4096(); + RR->sw = new Switch(RR); + RR->mc = new Multicaster(RR); + RR->antiRec = new AntiRecursion(RR); + RR->topology = new Topology(RR); + } catch ( ... ) { + delete [] _outputFrames; + delete [] _outputWireMessages; + delete RR->topology; + delete RR->antiRec; + delete RR->mc; + delete RR->sw; + delete RR->prng; + delete RR->log; + delete RR; + throw; + } +} + +Node::~Node() +{ + delete [] _outputFrames; + delete [] _outputWireMessages; + delete RR->topology; + delete RR->antiRec; + delete RR->mc; + delete RR->sw; + delete RR->prng; + delete RR->log; + delete RR; +} + +ZT1_ResultCode Node::run( + uint64_t now, + const ZT1_WireMessage *inputWireMessages, + unsigned int inputWireMessageCount, + const ZT1_VirtualNetworkFrame *inputFrames, + unsigned int inputFrameCount, + const ZT1_WireMessage **outputWireMessages, + unsigned int *outputWireMessageCount, + const ZT1_VirtualNetworkFrame **outputFrames, + unsigned int *outputLanFrameCount, + unsigned long *maxNextInterval) +{ +} + +ZT1_ResultCode Node::join(uint64_t nwid) +{ +} + +ZT1_ResultCode Node::leave(uint64_t nwid) +{ +} + +void Node::status(ZT1_NodeStatus *status) +{ +} + +ZT1_PeerList *Node::peers() +{ +} + +ZT1_VirtualNetworkConfig *Node::networkConfig(uint64_t nwid) +{ +} + +ZT1_VirtualNetworkList *Node::listNetworks() +{ +} + +void Node::freeQueryResult(void *qr) +{ + if (qr) + ::free(qr); +} + +void Node::setNetconfMaster(void *networkConfigMasterInstance) +{ + RR->netconfMaster = reinterpret_cast<NetworkConfigMaster *>(networkConfigMasterInstance); +} + +} // namespace ZeroTier |