X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspircd.h;h=e575cd8b021726ffdffdebb025013ce52d467fb0;hb=467b276d9d0407ec412262525c43c28d47fdae2f;hp=a707eec734efc13bd6fb458e9597c6d53e87f37d;hpb=0babd8c0783242fc647cdcdfefb399c099e367ad;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspircd.h b/include/inspircd.h index a707eec73..e575cd8b0 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -46,6 +46,7 @@ #include "intrusive_list.h" #include "compat.h" #include "typedefs.h" +#include "stdalgo.h" CoreExport extern InspIRCd* ServerInstance; @@ -77,6 +78,7 @@ CoreExport extern InspIRCd* ServerInstance; #include "configreader.h" #include "inspstring.h" #include "protocol.h" +#include "bancache.h" /** Returned by some functions to indicate failure. */ @@ -155,6 +157,15 @@ template inline long ConvToInt(const T &in) return atol(tmp.str().c_str()); } +inline uint64_t ConvToUInt64(const std::string& in) +{ + uint64_t ret; + std::istringstream tmp(in); + if (!(tmp >> ret)) + return 0; + return ret; +} + /** This class contains various STATS counters * It is used by the InspIRCd class, which internally * has an instance of it. @@ -164,38 +175,38 @@ class serverstats public: /** Number of accepted connections */ - unsigned long statsAccept; + unsigned long Accept; /** Number of failed accepts */ - unsigned long statsRefused; + unsigned long Refused; /** Number of unknown commands seen */ - unsigned long statsUnknown; + unsigned long Unknown; /** Number of nickname collisions handled */ - unsigned long statsCollisions; + unsigned long Collisions; /** Number of DNS queries sent out */ - unsigned long statsDns; + unsigned long Dns; /** Number of good DNS replies received * NOTE: This may not tally to the number sent out, * due to timeouts and other latency issues. */ - unsigned long statsDnsGood; + unsigned long DnsGood; /** Number of bad (negative) DNS replies received * NOTE: This may not tally to the number sent out, * due to timeouts and other latency issues. */ - unsigned long statsDnsBad; + unsigned long DnsBad; /** Number of inbound connections seen */ - unsigned long statsConnects; + unsigned long Connects; /** Total bytes of data transmitted */ - unsigned long statsSent; + unsigned long Sent; /** Total bytes of data received */ - unsigned long statsRecv; + unsigned long Recv; #ifdef _WIN32 /** Cpu usage at last sample */ @@ -217,8 +228,8 @@ class serverstats /** The constructor initializes all the counts to zero */ serverstats() - : statsAccept(0), statsRefused(0), statsUnknown(0), statsCollisions(0), statsDns(0), - statsDnsGood(0), statsDnsBad(0), statsConnects(0), statsSent(0), statsRecv(0) + : Accept(0), Refused(0), Unknown(0), Collisions(0), Dns(0), + DnsGood(0), DnsBad(0), Connects(0), Sent(0), Recv(0) { } }; @@ -336,7 +347,7 @@ class CoreExport InspIRCd /** Thread engine, Handles threading where required */ - ThreadEngine* Threads; + ThreadEngine Threads; /** The thread/class used to read config files in REHASH and on startup */ @@ -354,11 +365,11 @@ class CoreExport InspIRCd /** BanCacheManager is used to speed up checking of restrictions on connection * to the IRCd. */ - BanCacheManager *BanCache; + BanCacheManager BanCache; /** Stats class, holds miscellaneous stats counters */ - serverstats* stats; + serverstats stats; /** Server Config class, holds configuration file data */ @@ -671,3 +682,9 @@ class CommandModule : public Module return Version(cmd.name, VF_VENDOR|VF_CORE); } }; + +inline void stdalgo::culldeleter::operator()(classbase* item) +{ + if (item) + ServerInstance->GlobalCulls.AddItem(item); +}