]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_xline_db.cpp
Silence some GCC warnings.
[user/henk/code/inspircd.git] / src / modules / m_xline_db.cpp
index 925024aea51baed27027aa74304692daf173aacd..97531aae835c04b14bb3679ae4aeb384f1e366f2 100644 (file)
 #include "xline.h"
 #include <fstream>
 
-class ModuleXLineDB : public Module
+class ModuleXLineDB
+       : public Module
+       , public Timer
 {
+ private:
        bool dirty;
        std::string xlinedbpath;
+
  public:
+       ModuleXLineDB()
+               : Timer(0, true)
+       {
+       }
+
        void init() CXX11_OVERRIDE
        {
                /* Load the configuration
@@ -37,6 +46,7 @@ class ModuleXLineDB : public Module
                 */
                ConfigTag* Conf = ServerInstance->Config->ConfValue("xlinedb");
                xlinedbpath = ServerInstance->Config->Paths.PrependData(Conf->getString("filename", "xline.db"));
+               SetInterval(Conf->getDuration("saveperiod", 5));
 
                // Read xlines before attaching to events
                ReadDatabase();
@@ -66,13 +76,14 @@ class ModuleXLineDB : public Module
                        dirty = true;
        }
 
-       void OnBackgroundTimer(time_t now) CXX11_OVERRIDE
+       bool Tick(time_t) CXX11_OVERRIDE
        {
                if (dirty)
                {
                        if (WriteDatabase())
                                dirty = false;
                }
+               return true;
        }
 
        bool WriteDatabase()
@@ -200,8 +211,8 @@ class ModuleXLineDB : public Module
                                        continue;
                                }
 
-                               XLine* xl = xlf->Generate(ServerInstance->Time(), atoi(command_p[5].c_str()), command_p[3], command_p[6], command_p[2]);
-                               xl->SetCreateTime(atoi(command_p[4].c_str()));
+                               XLine* xl = xlf->Generate(ServerInstance->Time(), ConvToNum<unsigned long>(command_p[5]), command_p[3], command_p[6], command_p[2]);
+                               xl->SetCreateTime(ConvToNum<time_t>(command_p[4]));
 
                                if (ServerInstance->XLines->AddLine(xl, NULL))
                                {