X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Finspircd.cpp;h=2a6bc4e0a2e80ecfe37477f1d57e4cffdaa87af8;hb=1312f2db8ed90464e73acdcc07bb1aae92964345;hp=b815ce4ac79e5a32af5c609381c4d59fa3b5a74a;hpb=7aa5e059a8f66d91bd8b69c58c657ceb70b4baff;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/inspircd.cpp b/src/inspircd.cpp index b815ce4ac..2a6bc4e0a 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -115,7 +115,7 @@ void InspIRCd::Cleanup() * chance to be unhooked by the modules using them, but then get * a chance to be removed themsleves. * - * XXX there may be a better way to do this with 1.2 + * XXX there may be a better way to do this */ for (int tries = 0; tries < 4; tries++) { @@ -125,12 +125,9 @@ void InspIRCd::Cleanup() /* Unload all modules, so they get a chance to clean up their listeners */ this->Modules->Unload(k->c_str()); } + GlobalCulls.Apply(); } - /* Cleanup Server Names */ - for(servernamelist::iterator itr = servernames.begin(); itr != servernames.end(); ++itr) - delete (*itr); - /* 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); @@ -562,28 +559,23 @@ InspIRCd::InspIRCd(int argc, char** argv) : this->Res = new DNS; - this->AddServerName(Config->ServerName); - /* * Initialise SID/UID. * For an explanation as to exactly how this works, and why it works this way, see GetUID(). * -- w00t */ - if (!*Config->sid) + if (Config->sid.empty()) { // Generate one size_t sid = 0; - for (const char* x = Config->ServerName; *x; ++x) + for (const char* x = Config->ServerName.c_str(); *x; ++x) sid = 5 * sid + *x; - for (const char* y = Config->ServerDesc; *y; ++y) + for (const char* y = Config->ServerDesc.c_str(); *y; ++y) sid = 5 * sid + *y; sid = sid % 999; - Config->sid[0] = (char)(sid / 100 + 48); - Config->sid[1] = (char)(((sid / 10) % 10) + 48); - Config->sid[2] = (char)(sid % 10 + 48); - Config->sid[3] = '\0'; + Config->sid = ConvToStr(sid); } /* set up fake client again this time with the correct uid */ @@ -617,7 +609,8 @@ InspIRCd::InspIRCd(int argc, char** argv) : } } - printf("\nInspIRCd is now running as '%s'[%s] with %d max open sockets\n", Config->ServerName,Config->GetSID().c_str(), SE->GetMaxFds()); + printf("\nInspIRCd is now running as '%s'[%s] with %d max open sockets\n", + Config->ServerName.c_str(),Config->GetSID().c_str(), SE->GetMaxFds()); #ifndef WINDOWS if (!Config->nofork) @@ -657,10 +650,10 @@ InspIRCd::InspIRCd(int argc, char** argv) : SetServiceRunning(); #endif - Logs->Log("STARTUP", DEFAULT, "Startup complete as '%s'[%s], %d max open sockets", Config->ServerName,Config->GetSID().c_str(), SE->GetMaxFds()); + Logs->Log("STARTUP", DEFAULT, "Startup complete as '%s'[%s], %d max open sockets", Config->ServerName.c_str(),Config->GetSID().c_str(), SE->GetMaxFds()); #ifndef WIN32 - if (*(this->Config->SetGroup)) + if (!Config->SetGroup.empty()) { int ret; @@ -677,7 +670,7 @@ InspIRCd::InspIRCd(int argc, char** argv) : struct group *g; errno = 0; - g = getgrnam(this->Config->SetGroup); + g = getgrnam(this->Config->SetGroup.c_str()); if (!g) { @@ -694,13 +687,13 @@ InspIRCd::InspIRCd(int argc, char** argv) : } } - if (*(this->Config->SetUser)) + if (!Config->SetUser.empty()) { // setuid struct passwd *u; errno = 0; - u = getpwnam(this->Config->SetUser); + u = getpwnam(this->Config->SetUser.c_str()); if (!u) {