diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-10-14 20:53:44 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-10-14 20:53:44 +0000 |
commit | 71532e29af6d0be878596e47dbd66a6ce573893d (patch) | |
tree | 51b4ebac61871aa04c3b01fcba3c5520c61965a7 | |
parent | e4aa8c95131f8b7bb3b6ff5460809ab3a6b7f588 (diff) |
Fix crashing on startup if there was an error condition in win32
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8193 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/inspircd.cpp | 6 | ||||
-rw-r--r-- | src/server.cpp | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 34d15e4e3..cf062e397 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -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) @@ -388,7 +392,7 @@ InspIRCd::InspIRCd(int argc, char** argv) { DWORD ExitCode = WindowsForkStart(this); if(ExitCode) - Exit(ExitCode); + exit(ExitCode); } // Set up winsock diff --git a/src/server.cpp b/src/server.cpp index 2722c6831..4568c43fd 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -31,6 +31,7 @@ void InspIRCd::SignalHandler(int signal) void InspIRCd::Exit(int status) { + printf("exit with status %d\n", status); #ifdef WINDOWS delete WindowsIPC; #endif @@ -38,8 +39,9 @@ void InspIRCd::Exit(int status) { this->SendError("Exiting with status " + ConvToStr(status) + " (" + std::string(ExitCodes[status]) + ")"); this->Cleanup(); - } - exit (status); + } + printf("Exit done.\n"); + exit (status); } void InspIRCd::Rehash() |