X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fusers.h;h=9d1072f57beebacee87c982b15c645c2887a887b;hb=f6f8605b150492924afbb27249dde8fbc55bb3d7;hp=23a520fe0251446a2984f28d4bb2c798e272d23d;hpb=be2a677ddd01859a61f484aa8f1e5d916a8f3ca5;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/users.h b/include/users.h index 23a520fe0..9d1072f57 100644 --- a/include/users.h +++ b/include/users.h @@ -2,8 +2,8 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits + * InspIRCd: (C) 2002-2009 InspIRCd Development Team + * See: http://wiki.inspircd.org/Credits * * This program is free but copyrighted software; see * the file COPYING for details. @@ -80,21 +80,23 @@ class CoreExport ConnectClass : public classbase /** Type of line, either CC_ALLOW or CC_DENY */ char type; + /** Connect class name */ std::string name; + /** Max time to register the connection in seconds */ unsigned int registration_timeout; - /** Number of lines in buffer before excess flood is triggered - */ - unsigned int flood; + /** Host mask for this line */ std::string host; + /** Number of seconds between pings for this line */ unsigned int pingtime; + /** (Optional) Password for this line */ std::string pass; @@ -103,10 +105,6 @@ class CoreExport ConnectClass : public classbase */ std::string hash; - /** Threshold value for flood disconnect - */ - unsigned int threshold; - /** Maximum size of sendq for users in this class (bytes) */ unsigned long sendqmax; @@ -136,8 +134,8 @@ public: /** Create a new connect class based on an existing connect class. This is required for std::vector (at least under windows). */ ConnectClass(const ConnectClass* source) : classbase(), type(source->type), name(source->name), - registration_timeout(source->registration_timeout), flood(source->flood), host(source->host), - pingtime(source->pingtime), pass(source->pass), hash(source->hash), threshold(source->threshold), sendqmax(source->sendqmax), + registration_timeout(source->registration_timeout), host(source->host), + pingtime(source->pingtime), pass(source->pass), hash(source->hash), sendqmax(source->sendqmax), recvqmax(source->recvqmax), maxlocal(source->maxlocal), maxglobal(source->maxglobal), maxchans(source->maxchans), port(source->port), RefCount(0), disabled(false), limit(source->limit) { @@ -145,37 +143,35 @@ public: /** Create a new connect class with no settings. */ - ConnectClass() : type(CC_DENY), name("unnamed"), registration_timeout(0), flood(0), host(""), pingtime(0), pass(""), hash(""), - threshold(0), sendqmax(0), recvqmax(0), maxlocal(0), maxglobal(0), RefCount(0), disabled(false), limit(0) + ConnectClass() : type(CC_DENY), name("unnamed"), registration_timeout(0), host(""), pingtime(0), pass(""), hash(""), + sendqmax(0), recvqmax(0), maxlocal(0), maxglobal(0), RefCount(0), disabled(false), limit(0) { } /** Create a new connect class to ALLOW connections. * @param thename Name of the connect class * @param timeout The registration timeout - * @param fld The flood value * @param hst The IP mask to allow * @param ping The ping frequency * @param pas The password to be used * @param hsh The hash to be used - * @param thres The flooding threshold * @param sendq The maximum sendq value * @param recvq The maximum recvq value * @param maxl The maximum local sessions * @param maxg The maximum global sessions */ - ConnectClass(const std::string &thename, unsigned int timeout, unsigned int fld, const std::string &hst, unsigned int ping, - const std::string &pas, const std::string &hsh, unsigned int thres, unsigned long sendq, unsigned long recvq, + ConnectClass(const std::string &thename, unsigned int timeout,const std::string &hst, unsigned int ping, + const std::string &pas, const std::string &hsh, unsigned long sendq, unsigned long recvq, unsigned long maxl, unsigned long maxg, unsigned int maxc, int p = 0) : - type(CC_ALLOW), name(thename), registration_timeout(timeout), flood(fld), host(hst), pingtime(ping), pass(pas), hash(hsh), - threshold(thres), sendqmax(sendq), recvqmax(recvq), maxlocal(maxl), maxglobal(maxg), maxchans(maxc), port(p), RefCount(0), disabled(false), limit(0) { } + type(CC_ALLOW), name(thename), registration_timeout(timeout), host(hst), pingtime(ping), pass(pas), hash(hsh), + sendqmax(sendq), recvqmax(recvq), maxlocal(maxl), maxglobal(maxg), maxchans(maxc), port(p), RefCount(0), disabled(false), limit(0) { } /** Create a new connect class to DENY connections * @param thename Name of the connect class * @param hst The IP mask to deny */ ConnectClass(const std::string &thename, const std::string &hst) : type(CC_DENY), name(thename), registration_timeout(0), - flood(0), host(hst), pingtime(0), pass(""), hash(""), threshold(0), sendqmax(0), recvqmax(0), maxlocal(0), maxglobal(0), maxchans(0), port(0), RefCount(0), disabled(false), limit(0) + host(hst), pingtime(0), pass(""), hash(""), sendqmax(0), recvqmax(0), maxlocal(0), maxglobal(0), maxchans(0), port(0), RefCount(0), disabled(false), limit(0) { } @@ -184,8 +180,8 @@ public: * @param source Another connect class to inherit all but the name from */ ConnectClass(const std::string &thename, const ConnectClass* source) : type(source->type), name(thename), - registration_timeout(source->registration_timeout), flood(source->flood), host(source->host), - pingtime(source->pingtime), pass(source->pass), hash(source->hash), threshold(source->threshold), sendqmax(source->sendqmax), + registration_timeout(source->registration_timeout), host(source->host), + pingtime(source->pingtime), pass(source->pass), hash(source->hash), sendqmax(source->sendqmax), recvqmax(source->recvqmax), maxlocal(source->maxlocal), maxglobal(source->maxglobal), maxchans(source->maxchans), port(source->port), RefCount(0), disabled(false), limit(source->limit) { @@ -203,22 +199,18 @@ public: /* Update an existing entry with new values */ - void Update(unsigned int timeout, unsigned int fld, const std::string &hst, unsigned int ping, - const std::string &pas, unsigned int thres, unsigned long sendq, unsigned long recvq, + void Update(unsigned int timeout, const std::string &hst, unsigned int ping, + const std::string &pas, unsigned long sendq, unsigned long recvq, unsigned long maxl, unsigned long maxg, unsigned int maxc, int p, unsigned long llimit) { if (timeout) registration_timeout = timeout; - if (fld) - flood = fld; if (!hst.empty()) host = hst; if (ping) pingtime = ping; if (!pas.empty()) pass = pas; - if (thres) - threshold = thres; if (sendq) sendqmax = sendq; if (recvq) @@ -279,13 +271,6 @@ public: return (registration_timeout ? registration_timeout : 90); } - /** Returns the flood limit - */ - unsigned int GetFlood() - { - return (threshold ? flood : 999); - } - /** Returns the allowed or denied IP mask */ const std::string& GetHost() @@ -328,13 +313,6 @@ public: return hash; } - /** Returns the flood threshold value - */ - unsigned int GetThreshold() - { - return (threshold ? threshold : 1); - } - /** Returns the maximum sendq value */ unsigned long GetSendqMax() @@ -408,19 +386,11 @@ class CoreExport VisData /** Holds all information about a user * This class stores all information about a user connected to the irc server. Everything about a * connection is stored here primarily, from the user's socket ID (file descriptor) through to the - * user's nickname and hostname. Use the FindNick method of the InspIRCd class to locate a specific user - * by nickname, or the FindDescriptor method of the InspIRCd class to find a specific user by their - * file descriptor value. + * user's nickname and hostname. */ class CoreExport User : public EventHandler { private: - /** Pointer to creator. - * This is required to make use of core functions - * from within the User class. - */ - InspIRCd* ServerInstance; - /** A list of channels the user has a pending invite to. * Upon INVITE channels are added, and upon JOIN, the * channels are removed from this list. @@ -463,6 +433,12 @@ class CoreExport User : public EventHandler std::bitset<64> AllowedChanModes; public: + /** Pointer to creator. + * This is required to make use of core functions + * from within the User class. + */ + InspIRCd* ServerInstance; + /** Contains a pointer to the connect class a user is on from - this will be NULL for remote connections. * The pointer is guarenteed to *always* be valid. :) */ @@ -536,26 +512,26 @@ class CoreExport User : public EventHandler * Use InspIRCd::IsNick() to validate nicknames. */ std::string nick; - + /** The user's unique identifier. * This is the unique identifier which the user has across the network. */ std::string uuid; - + /** The users ident reply. * Two characters are added to the user-defined limit to compensate for the tilde etc. */ std::string ident; - + /** The host displayed to non-opers (used for cloaking etc). * This usually matches the value of User::host. */ std::string dhost; - + /** The users full name (GECOS). */ std::string fullname; - + /** The user's mode list. * NOT a null terminated string. * Also NOT an array. @@ -585,7 +561,7 @@ class CoreExport User : public EventHandler * If this string is empty, the user is not marked as away. */ std::string awaymsg; - + /** Time the user last went away. * This is ONLY RELIABLE if user IS_AWAY()! */ @@ -597,7 +573,7 @@ class CoreExport User : public EventHandler * The value of this is the value of a valid 'type name=' tag. */ std::string oper; - + /** True when DNS lookups are completed. * The UserResolver classes res_forward and res_reverse will * set this value once they complete. @@ -609,7 +585,7 @@ class CoreExport User : public EventHandler * modules may check it. */ std::string password; - + /** User's receive queue. * Lines from the IRCd awaiting processing are stored here. * Upgraded april 2005, old system a bit hairy. @@ -703,7 +679,7 @@ class CoreExport User : public EventHandler * on the server, in nick!ident&at;host form. * @return The full masked host of the user */ - virtual const std::string& GetFullHost(); + virtual const std::string GetFullHost(); /** Returns the full real host of the user * This member function returns the hostname of the user as seen by other users @@ -711,7 +687,7 @@ class CoreExport User : public EventHandler * e.g. through a module, then this method will ignore it and return the true hostname. * @return The full real host of the user */ - virtual const std::string& GetFullRealHost(); + virtual const std::string GetFullRealHost(); /** This clears any cached results that are used for GetFullRealHost() etc. * The results of these calls are cached as generating them can be generally expensive. @@ -1163,9 +1139,8 @@ class CoreExport UserResolver : public Resolver * @param result Result string * @param ttl Time to live for result * @param cached True if the result was found in the cache - * @param resultnum Result number, we are only interested in result 0 */ - void OnLookupComplete(const std::string &result, unsigned int ttl, bool cached, int resultnum = 0); + void OnLookupComplete(const std::string &result, unsigned int ttl, bool cached); /** Called on failed lookup * @param e Error code @@ -1178,4 +1153,3 @@ class CoreExport UserResolver : public Resolver //class ServerConfig; #endif -