X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcmd_restart.cpp;h=106531e792b98d98b9574c5632b615fdc12c84d5;hb=aec772bdc98bdcfe35c2fc8e74942403c9efcc4d;hp=c985c17171a03de093c448067f39fbe11c45c751;hpb=1552f3918ac0dad7fef9b86b70c0f4a63d4e37a7;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/cmd_restart.cpp b/src/cmd_restart.cpp index c985c1717..106531e79 100644 --- a/src/cmd_restart.cpp +++ b/src/cmd_restart.cpp @@ -24,37 +24,20 @@ extern "C" command_t* init_command(InspIRCd* Instance) CmdResult cmd_restart::Handle (const char** parameters, int pcnt, userrec *user) { - char *argv[32]; ServerInstance->Log(DEFAULT,"Restart: %s",user->nick); if (!strcmp(parameters[0],ServerInstance->Config->restartpass)) { ServerInstance->WriteOpers("*** RESTART command from %s!%s@%s, restarting server.",user->nick,user->ident,user->host); - argv[0] = ServerInstance->Config->MyExecutable; - argv[1] = "-wait"; - if (ServerInstance->Config->nofork) + try { - argv[2] = "-nofork"; + ServerInstance->Restart("Server restarting."); } - else + catch (CoreException &e) { - argv[2] = NULL; + /* We dont actually get here unless theres some fatal and unrecoverable error. */ + exit(0); } - argv[3] = NULL; - - // close ALL file descriptors - ServerInstance->SendError("Server restarting."); - sleep(1); - for (int i = 0; i < MAX_DESCRIPTORS; i++) - { - shutdown(i,2); - close(i); - } - sleep(2); - - execv(ServerInstance->Config->MyExecutable,argv); - - exit(0); } else {