]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Move some stuff around so the last penalty line doesnt get held erroneously until...
[user/henk/code/inspircd.git] / src / inspircd.cpp
index fedc8149f8b896df4f67a2fc5fd63c2bf88732b4..d0b5bbbe0d1b5fb245be820ac2f5c4a92cba1a44 100644 (file)
@@ -82,7 +82,7 @@ void InspIRCd::Cleanup()
        }
 
        /* Close all client sockets, or the new process inherits them */
-       for (std::vector<userrec*>::const_iterator i = this->local_users.begin(); i != this->local_users.end(); i++)
+       for (std::vector<User*>::const_iterator i = this->local_users.begin(); i != this->local_users.end(); i++)
        {
                (*i)->SetWriteError("Server shutdown");
                (*i)->CloseSocket();
@@ -106,15 +106,19 @@ void InspIRCd::Cleanup()
                        for (int k = 0; k <= MyModCount; k++)
                                this->Modules->Unload(mymodnames[k].c_str());
                }
+
        }
 
        /* Close logging */
        if (this->Logger)
                this->Logger->Close();
 
+
        /* Cleanup Server Names */
        for(servernamelist::iterator itr = servernames.begin(); itr != servernames.end(); ++itr)
                delete (*itr);
+
+
 }
 
 void InspIRCd::Restart(const std::string &reason)
@@ -334,7 +338,6 @@ InspIRCd::InspIRCd(int argc, char** argv)
        this->SNO = new SnomaskManager(this);
        this->TIME = this->OLDTIME = this->startup_time = time(NULL);
        this->time_delta = 0;
-       this->next_call = this->TIME + 3;
        srand(this->TIME);
 
        *this->LogFileName = 0;
@@ -388,7 +391,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
        {
                DWORD ExitCode = WindowsForkStart(this);
                if(ExitCode)
-                       Exit(ExitCode);
+                       exit(ExitCode);
        }
 
        // Set up winsock
@@ -397,6 +400,14 @@ InspIRCd::InspIRCd(int argc, char** argv)
 
        ChangeWindowsSpecificPointers(this);
 #endif
+       strlcpy(Config->MyExecutable,argv[0],MAXBUF);
+
+       if (!this->OpenLog(argv, argc))
+       {
+               printf("ERROR: Could not open logfile %s: %s\n\n", Config->logpath.c_str(), strerror(errno));
+               Exit(EXIT_STATUS_LOG);
+       }
+
        if (!ServerConfig::FileExists(this->ConfigFileName))
        {
                printf("ERROR: Cannot open config file: %s\nExiting...\n", this->ConfigFileName);
@@ -414,14 +425,6 @@ InspIRCd::InspIRCd(int argc, char** argv)
        Config->forcedebug = do_debug;
        Config->writelog = !do_nolog;
 
-       strlcpy(Config->MyExecutable,argv[0],MAXBUF);
-
-       if (!this->OpenLog(argv, argc))
-       {
-               printf("ERROR: Could not open logfile %s: %s\n\n", Config->logpath.c_str(), strerror(errno));
-               Exit(EXIT_STATUS_LOG);
-       }
-
        this->Modules = new ModuleManager(this);
        this->stats = new serverstats();
        this->Timers = new TimerManager(this);
@@ -459,7 +462,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
        this->InitialiseUID();
 
        /* set up fake client */
-       this->FakeClient = new userrec(this);
+       this->FakeClient = new User(this);
        this->FakeClient->SetFd(FD_MAGIC_NUMBER);
 
        if (!do_root)
@@ -611,14 +614,18 @@ int InspIRCd::Run()
                if (TIME != OLDTIME)
                {
                        if (TIME < OLDTIME)
+                       {
                                WriteOpers("*** \002EH?!\002 -- Time is flowing BACKWARDS in this dimension! Clock drifted backwards %d secs.",abs(OLDTIME-TIME));
+                       }
+
                        if ((TIME % 3600) == 0)
                        {
                                this->RehashUsersAndChans();
                                FOREACH_MOD_I(this, I_OnGarbageCollect, OnGarbageCollect());
                        }
+
                        Timers->TickTimers(TIME);
-                       this->DoBackgroundUserStuff(TIME);
+                       this->DoBackgroundUserStuff();
 
                        if ((TIME % 5) == 0)
                        {
@@ -660,7 +667,7 @@ int InspIRCd::Run()
                this->GlobalCulls.Apply();
 
                /* If any inspsockets closed, remove them */
-               this->InspSocketCull();
+               this->BufferedSocketCull();
 
                if (this->s_signal)
                {
@@ -672,9 +679,9 @@ int InspIRCd::Run()
        return 0;
 }
 
-void InspIRCd::InspSocketCull()
+void InspIRCd::BufferedSocketCull()
 {
-       for (std::map<InspSocket*,InspSocket*>::iterator x = SocketCull.begin(); x != SocketCull.end(); ++x)
+       for (std::map<BufferedSocket*,BufferedSocket*>::iterator x = SocketCull.begin(); x != SocketCull.end(); ++x)
        {
                SE->DelFd(x->second);
                x->second->Close();
@@ -702,9 +709,7 @@ int ircd(int argc, char ** argv)
 
 int main(int argc, char ** argv)
 {
-       __try {
-               ircd(argc,argv);
-       } __except(__exceptionHandler(GetExceptionInformation())) {}
+       ircd(argc,argv);
        return 0;
 }
 
@@ -719,7 +724,7 @@ int main(int argc, char** argv)
  * (until this returns true, a user will block in the waiting state, waiting to connect up to the
  * registration timeout maximum seconds)
  */
-bool InspIRCd::AllModulesReportReady(userrec* user)
+bool InspIRCd::AllModulesReportReady(User* user)
 {
        if (!Config->global_implementation[I_OnCheckReady])
                return true;
@@ -751,7 +756,7 @@ int InspIRCd::SetTimeDelta(int delta)
        return old;
 }
 
-void InspIRCd::AddLocalClone(userrec* user)
+void InspIRCd::AddLocalClone(User* user)
 {
        clonemap::iterator x = local_clones.find(user->GetIPString());
        if (x != local_clones.end())
@@ -760,7 +765,7 @@ void InspIRCd::AddLocalClone(userrec* user)
                local_clones[user->GetIPString()] = 1;
 }
 
-void InspIRCd::AddGlobalClone(userrec* user)
+void InspIRCd::AddGlobalClone(User* user)
 {
        clonemap::iterator y = global_clones.find(user->GetIPString());
        if (y != global_clones.end())