X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Futils.h;h=d437b998b436c3400ea5483431ff331068744433;hb=9c02aff3e4a05c1aeb3f832da7d7c0e475121a96;hp=1c94e264fecbdb8050074017717a168a7a73bffa;hpb=7555c1801d81d2f8ac2d4b953135ff980037f6b4;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/utils.h b/src/modules/m_spanningtree/utils.h index 1c94e264f..d437b998b 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,11 +25,15 @@ 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; -/** A group of modules that implement InspSocketHook +/** A group of modules that implement BufferedSocketHook * that we can use to hook our server to server connections. */ typedef std::map hookmodules; @@ -85,17 +85,15 @@ 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; /** Holds the data from the tags in the conf */ std::vector LinkBlocks; - /** Holds a bitmask of queued xline types waiting to be applied. - * Will be a mask containing values APPLY_GLINES, APPLY_KLINES, - * APPLY_QLINES and APPLY_ZLINES. - */ - int lines_to_apply; /** If this is true, this server is the master sync server for time * synching - e.g. it is the server with its clock correct. It will @@ -119,6 +117,10 @@ class SpanningTreeUtilities */ bool ChallengeResponse; + /** Ping frequency of server to server links + */ + int PingFreq; + /** Initialise utility class */ SpanningTreeUtilities(InspIRCd* Instance, ModuleSpanningTree* Creator); @@ -151,10 +153,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); @@ -185,6 +190,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