X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fmodules%2Fm_spanningtree%2Futils.h;h=aeb89c6be93cec200be86beebe420c9704a2793b;hb=b57c7f4e466f72fdd2ac3deca42caa1ea7748338;hp=f9f61acaf65eea19adc44a07f7f890ae8945f5e8;hpb=1becbd4f0347de2cc4d5d4432bba41ea932689de;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/utils.h b/src/modules/m_spanningtree/utils.h index f9f61acaf..aeb89c6be 100644 --- a/src/modules/m_spanningtree/utils.h +++ b/src/modules/m_spanningtree/utils.h @@ -14,10 +14,6 @@ #ifndef __ST__UTIL__ #define __ST__UTIL__ -#include "configreader.h" -#include "users.h" -#include "channels.h" -#include "modules.h" #include "inspircd.h" /* Foward declarations */ @@ -29,7 +25,11 @@ class ModuleSpanningTree; /* This hash_map holds the hash equivalent of the server * tree, used for rapid linear lookups. */ +#ifdef WINDOWS +typedef nspace::hash_map > > server_hash; +#else typedef nspace::hash_map, irc::StrHashComp> server_hash; +#endif typedef std::map TreeServerList; @@ -72,6 +72,10 @@ class SpanningTreeUtilities /** Socket bindings for listening sockets */ std::vector Bindings; + /* Number of seconds that a server can go without ping + * before opers are warned of high latency. + */ + int PingWarnTime; /** This variable represents the root of the server tree */ TreeServer *TreeRoot; @@ -81,6 +85,9 @@ class SpanningTreeUtilities /** Hash of currently connected servers by name */ server_hash serverlist; + /** Hash of currently known server ids + */ + server_hash sidlist; /** Hash of servers currently bursting but not initialized as connected */ std::map burstingserverlist; @@ -115,6 +122,10 @@ class SpanningTreeUtilities */ bool ChallengeResponse; + /** Ping frequency of server to server links + */ + int PingFreq; + /** Initialise utility class */ SpanningTreeUtilities(InspIRCd* Instance, ModuleSpanningTree* Creator); @@ -147,10 +158,13 @@ class SpanningTreeUtilities void AddThisServer(TreeServer* server, TreeServerList &list); /** Compile a list of servers which contain members of channel c */ - void GetListOfServersForChannel(chanrec* c, TreeServerList &list, char status, const CUList &exempt_list); + void GetListOfServersForChannel(Channel* c, TreeServerList &list, char status, const CUList &exempt_list); /** Find a server by name */ TreeServer* FindServer(const std::string &ServerName); + /** Find server by SID + */ + TreeServer* FindServerID(const std::string &id); /** Find a remote bursting server by name */ TreeServer* FindRemoteBurstServer(TreeServer* Server); @@ -181,6 +195,11 @@ class SpanningTreeUtilities void AddBurstingServer(const std::string &ServerName, TreeSocket* s); void DelBurstingServer(TreeSocket* s); + + /** Return true if str looks like a server ID + * @param string to check against + */ + bool IsSID(const std::string &str); }; #endif