X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Ftreeserver.cpp;h=0c9509adab1e9341e397bb4b98cda47d89fe5aa5;hb=7775dc1be52c20fba05697521197742b5e288cb9;hp=3d0e2e49bc15da5029d1e0752ddfd7cd88561f75;hpb=b0d59543bb9d920b9926239d66b950ea27a9b4f3;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/treeserver.cpp b/src/modules/m_spanningtree/treeserver.cpp index 3d0e2e49b..0c9509ada 100644 --- a/src/modules/m_spanningtree/treeserver.cpp +++ b/src/modules/m_spanningtree/treeserver.cpp @@ -1,3 +1,16 @@ +/* +------------------------------------+ + * | Inspire Internet Relay Chat Daemon | + * +------------------------------------+ + * + * InspIRCd: (C) 2002-2007 InspIRCd Development Team + * See: http://www.inspircd.org/wiki/index.php/Credits + * + * This program is free but copyrighted software; see + * the file COPYING for details. + * + * --------------------------------------------------- + */ + #include "configreader.h" #include "users.h" #include "channels.h" @@ -13,6 +26,8 @@ #include "m_spanningtree/utils.h" #include "m_spanningtree/treeserver.h" +/* $ModDep: m_spanningtree/utils.h m_spanningtree/treeserver.h */ + TreeServer::TreeServer(SpanningTreeUtilities* Util, InspIRCd* Instance) : ServerInstance(Instance), Utils(Util) { Parent = NULL; @@ -20,6 +35,8 @@ TreeServer::TreeServer(SpanningTreeUtilities* Util, InspIRCd* Instance) : Server ServerDesc = ""; VersionString = ""; UserCount = OperCount = 0; + rtt = LastPing = 0; + Hidden = false; VersionString = ServerInstance->GetVersionString(); } @@ -36,6 +53,8 @@ TreeServer::TreeServer(SpanningTreeUtilities* Util, InspIRCd* Instance, std::str VersionString = ServerInstance->GetVersionString(); Route = NULL; Socket = NULL; /* Fix by brain */ + rtt = LastPing = 0; + Hidden = false; AddHashEntry(); } @@ -43,13 +62,14 @@ TreeServer::TreeServer(SpanningTreeUtilities* Util, InspIRCd* Instance, std::str * 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, InspIRCd* Instance, std::string Name, std::string Desc, TreeServer* Above, TreeSocket* Sock) - : ServerInstance(Instance), Parent(Above), ServerName(Name.c_str()), ServerDesc(Desc), Socket(Sock), Utils(Util) +TreeServer::TreeServer(SpanningTreeUtilities* Util, InspIRCd* Instance, std::string Name, std::string Desc, TreeServer* Above, TreeSocket* Sock, bool Hide) + : ServerInstance(Instance), Parent(Above), ServerName(Name.c_str()), ServerDesc(Desc), Socket(Sock), Utils(Util), Hidden(Hide) { VersionString = ""; UserCount = OperCount = 0; this->SetNextPingTime(time(NULL) + 60); this->SetPingFlag(); + rtt = LastPing = 0; /* find the 'route' for this server (e.g. the one directly connected * to the local server, which we can use to reach it) * @@ -119,7 +139,15 @@ int TreeServer::QuitUsers(const std::string &reason) { userrec* a = (userrec*)*n; if (!IS_LOCAL(a)) - userrec::QuitUser(ServerInstance,a,reason_s); + { + if (ServerInstance->Config->HideSplits) + userrec::QuitUser(ServerInstance, a, "*.net *.split", reason_s); + else + userrec::QuitUser(ServerInstance, a, reason_s); + + if (this->Utils->quiet_bursts) + ServerInstance->GlobalCulls.MakeSilent(a); + } } return time_to_die.size(); }