X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Futils.h;h=5e9555deac3ea6c2dfec6884f0f75d2bf45d7cd7;hb=5a5a061c48af830ca90b699993cac079a9311b08;hp=db61fd7aaa40eeb7b4cf6787afce3437393034db;hpb=4f946291b7fd022b50fe5aacb9b851cebfbb2278;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/utils.h b/src/modules/m_spanningtree/utils.h index db61fd7aa..5e9555dea 100644 --- a/src/modules/m_spanningtree/utils.h +++ b/src/modules/m_spanningtree/utils.h @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team + * InspIRCd: (C) 2002-2009 InspIRCd Development Team * See: http://www.inspircd.org/wiki/index.php/Credits * * This program is free but copyrighted software; see @@ -21,16 +21,37 @@ class TreeServer; class TreeSocket; class Link; class ModuleSpanningTree; +class SpanningTreeUtilities; /* This hash_map holds the hash equivalent of the server * tree, used for rapid linear lookups. */ #ifdef WINDOWS -typedef nspace::hash_map > > server_hash; + typedef nspace::hash_map > > server_hash; #else -typedef nspace::hash_map, irc::StrHashComp> server_hash; + #ifdef HASHCOMP_DEPRECATED + typedef nspace::hash_map server_hash; + #else + typedef nspace::hash_map, irc::StrHashComp> server_hash; + #endif #endif +/* + * Initialises server connections + */ +class ServerSocketListener : public ListenSocketBase +{ + SpanningTreeUtilities *Utils; + + public: + ServerSocketListener(InspIRCd* Instance, SpanningTreeUtilities *u, int port, char* addr) : ListenSocketBase(Instance, port, addr) + { + this->Utils = u; + } + + virtual void OnAcceptReady(const std::string &ipconnectedto, int nfd, const std::string &incomingip); +}; + typedef std::map TreeServerList; /** A group of modules that implement BufferedSocketHook @@ -65,9 +86,10 @@ class SpanningTreeUtilities : public classbase /** Make snomasks +CQ quiet during bursts and splits */ bool quiet_bursts; + /** Socket bindings for listening sockets */ - std::vector Bindings; + std::vector Bindings; /* Number of seconds that a server can go without ping * before opers are warned of high latency. */ @@ -87,6 +109,9 @@ class SpanningTreeUtilities : public classbase /** Hash of servers currently bursting but not initialized as connected */ std::map burstingserverlist; + /** List of all outgoing sockets and their timeouts + */ + std::map > timeoutlist; /** Holds the data from the tags in the conf */ std::vector LinkBlocks;