]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/xline.h
Add counter system for umodes to get rid of some O(n)
[user/henk/code/inspircd.git] / include / xline.h
index 8c18ab37e95b4f4a011ff1241af3ea766c6267a3..648cccbb040afb049c62f07d58b7dd971eef9cc9 100644 (file)
@@ -2,12 +2,9 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
- *                       E-mail:
- *                <brain@chatspike.net>
- *               <Craig@chatspike.net>
- *     
- * Written by Craig Edwards, Craig McLure, and others.
+ *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
  * This program is free but copyrighted software; see
  *            the file COPYING for details.
  *
@@ -42,6 +39,7 @@ class XLine : public classbase
        {
                source = strdup(src);
                reason = strdup(re);
+               expiry = set_time + duration;
        }
 
        virtual ~XLine()
@@ -64,6 +62,10 @@ class XLine : public classbase
        /** Reason for the ban
         */
        char* reason;
+
+       /** Expiry time
+        */
+       time_t expiry;
 };
 
 /** KLine class
@@ -186,10 +188,10 @@ class InspIRCd;
 bool InitXLine(ServerConfig* conf, const char* tag);
 bool DoneXLine(ServerConfig* conf, const char* tag);
 
-bool DoZLine(ServerConfig* conf, const char* tag, char** entries, void** values, int* types);
-bool DoQLine(ServerConfig* conf, const char* tag, char** entries, void** values, int* types);
-bool DoKLine(ServerConfig* conf, const char* tag, char** entries, void** values, int* types);
-bool DoELine(ServerConfig* conf, const char* tag, char** entries, void** values, int* types);
+bool DoZLine(ServerConfig* conf, const char* tag, char** entries, ValueList &values, int* types);
+bool DoQLine(ServerConfig* conf, const char* tag, char** entries, ValueList &values, int* types);
+bool DoKLine(ServerConfig* conf, const char* tag, char** entries, ValueList &values, int* types);
+bool DoELine(ServerConfig* conf, const char* tag, char** entries, ValueList &values, int* types);
 
 typedef std::pair<std::string, std::string> IdentHostPair;
 
@@ -342,31 +344,31 @@ class XLineManager
         * @return nick The nick to check against
         * @return The reason for the line if there is a match, or NULL if there is no match
         */
-       char* matches_qline(const char* nick);
+       QLine* matches_qline(const char* nick);
 
        /** Check if a hostname matches a GLine
         * @param user The user to check against
         * @return The reason for the line if there is a match, or NULL if there is no match
         */
-       char* matches_gline(userrec* user);
+       GLine* matches_gline(userrec* user);
 
        /** Check if a IP matches a ZLine
         * @param ipaddr The IP to check against
         * @return The reason for the line if there is a match, or NULL if there is no match
         */
-       char* matches_zline(const char* ipaddr);
+       ZLine* matches_zline(const char* ipaddr);
 
        /** Check if a hostname matches a KLine
         * @param user The user to check against
         * @return The reason for the line if there is a match, or NULL if there is no match
         */
-       char* matches_kline(userrec* user);
+       KLine* matches_kline(userrec* user);
 
        /** Check if a hostname matches a ELine
         * @param user The user to check against
         * @return The reason for the line if there is a match, or NULL if there is no match
         */
-       char* matches_exception(userrec* user);
+       ELine* matches_exception(userrec* user);
 
        /** Expire any pending non-permenant lines
         */