Multicaster needs to be global, not per-network, and a bunch of other stuff.
This commit is contained in:
parent
8607aa7c3c
commit
2659427864
10 changed files with 365 additions and 142 deletions
|
@ -69,6 +69,7 @@
|
|||
#include "NodeConfig.hpp"
|
||||
#include "Network.hpp"
|
||||
#include "MulticastGroup.hpp"
|
||||
#include "Multicaster.hpp"
|
||||
#include "Mutex.hpp"
|
||||
#include "Service.hpp"
|
||||
#include "SoftwareUpdater.hpp"
|
||||
|
@ -112,6 +113,7 @@ struct _NodeImpl
|
|||
delete renv.topology; renv.topology = (Topology *)0; // now we no longer need routing info
|
||||
delete renv.sm; renv.sm = (SocketManager *)0; // close all sockets
|
||||
delete renv.sw; renv.sw = (Switch *)0; // order matters less from here down
|
||||
delete renv.mc; renv.mc = (Multicaster *)0;
|
||||
delete renv.antiRec; renv.antiRec = (AntiRecursion *)0;
|
||||
delete renv.http; renv.http = (HttpClient *)0;
|
||||
delete renv.prng; renv.prng = (CMWC4096 *)0;
|
||||
|
@ -380,6 +382,7 @@ Node::ReasonForTermination Node::run()
|
|||
|
||||
RR->http = new HttpClient();
|
||||
RR->antiRec = new AntiRecursion();
|
||||
RR->mc = new Multicaster();
|
||||
RR->sw = new Switch(_r);
|
||||
RR->sm = new SocketManager(impl->udpPort,impl->tcpPort,&_CBztTraffic,_r);
|
||||
RR->topology = new Topology(RR,Utils::fileExists((RR->homePath + ZT_PATH_SEPARATOR_S + "iddb.d").c_str()));
|
||||
|
@ -602,8 +605,8 @@ Node::ReasonForTermination Node::run()
|
|||
// Do periodic tasks in submodules.
|
||||
if ((now - lastClean) >= ZT_DB_CLEAN_PERIOD) {
|
||||
lastClean = now;
|
||||
RR->mc->clean();
|
||||
RR->topology->clean();
|
||||
RR->mc->clean(RR,now);
|
||||
RR->nc->clean();
|
||||
if (RR->updater)
|
||||
RR->updater->checkIfMaxIntervalExceeded(now);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue