]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_whowas.cpp
Fuck. Press save, then commit.
[user/henk/code/inspircd.git] / src / cmd_whowas.cpp
index 10643680c1316c4a4fa0ac3b1605a98229b6e472..de13d5b267b2b59e5fa2b28e8885cd3db685faef 100644 (file)
  */
 
 #include "inspircd.h"
-#include "configreader.h"
-#include "users.h"
 #include "commands/cmd_whowas.h"
 
 WhoWasMaintainTimer * timer;
 
-extern "C" DllExport command_t* init_command(InspIRCd* Instance)
+extern "C" DllExport Command* init_command(InspIRCd* Instance)
 {
        return new cmd_whowas(Instance);
 }
 
 cmd_whowas::cmd_whowas(InspIRCd* Instance)
-: command_t(Instance, "WHOWAS", 0, 1)
+: Command(Instance, "WHOWAS", 0, 1)
 {
        syntax = "<nick>{,<nick>}";
        timer = new WhoWasMaintainTimer(Instance, 3600);
        Instance->Timers->AddTimer(timer);
 }
 
-CmdResult cmd_whowas::Handle (const char** parameters, int pcnt, userrec* user)
+CmdResult cmd_whowas::Handle (const char** parameters, int pcnt, User* user)
 {
        /* if whowas disabled in config */
        if (ServerInstance->Config->WhoWasGroupSize == 0 || ServerInstance->Config->WhoWasMaxGroups == 0)
@@ -94,7 +92,7 @@ CmdResult cmd_whowas::HandleInternal(const unsigned int id, const std::deque<cla
        switch (id)
        {
                case WHOWAS_ADD:
-                       AddToWhoWas((userrec*)parameters[0]);
+                       AddToWhoWas((User*)parameters[0]);
                break;
 
                case WHOWAS_STATS:
@@ -133,7 +131,7 @@ void cmd_whowas::GetStats(Extensible* ext)
        ext->Extend("stats", stats.c_str());
 }
 
-void cmd_whowas::AddToWhoWas(userrec* user)
+void cmd_whowas::AddToWhoWas(User* user)
 {
        /* if whowas disabled */
        if (ServerInstance->Config->WhoWasGroupSize == 0 || ServerInstance->Config->WhoWasMaxGroups == 0)
@@ -157,16 +155,18 @@ void cmd_whowas::AddToWhoWas(userrec* user)
                        if (iter != whowas.end())
                        {
                                whowas_set* n = (whowas_set*)iter->second;
+
                                if (n->size())
                                {
                                        while (n->begin() != n->end())
                                        {
                                                WhoWasGroup *a = *(n->begin());
-                                               DELETE(a);
+                                               delete a;
                                                n->pop_front();
                                        }
                                }
-                               DELETE(n);
+
+                               delete n;
                                whowas.erase(iter);
                        }
                        whowas_fifo.pop_front();
@@ -181,7 +181,7 @@ void cmd_whowas::AddToWhoWas(userrec* user)
                if ((int)(group->size()) > ServerInstance->Config->WhoWasGroupSize)
                {
                        WhoWasGroup *a = (WhoWasGroup*)*(group->begin());
-                       DELETE(a);
+                       delete a;
                        group->pop_front();
                }
        }
@@ -203,24 +203,28 @@ void cmd_whowas::PruneWhoWas(time_t t)
                if (fifosize > maxgroups || whowas_fifo[0].first < t - maxkeep)
                {
                        iter = whowas.find(whowas_fifo[0].second);
+
                        /* hopefully redundant integrity check, but added while debugging r6216 */
                        if (iter == whowas.end())
                        {
                                /* this should never happen, if it does maps are corrupt */
-                               ServerInstance->Log(DEBUG, "BUG: Whowas maps got corrupted! (1)");
+                               ServerInstance->Log(DEFAULT, "BUG: Whowas maps got corrupted! (1)");
                                return;
                        }
+
                        whowas_set* n = (whowas_set*)iter->second;
+
                        if (n->size())
                        {
                                while (n->begin() != n->end())
                                {
                                        WhoWasGroup *a = *(n->begin());
-                                       DELETE(a);
+                                       delete a;
                                        n->pop_front();
                                }
                        }
-                       DELETE(n);
+
+                       delete n;
                        whowas.erase(iter);
                        whowas_fifo.pop_front();
                }
@@ -237,7 +241,7 @@ void cmd_whowas::PruneWhoWas(time_t t)
                if (iter == whowas.end())
                {
                        /* this should never happen, if it does maps are corrupt */
-                       ServerInstance->Log(DEBUG, "BUG: Whowas maps got corrupted! (2)");
+                       ServerInstance->Log(DEFAULT, "BUG: Whowas maps got corrupted! (2)");
                        return;
                }
                whowas_set* n = (whowas_set*)iter->second;
@@ -247,7 +251,7 @@ void cmd_whowas::PruneWhoWas(time_t t)
                        while (n->begin() != n->end() && nickcount > groupsize)
                        {
                                WhoWasGroup *a = *(n->begin());
-                               DELETE(a);
+                               delete a;
                                n->pop_front();
                                nickcount--;
                        }
@@ -266,7 +270,7 @@ void cmd_whowas::MaintainWhoWas(time_t t)
                        while ((n->begin() != n->end()) && ((*n->begin())->signon < t - ServerInstance->Config->WhoWasMaxKeep))
                        {
                                WhoWasGroup *a = *(n->begin());
-                               DELETE(a);
+                               delete a;
                                n->erase(n->begin());
                        }
                }
@@ -285,30 +289,34 @@ cmd_whowas::~cmd_whowas()
        while ((fifosize = (int)whowas_fifo.size()) > 0)
        {
                iter = whowas.find(whowas_fifo[0].second);
+
                /* hopefully redundant integrity check, but added while debugging r6216 */
                if (iter == whowas.end())
                {
                        /* this should never happen, if it does maps are corrupt */
-                       ServerInstance->Log(DEBUG, "BUG: Whowas maps got corrupted! (3)");
+                       ServerInstance->Log(DEFAULT, "BUG: Whowas maps got corrupted! (3)");
                        return;
                }
+
                whowas_set* n = (whowas_set*)iter->second;
+
                if (n->size())
                {
                        while (n->begin() != n->end())
                        {
                                WhoWasGroup *a = *(n->begin());
-                               DELETE(a);
+                               delete a;
                                n->pop_front();
                        }
                }
-               DELETE(n);
+
+               delete n;
                whowas.erase(iter);
                whowas_fifo.pop_front();
        }
 }
 
-WhoWasGroup::WhoWasGroup(userrec* user) : host(NULL), dhost(NULL), ident(NULL), server(NULL), gecos(NULL), signon(user->signon)
+WhoWasGroup::WhoWasGroup(User* user) : host(NULL), dhost(NULL), ident(NULL), server(NULL), gecos(NULL), signon(user->signon)
 {
        this->host = strdup(user->host);
        this->dhost = strdup(user->dhost);
@@ -332,7 +340,7 @@ WhoWasGroup::~WhoWasGroup()
 /* every hour, run this function which removes all entries older than Config->WhoWasMaxKeep */
 void WhoWasMaintainTimer::Tick(time_t t)
 {
-       command_t* whowas_command = ServerInstance->Parser->GetHandler("WHOWAS");
+       Command* whowas_command = ServerInstance->Parser->GetHandler("WHOWAS");
        if (whowas_command)
        {
                std::deque<classbase*> params;