X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Ftreeserver.cpp;h=54ea5922fbaa56a770c31935c91455bc9cddfb65;hb=67de413cad88194972d55a8ff88464370890c5a9;hp=7b745410dedd85ca0f8f739651a01538c0571a27;hpb=c6b911132caba237f86280d1b2cb32ad3123f0da;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/treeserver.cpp b/src/modules/m_spanningtree/treeserver.cpp index 7b745410d..54ea5922f 100644 --- a/src/modules/m_spanningtree/treeserver.cpp +++ b/src/modules/m_spanningtree/treeserver.cpp @@ -28,15 +28,13 @@ #include "utils.h" #include "treeserver.h" -/* $ModDep: m_spanningtree/utils.h m_spanningtree/treeserver.h */ - /** We use this constructor only to create the 'root' item, Utils->TreeRoot, which * represents our own server. Therefore, it has no route, no parent, and * no socket associated with it. Its version string is our own local version. */ -TreeServer::TreeServer(SpanningTreeUtilities* Util) +TreeServer::TreeServer() : Parent(NULL), Route(NULL), ServerName(ServerInstance->Config->ServerName), ServerDesc(ServerInstance->Config->ServerDesc) - , VersionString(ServerInstance->GetVersionString()), Socket(NULL), Utils(Util), sid(ServerInstance->Config->GetSID()), ServerUser(ServerInstance->FakeClient) + , VersionString(ServerInstance->GetVersionString()), Socket(NULL), sid(ServerInstance->Config->GetSID()), ServerUser(ServerInstance->FakeClient) , age(ServerInstance->Time()), Warned(false), bursting(false), UserCount(0), OperCount(0), rtt(0), StartBurst(0), Hidden(false) { AddHashEntry(); @@ -46,8 +44,8 @@ TreeServer::TreeServer(SpanningTreeUtilities* Util) * This constructor initializes the server's Route and Parent, and sets up * its ping counters so that it will be pinged one minute from now. */ -TreeServer::TreeServer(SpanningTreeUtilities* Util, const std::string& Name, const std::string& Desc, const std::string& id, TreeServer* Above, TreeSocket* Sock, bool Hide) - : Parent(Above), ServerName(Name), ServerDesc(Desc), Socket(Sock), Utils(Util), sid(id), ServerUser(new FakeUser(id, Name)) +TreeServer::TreeServer(const std::string& Name, const std::string& Desc, const std::string& id, TreeServer* Above, TreeSocket* Sock, bool Hide) + : Parent(Above), ServerName(Name), ServerDesc(Desc), Socket(Sock), sid(id), ServerUser(new FakeUser(id, Name)) , age(ServerInstance->Time()), Warned(false), bursting(true), UserCount(0), OperCount(0), rtt(0), Hidden(Hide) { SetNextPingTime(ServerInstance->Time() + Utils->PingFreq); @@ -55,7 +53,7 @@ TreeServer::TreeServer(SpanningTreeUtilities* Util, const std::string& Name, con long ts = ServerInstance->Time() * 1000 + (ServerInstance->Time_ns() / 1000000); this->StartBurst = ts; - ServerInstance->Logs->Log("m_spanningtree", LOG_DEBUG, "Server %s started bursting at time %lu", sid.c_str(), ts); + ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Server %s started bursting at time %lu", sid.c_str(), ts); /* find the 'route' for this server (e.g. the one directly connected * to the local server, which we can use to reach it) @@ -155,7 +153,7 @@ int TreeServer::QuitUsers(const std::string &reason) User* a = (User*)*n; if (!IS_LOCAL(a)) { - if (this->Utils->quiet_bursts) + if (Utils->quiet_bursts) a->quietquit = true; if (ServerInstance->Config->HideSplits) @@ -273,13 +271,13 @@ bool TreeServer::DelChild(TreeServer* Child) * This is used during netsplits to automatically tidy up the * server tree. It is slow, we don't use it for much else. */ -bool TreeServer::Tidy() +void TreeServer::Tidy() { while (1) { std::vector::iterator a = Children.begin(); if (a == Children.end()) - return true; + return; TreeServer* s = *a; s->Tidy(); s->cull(); @@ -290,7 +288,7 @@ bool TreeServer::Tidy() CullResult TreeServer::cull() { - if (ServerUser != ServerInstance->FakeClient) + if (!IsRoot()) ServerUser->cull(); return classbase::cull(); } @@ -298,7 +296,7 @@ CullResult TreeServer::cull() TreeServer::~TreeServer() { /* We'd better tidy up after ourselves, eh? */ - if (ServerUser != ServerInstance->FakeClient) + if (!IsRoot()) delete ServerUser; Utils->sidlist.erase(sid);