]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Remove UserManager::GarbageCollect()
[user/henk/code/inspircd.git] / src / inspircd.cpp
index ff28be6c1a36fe34a19c2e3cfa19061b4f18d05a..145d4582a14c71b2e3bf22ee05a9188f4e6e2b38 100644 (file)
 #include <fstream>
 #include <iostream>
 #include "xline.h"
-#include "bancache.h"
-#include "socketengine.h"
-#include "socket.h"
-#include "command_parse.h"
 #include "exitcodes.h"
-#include "caller.h"
 #include "testsuite.h"
 
 InspIRCd* ServerInstance = NULL;
@@ -113,11 +108,6 @@ void InspIRCd::Cleanup()
        }
        ports.clear();
 
-       /* Close all client sockets, or the new process inherits them */
-       LocalUserList& list = Users->local_users;
-       for (LocalUserList::iterator i = list.begin(); i != list.end(); ++i)
-               Users->QuitUser(*i, "Server shutdown");
-
        GlobalCulls.Apply();
        Modules->UnloadAll();
 
@@ -129,19 +119,10 @@ void InspIRCd::Cleanup()
                FakeClient->cull();
        }
        DeleteZero(this->FakeClient);
-       DeleteZero(this->Users);
-       DeleteZero(this->Modes);
        DeleteZero(this->XLines);
-       DeleteZero(this->Parser);
-       DeleteZero(this->Modules);
-       DeleteZero(this->BanCache);
-       DeleteZero(this->SNO);
        DeleteZero(this->Config);
-       DeleteZero(this->PI);
-       DeleteZero(this->Threads);
        SocketEngine::Deinit();
        Logs->CloseLogs();
-       DeleteZero(this->Logs);
 }
 
 void InspIRCd::SetSignals()
@@ -236,13 +217,14 @@ void InspIRCd::WritePID(const std::string &filename)
 
 InspIRCd::InspIRCd(int argc, char** argv) :
         ConfigFileName(INSPIRCD_CONFIG_PATH "/inspircd.conf"),
+        PI(&DefaultProtocolInterface),
 
         /* Functor pointer initialisation.
          *
          * THIS MUST MATCH THE ORDER OF DECLARATION OF THE FUNCTORS, e.g. the methods
          * themselves within the class.
          */
-        OperQuit("operquit", NULL),
+        OperQuit("operquit", ExtensionItem::EXT_USER, NULL),
         GenRandom(&HandleGenRandom),
         IsChannel(&HandleIsChannel),
         IsNick(&HandleIsNick),
@@ -259,42 +241,18 @@ InspIRCd::InspIRCd(int argc, char** argv) :
            do_nolog = 0, do_root = 0;
 
        // Initialize so that if we exit before proper initialization they're not deleted
-       this->Logs = 0;
-       this->Threads = 0;
-       this->PI = 0;
-       this->Users = 0;
        this->Config = 0;
-       this->SNO = 0;
-       this->BanCache = 0;
-       this->Modules = 0;
-       this->Parser = 0;
        this->XLines = 0;
-       this->Modes = 0;
        this->ConfigThread = NULL;
        this->FakeClient = NULL;
 
        UpdateTime();
        this->startup_time = TIME.tv_sec;
 
-       // This must be created first, so other parts of Insp can use it while starting up
-       this->Logs = new LogManager;
-
        SocketEngine::Init();
 
-       this->Threads = new ThreadEngine;
-
-       /* Default implementation does nothing */
-       this->PI = new ProtocolInterface;
-
-       // Create base manager classes early, so nothing breaks
-       this->Users = new UserManager;
-
        this->Config = new ServerConfig;
-       this->SNO = new SnomaskManager;
-       this->BanCache = new BanCacheManager;
-       this->Modules = new ModuleManager();
        dynamic_reference_base::reset_all();
-       this->Parser = new CommandParser;
        this->XLines = new XLineManager;
 
        this->Config->cmdline.argv = argv;
@@ -408,7 +366,7 @@ InspIRCd::InspIRCd(int argc, char** argv) :
                }
        }
 
-       std::cout << con_green << "Inspire Internet Relay Chat Server" << con_reset << ", compiled on " __DATE__ " at " __TIME__ << std::endl;
+       std::cout << con_green << "InspIRCd - Internet Relay Chat Daemon" << con_reset << ", compiled on " __DATE__ " at " __TIME__ << std::endl;
        std::cout << con_green << "(C) InspIRCd Development Team." << con_reset << std::endl << std::endl;
        std::cout << "Developers:" << std::endl;
        std::cout << con_green << "\tBrain, FrostyCoolSlug, w00t, Om, Special, peavey" << std::endl;
@@ -416,8 +374,6 @@ InspIRCd::InspIRCd(int argc, char** argv) :
        std::cout << "\tAttila" << con_reset << std::endl << std::endl;
        std::cout << "Others:\t\t\t" << con_green << "See /INFO Output" << con_reset << std::endl;
 
-       this->Modes = new ModeParser;
-
 #ifndef _WIN32
        if (!do_root)
                this->CheckRoot();
@@ -708,10 +664,7 @@ void InspIRCd::Run()
                        OLDTIME = TIME.tv_sec;
 
                        if ((TIME.tv_sec % 3600) == 0)
-                       {
-                               Users->GarbageCollect();
                                FOREACH_MOD(OnGarbageCollect, ());
-                       }
 
                        Timers.TickTimers(TIME.tv_sec);
                        Users->DoBackgroundUserStuff();