]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_xline_db.cpp
Add comments
[user/henk/code/inspircd.git] / src / modules / m_xline_db.cpp
index e52caed17656c09929e6d5a0fc158c9728e719a3..5b4553ab7975e728d50b7b5ca63445156d3a00fa 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2008 InspIRCd Development Team
  * See: http://www.inspircd.org/wiki/index.php/Credits
  *
  * This program is free but copyrighted software; see
@@ -24,8 +24,8 @@ class ModuleXLineDB : public Module
  public:
        ModuleXLineDB(InspIRCd* Me) : Module(Me)
        {
-               Implementation eventlist[] = { I_OnAddLine, I_OnDelLine };
-               ServerInstance->Modules->Attach(eventlist, this, 2);
+               Implementation eventlist[] = { I_OnAddLine, I_OnDelLine, I_OnExpireLine };
+               ServerInstance->Modules->Attach(eventlist, this, 3);
 
                reading_db = true;
                ReadDatabase();
@@ -43,15 +43,9 @@ class ModuleXLineDB : public Module
         */
        void OnAddLine(User* source, XLine* line)
        {
+               ServerInstance->Log(DEBUG, "xlinedb: Adding a line");
                xlines.push_back(line);
 
-               for (std::vector<XLine *>::iterator i = xlines.begin(); i != xlines.end(); i++)
-               {
-                       line = (*i);
-                       ServerInstance->WriteOpers("%s %s %s %lu %lu :%s", line->type.c_str(), line->Displayable(),
-ServerInstance->Config->ServerName, line->set_time, line->duration, line->reason);
-               }
-
                if (!reading_db)
                {
                        WriteDatabase();
@@ -65,6 +59,17 @@ ServerInstance->Config->ServerName, line->set_time, line->duration, line->reason
         */
        void OnDelLine(User* source, XLine* line)
        {
+               RemoveLine(line);
+       }
+
+       void OnExpireLine(XLine *line)
+       {
+               RemoveLine(line);
+       }
+
+       void RemoveLine(XLine *line)
+       {
+               ServerInstance->Log(DEBUG, "xlinedb: Removing a line");
                for (std::vector<XLine *>::iterator i = xlines.begin(); i != xlines.end(); i++)
                {
                        if ((*i) == line)