]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Bring back Prioritize (needs to occur after module load) with a different declaration
[user/henk/code/inspircd.git] / include / configreader.h
index 37e3c1f44ab0db37843b8eef22fc988958b66368..67fe2e2bf4c226020fe0c249a7b0980717fea256 100644 (file)
@@ -44,7 +44,12 @@ enum ConfigDataType
        DT_INTEGER       = 1,           /* Integer */
        DT_CHARPTR       = 2,           /* Char pointer */
        DT_BOOLEAN       = 3,           /* Boolean */
-       DT_ALLOW_NEWLINE = 128          /* New line characters allowed */
+       DT_HOSTNAME      = 4,           /* Hostname syntax */
+       DT_NOSPACES      = 5,           /* No spaces */
+       DT_IPADDRESS     = 6,           /* IP address (v4, v6) */
+       DT_CHANNEL       = 7,           /* Channel name */
+       DT_ALLOW_WILD    = 64,          /* Allow wildcards/CIDR in DT_IPADDRESS */
+       DT_ALLOW_NEWLINE = 128          /* New line characters allowed in DT_CHARPTR */
 };
 
 /** Holds a config value, either string, integer or boolean.
@@ -713,6 +718,12 @@ class CoreExport ServerConfig : public Extensible
        /** Returns the numbers of vars inside the index'th 'tag in the config file
         */
        int ConfVarEnum(ConfigDataHash &target, const std::string &tag, int index);
+
+       void ValidateHostname(const char* p, const std::string &tag, const std::string &val);
+
+       void ValidateIP(const char* p, const std::string &tag, const std::string &val, bool wild);
+
+       void ValidateNoSpaces(const char* p, const std::string &tag, const std::string &val);
        
        /** Get a pointer to the module which has hooked the given port.
         * @parameter port Port number
@@ -803,5 +814,30 @@ bool DoClass(ServerConfig* conf, const char* tag, char** entries, ValueList &val
  */
 bool DoneClassesAndTypes(ServerConfig* conf, const char* tag);
 
+
+
+/** Initialize x line
+ */
+bool InitXLine(ServerConfig* conf, const char* tag);
+/** Add a config-defined zline
+ */
+bool DoZLine(ServerConfig* conf, const char* tag, char** entries, ValueList &values, int* types);
+
+/** Add a config-defined qline
+ */
+bool DoQLine(ServerConfig* conf, const char* tag, char** entries, ValueList &values, int* types);
+
+/** Add a config-defined kline
+ */
+bool DoKLine(ServerConfig* conf, const char* tag, char** entries, ValueList &values, int* types);
+
+/** Add a config-defined eline
+ */
+bool DoELine(ServerConfig* conf, const char* tag, char** entries, ValueList &values, int* types);
+
+
+
+
 #endif