- ConnectClass(const std::string &hst) : type(CC_DENY), registration_timeout(0), flood(0), host(hst), pingtime(0),
- pass(""), threshold(0), sendqmax(0), recvqmax(0), maxlocal(0), maxglobal(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(""), threshold(0), sendqmax(0), recvqmax(0), maxlocal(0), maxglobal(0), maxchans(0), port(0), RefCount(0), disabled(false), limit(0)
+ {
+ }
+
+ /* Create a new connect class based on another class
+ * @param thename The name of the connect class
+ * @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), threshold(source->threshold), sendqmax(source->sendqmax),
+ recvqmax(source->recvqmax), maxlocal(source->maxlocal), maxglobal(source->maxglobal), maxchans(source->maxchans),
+ port(source->port), RefCount(0), disabled(false), limit(0)
+ {
+ }
+
+ void SetDisabled(bool t)
+ {
+ this->disabled = t;
+ }
+
+ bool GetDisabled()
+ {
+ return this->disabled;
+ }
+
+ /* 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,
+ unsigned long maxl, unsigned long maxg, unsigned int maxc, int p, unsigned long limit)
+ {
+ 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)
+ recvqmax = recvq;
+ if (maxl)
+ maxlocal = maxl;
+ if (maxg)
+ maxglobal = maxg;
+ if (maxc)
+ maxchans = maxc;
+ if (p)
+ port = p;
+
+ this->limit = limit;
+ }