]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_oper/cmd_restart.cpp
Add ConfigTag::getUInt for reading unsigned config values.
[user/henk/code/inspircd.git] / src / coremods / core_oper / cmd_restart.cpp
index 39fbd8140e3a11cb79064bfb5a6d487ed8097955..6c19329c30aac78f1e4e8c78f0f79ded3fa379d0 100644 (file)
@@ -25,20 +25,20 @@ CommandRestart::CommandRestart(Module* parent)
        : Command(parent, "RESTART", 1, 1)
 {
        flags_needed = 'o';
-       syntax = "<password>";
+       syntax = "<server>";
 }
 
 CmdResult CommandRestart::Handle (const std::vector<std::string>& parameters, User *user)
 {
-       ServerInstance->Logs->Log("COMMAND", LOG_DEFAULT, "Restart: %s",user->nick.c_str());
-       if (ServerInstance->PassCompare(user, ServerInstance->Config->restartpass, parameters[0], ServerInstance->Config->powerhash))
+       ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "Restart: %s", user->nick.c_str());
+       if (DieRestart::CheckPass(user, parameters[0], "restartpass"))
        {
                ServerInstance->SNO->WriteGlobalSno('a', "RESTART command from %s, restarting server.", user->GetFullRealHost().c_str());
 
-               ServerInstance->SendError("Server restarting.");
+               DieRestart::SendError("Server restarting.");
 
 #ifndef _WIN32
-               /* XXX: This hack sets FD_CLOEXEC on all possible file descriptors, so they're closed if the execv() below succeeds.
+               /* XXX: This hack sets FD_CLOEXEC on all possible file descriptors, so they're closed if the execvp() below succeeds.
                 * Certainly, this is not a nice way to do things and it's slow when the fd limit is high.
                 *
                 * A better solution would be to set the close-on-exec flag for each fd we create (or create them with O_CLOEXEC),
@@ -52,7 +52,7 @@ CmdResult CommandRestart::Handle (const std::vector<std::string>& parameters, Us
                }
 #endif
 
-               execv(ServerInstance->Config->cmdline.argv[0], ServerInstance->Config->cmdline.argv);
+               execvp(ServerInstance->Config->cmdline.argv[0], ServerInstance->Config->cmdline.argv);
                ServerInstance->SNO->WriteGlobalSno('a', "Failed RESTART - could not execute '%s' (%s)",
                        ServerInstance->Config->cmdline.argv[0], strerror(errno));
        }