]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/inspircd.h
Move fd_ref_table into class InspIRCd*
[user/henk/code/inspircd.git] / include / inspircd.h
index 109e1f2be51f226297aae38e495098d95163a41d..a8ef3bf1dcbad01e93ca7efa1a3be119031bc341 100644 (file)
@@ -43,7 +43,7 @@
  */
 #define IS_SINGLE(x,y) ( (*x == y) && (*(x+1) == 0) )
 
-#define DELETE(x) { do_log(DEBUG,"%s:%d: delete()",__FILE__,__LINE__); if (x) { delete x; x = NULL; } else log(DEBUG,"Attempt to delete NULL pointer!"); }
+#define DELETE(x) { InspIRCd::Log(DEBUG,"%s:%d: delete()",__FILE__,__LINE__); if (x) { delete x; x = NULL; } else InspIRCd::Log(DEBUG,"Attempt to delete NULL pointer!"); }
 
 template<typename T> inline std::string ConvToStr(const T &in)
 {
@@ -55,23 +55,24 @@ template<typename T> inline std::string ConvToStr(const T &in)
 class serverstats : public classbase
 {
   public:
-       int statsAccept;
-       int statsRefused;
-       int statsUnknown;
-       int statsCollisions;
-       int statsDns;
-       int statsDnsGood;
-       int statsDnsBad;
-       int statsConnects;
-       int statsSent;
-       int statsRecv;
-       int BoundPortCount;
+       unsigned long statsAccept;
+       unsigned long statsRefused;
+       unsigned long statsUnknown;
+       unsigned long statsCollisions;
+       unsigned long statsDns;
+       unsigned long statsDnsGood;
+       unsigned long statsDnsBad;
+       unsigned long statsConnects;
+       double statsSent;
+       double statsRecv;
+       unsigned long BoundPortCount;
 
        serverstats()
        {
                statsAccept = statsRefused = statsUnknown = 0;
                statsCollisions = statsDns = statsDnsGood = 0;
-               statsDnsBad = statsConnects = statsSent = statsRecv = 0;
+               statsDnsBad = statsConnects = 0;
+               statsSent = statsRecv = 0.0;
                BoundPortCount = 0;
        }
 };
@@ -88,7 +89,7 @@ class InspIRCd : public classbase
        void BuildISupport();
        void MoveTo(std::string modulename,int slot);
        void Start();
-       void SetSignals();
+       void SetSignals(bool SEGVHandler);
        bool DaemonSeed();
        void MakeLowerMap();
        void MoveToLast(std::string modulename);
@@ -96,12 +97,21 @@ class InspIRCd : public classbase
        void MoveAfter(std::string modulename, std::string after);
        void MoveBefore(std::string modulename, std::string before);
 
+       void ProcessUser(userrec* cu);
+       void DoSocketTimeouts(time_t TIME);
+       void DoBackgroundUserStuff(time_t TIME);
+
  public:
        time_t startup_time;
        ModeParser* ModeGrok;
        CommandParser* Parser;
        SocketEngine* SE;
        serverstats* stats;
+       ServerConfig* Config;
+       std::vector<InspSocket*> module_sockets;
+       InspSocket* socket_ref[MAX_DESCRIPTORS];        /* XXX: This should probably be made private, with inline accessors */
+       userrec* fd_ref_table[MAX_DESCRIPTORS];         /* XXX: Ditto */
+       DNS* Res;
 
        std::string GetRevision();
        std::string GetVersionString();
@@ -111,8 +121,9 @@ class InspIRCd : public classbase
        bool UnloadModule(const char* filename);
        InspIRCd(int argc, char** argv);
        void DoOneIteration(bool process_module_sockets);
+       static void Log(int level, const char* text, ...);
+       static void Log(int level, const std::string &text);
        int Run();
-
 };
 
 /* Miscellaneous stuff here, moved from inspircd_io.h */