diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/configreader.h | 6 | ||||
-rw-r--r-- | include/users.h | 29 |
2 files changed, 27 insertions, 8 deletions
diff --git a/include/configreader.h b/include/configreader.h index 7c5592432..648b02eb1 100644 --- a/include/configreader.h +++ b/include/configreader.h @@ -182,11 +182,11 @@ struct MultiConfig /** Tag name */ const char* tag; /** One or more items within tag */ - char* items[15]; + char* items[17]; /** One or more defaults for items within tags */ - char* items_default[15]; + char* items_default[17]; /** One or more data types */ - int datatype[15]; + int datatype[17]; /** Initialization function */ MultiNotify init_function; /** Validation function */ diff --git a/include/users.h b/include/users.h index 8628e2c21..66ca2b9cc 100644 --- a/include/users.h +++ b/include/users.h @@ -164,6 +164,11 @@ class CoreExport ConnectClass : public classbase /** Global max when connecting by this connection class */ unsigned long maxglobal; + + /** Max channels for this class + */ + unsigned int maxchans; + /** Port number this connect class applies to */ int port; @@ -190,16 +195,16 @@ public: */ ConnectClass(const std::string &thename, 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, - unsigned long maxl, unsigned long maxg, int p = 0) : + 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), - threshold(thres), sendqmax(sendq), recvqmax(recvq), maxlocal(maxl), maxglobal(maxg), port(p) { } + threshold(thres), sendqmax(sendq), recvqmax(recvq), maxlocal(maxl), maxglobal(maxg), maxchans(maxc), port(p) { } /** 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(""), threshold(0), sendqmax(0), recvqmax(0), maxlocal(0), maxglobal(0), port(0) { } + flood(0), host(hst), pingtime(0), pass(""), threshold(0), sendqmax(0), recvqmax(0), maxlocal(0), maxglobal(0), maxchans(0), port(0) { } /* Create a new connect class based on another class * @param thename The name of the connect class @@ -208,7 +213,8 @@ public: 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), threshold(source.threshold), sendqmax(source.sendqmax), - recvqmax(source.recvqmax), maxlocal(source.maxlocal), maxglobal(source.maxglobal), port(source.port) + recvqmax(source.recvqmax), maxlocal(source.maxlocal), maxglobal(source.maxglobal), maxchans(source.maxchans), + port(source.port) { } @@ -216,7 +222,7 @@ public: */ 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, - unsigned long maxl, unsigned long maxg, int p) + unsigned long maxl, unsigned long maxg, unsigned int maxc, int p) { if (timeout) registration_timeout = timeout; @@ -238,10 +244,17 @@ public: maxlocal = maxl; if (maxg) maxglobal = maxg; + if (maxc) + maxchans = maxc; if (p) port = p; } + int GetMaxChans() + { + return maxchans; + } + /** Returns the type, CC_ALLOW or CC_DENY */ char GetType() @@ -437,6 +450,10 @@ class CoreExport userrec : public connection */ char* operquit; + /** Max channels for this user + */ + unsigned int MaxChans; + public: /** Resolvers for looking up this users IP address * This will occur if and when res_reverse completes. @@ -465,6 +482,8 @@ class CoreExport userrec : public connection */ void StartDNSLookup(); + unsigned int GetMaxChans(); + /** The users nickname. * An invalid nickname indicates an unregistered connection prior to the NICK command. * Use InspIRCd::IsNick() to validate nicknames. |