]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Improve the way 005 ISUPPORT is sent to users when they connect, cache it in a much...
[user/henk/code/inspircd.git] / include / configreader.h
index f3816ba32b61c1756918fae6eae917ac202a843f..622c44d0d9ae61b8138c418c1afb437ec533a5ab 100644 (file)
@@ -30,6 +30,7 @@
 
 class ServerConfig;
 class InspIRCd;
+class InspSocket;
 
 /** Types of data in the core config
  */
@@ -292,10 +293,6 @@ class ServerConfig : public Extensible
         */
        char ModPath[1024];
 
-       /** The temporary directory where modules are copied
-        */
-       char TempDir[1024];
-
        /** The full pathname to the executable, as
         * given in argv[0] when the program starts.
         */
@@ -449,11 +446,14 @@ class ServerConfig : public Extensible
         */
        std::map<int,Module*> IOHookModule;
 
+       std::map<InspSocket*, Module*> SocketIOHookModule;
+
        /** The 005 tokens of this server (ISUPPORT)
         * populated/repopulated upon loading or unloading
         * modules.
         */
        std::string data005;
+       std::vector<std::string> isupport;
 
        /** STATS characters in this list are available
         * only to operators.
@@ -505,6 +505,14 @@ class ServerConfig : public Extensible
         */
        void ClearStack();
 
+       /** Update the 005 vector
+        */
+       void Update005();
+
+       /** Send the 005 numerics (ISUPPORT) to a user
+        */
+       void Send005(userrec* user);
+
        /** Read the entire configuration into memory
         * and initialize this class. All other methods
         * should be used only by the core.
@@ -564,6 +572,9 @@ class ServerConfig : public Extensible
        Module* GetIOHook(int port);
        bool AddIOHook(int port, Module* iomod);
        bool DelIOHook(int port);
+       Module* GetIOHook(InspSocket* is);
+       bool AddIOHook(Module* iomod, InspSocket* is);
+       bool DelIOHook(InspSocket* is);
 
        static std::string GetFullProgDir(char** argv, int argc);
        static bool DirValid(const char* dirandfile);