*/
void Exit(int status);
- /** Causes the server to exit immediately with exit code 0.
- * The status code is required for signal handlers, and ignored.
- */
- static void QuickExit(int status);
-
/** Formats the input string with the specified arguments.
* @param formatString The string to format
* @param ... A variable number of format arguments.
signal(SIGTERM, InspIRCd::SetSignal);
}
-void InspIRCd::QuickExit(int status)
-{
- exit(status);
-}
-
// Required for returning the proper value of EXIT_SUCCESS for the parent process
static void VoidSignalHandler(int signalreceived)
{
- exit(0);
+ exit(EXIT_STATUS_NOERROR);
}
bool InspIRCd::DaemonSeed()
std::cout << "InspIRCd Process ID: " << con_green << GetCurrentProcessId() << con_reset << std::endl;
return true;
#else
- // Do not use QuickExit here: It will exit with status SIGTERM which would break e.g. daemon scripts
+ // Do not use exit() here: It will exit with status SIGTERM which would break e.g. daemon scripts
signal(SIGTERM, VoidSignalHandler);
int childpid = fork();
*/
while (kill(childpid, 0) != -1)
sleep(1);
- exit(0);
+ exit(EXIT_STATUS_NOERROR);
}
setsid ();
std::cout << "InspIRCd Process ID: " << con_green << getpid() << con_reset << std::endl;
if (setgroups(0, NULL) == -1)
{
this->Logs->Log("STARTUP", LOG_DEFAULT, "setgroups() failed (wtf?): %s", strerror(errno));
- this->QuickExit(0);
+ exit(EXIT_STATUS_CONFIG);
}
struct group* g = getgrnam(SetGroup.c_str());
if (!g)
{
this->Logs->Log("STARTUP", LOG_DEFAULT, "getgrnam(%s) failed (wrong group?): %s", SetGroup.c_str(), strerror(errno));
- this->QuickExit(0);
+ exit(EXIT_STATUS_CONFIG);
}
if (setgid(g->gr_gid) == -1)
{
this->Logs->Log("STARTUP", LOG_DEFAULT, "setgid(%d) failed (wrong group?): %s", g->gr_gid, strerror(errno));
- this->QuickExit(0);
+ exit(EXIT_STATUS_CONFIG);
}
}
if (!u)
{
this->Logs->Log("STARTUP", LOG_DEFAULT, "getpwnam(%s) failed (wrong user?): %s", SetUser.c_str(), strerror(errno));
- this->QuickExit(0);
+ exit(EXIT_STATUS_CONFIG);
}
if (setuid(u->pw_uid) == -1)
{
this->Logs->Log("STARTUP", LOG_DEFAULT, "setuid(%d) failed (wrong user?): %s", u->pw_uid, strerror(errno));
- this->QuickExit(0);
+ exit(EXIT_STATUS_CONFIG);
}
}