]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/inspircd.h
Add <oper:autologin> to allow SSL fingerprint-based automatic oper login
[user/henk/code/inspircd.git] / include / inspircd.h
index 25ba846bcad1e9762d2f77d885d41fcb722d667a..5f8fb199296c6ae2829cf4bddadbbfd4b0acecc7 100644 (file)
@@ -214,10 +214,10 @@ class serverstats
        unsigned long statsConnects;
        /** Total bytes of data transmitted
         */
-       double statsSent;
+       unsigned long statsSent;
        /** Total bytes of data received
         */
-       double statsRecv;
+       unsigned long statsRecv;
        /** Cpu usage at last sample
         */
        timeval LastCPU;
@@ -228,12 +228,13 @@ class serverstats
         */
        serverstats()
                : statsAccept(0), statsRefused(0), statsUnknown(0), statsCollisions(0), statsDns(0),
-               statsDnsGood(0), statsDnsBad(0), statsConnects(0), statsSent(0.0), statsRecv(0.0)
+               statsDnsGood(0), statsDnsBad(0), statsConnects(0), statsSent(0), statsRecv(0)
        {
        }
 };
 
 DEFINE_HANDLER2(IsNickHandler, bool, const char*, size_t);
+DEFINE_HANDLER2(GenRandomHandler, void, char*, size_t);
 DEFINE_HANDLER1(IsIdentHandler, bool, const char*);
 DEFINE_HANDLER1(FloodQuitUserHandler, void, User*);
 DEFINE_HANDLER2(IsChannelHandler, bool, const char*, size_t);
@@ -310,6 +311,7 @@ class CoreExport InspIRCd
        IsChannelHandler HandleIsChannel;
        IsSIDHandler HandleIsSID;
        RehashHandler HandleRehash;
+       GenRandomHandler HandleGenRandom;
 
        /** Globally accessible fake user record. This is used to force mode changes etc across s2s, etc.. bit ugly, but.. better than how this was done in 1.1
         * Reason for it:
@@ -449,6 +451,20 @@ class CoreExport InspIRCd
        /** Update the current time. Don't call this unless you have reason to do so. */
        void UpdateTime();
 
+       /** Generate a random string with the given length
+        * @param length The length in bytes
+        * @param printable if false, the string will use characters 0-255; otherwise,
+        * it will be limited to 0x30-0x7E ('0'-'~', nonspace printable characters)
+        */
+       std::string GenRandomStr(int length, bool printable = true);
+       /** Generate a random integer.
+        * This is generally more secure than rand()
+        */
+       unsigned long GenRandomInt(unsigned long max);
+
+       /** Fill a buffer with random bits */
+       caller2<void, char*, size_t> GenRandom;
+
        /** Bind all ports specified in the configuration file.
         * @return The number of ports bound without error
         */