X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Finspircd.cpp;h=94dd41da0a0c21a5094d9c020f44cdfa0699eaf7;hb=e62516014fdbc13a0baf9b869b747300bfdccbc7;hp=3b41d787b94e5ee04191f21bbae1960472a9c816;hpb=d1188236f2e731b0a6d59bb2abaa218d5dc8fd60;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 3b41d787b..94dd41da0 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -82,7 +82,7 @@ const char* ExitCodes[] = "CreateEvent failed" /* 19 */ }; -template static void DeleteZero(T* n) +template static void DeleteZero(T*&n) { if (n != NULL) { @@ -127,7 +127,7 @@ void InspIRCd::Cleanup() } } /* Remove core commands */ - Parser->RemoveCommands(""); + Parser->RemoveRFCCommands(); /* Cleanup Server Names */ for(servernamelist::iterator itr = servernames.begin(); itr != servernames.end(); ++itr) @@ -135,6 +135,7 @@ void InspIRCd::Cleanup() /* Delete objects dynamically allocated in constructor (destructor would be more appropriate, but we're likely exiting) */ /* Must be deleted before modes as it decrements modelines */ + DeleteZero(this->FakeClient); DeleteZero(this->Users); DeleteZero(this->Modes); DeleteZero(this->XLines); @@ -149,6 +150,7 @@ void InspIRCd::Cleanup() DeleteZero(this->PI); DeleteZero(this->Threads); DeleteZero(this->Timers); + DeleteZero(this->SE); /* Close logging */ this->Logs->CloseLogs(); DeleteZero(this->Logs); @@ -315,9 +317,7 @@ void InspIRCd::WritePID(const std::string &filename) } } -InspIRCd::InspIRCd(int argc, char** argv) - : GlobalCulls(this), - +InspIRCd::InspIRCd(int argc, char** argv) : /* Functor initialisation. Note that the ordering here is very important. * * THIS MUST MATCH ORDER OF DECLARATION OF THE HandleWhateverFunc classes @@ -378,9 +378,6 @@ InspIRCd::InspIRCd(int argc, char** argv) // Initialise TIME this->TIME = time(NULL); - memset(&server, 0, sizeof(server)); - memset(&client, 0, sizeof(client)); - // This must be created first, so other parts of Insp can use it while starting up this->Logs = new LogManager(this); @@ -869,12 +866,9 @@ void InspIRCd::BufferedSocketCull() */ bool InspIRCd::AllModulesReportReady(User* user) { - for (EventHandlerIter i = Modules->EventHandlers[I_OnCheckReady].begin(); i != Modules->EventHandlers[I_OnCheckReady].end(); ++i) - { - if (!(*i)->OnCheckReady(user)) - return false; - } - return true; + ModResult res; + FIRST_MOD_RESULT(this, OnCheckReady, res, (user)); + return (res == MOD_RES_PASSTHRU); } time_t InspIRCd::Time()