os_restart.c
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "module.h"
00017
00018 #ifdef _WIN32
00019
00020 extern MDE void do_restart_services(void);
00021 #endif
00022
00023 int do_restart(User * u);
00024 void myOperServHelp(User * u);
00025
00032 int AnopeInit(int argc, char **argv)
00033 {
00034 Command *c;
00035
00036 moduleAddAuthor("Anope");
00037 moduleAddVersion("$Id: os_restart.c 1345 2008-01-13 12:54:14Z geniusdex $");
00038 moduleSetType(CORE);
00039 c = createCommand("RESTART", do_restart, is_services_root,
00040 OPER_HELP_RESTART, -1, -1, -1, -1);
00041 moduleAddCommand(OPERSERV, c, MOD_UNIQUE);
00042
00043 moduleSetOperHelp(myOperServHelp);
00044
00045 return MOD_CONT;
00046 }
00047
00051 void AnopeFini(void)
00052 {
00053
00054 }
00055
00056
00061 void myOperServHelp(User * u)
00062 {
00063 if (is_services_root(u)) {
00064 notice_lang(s_OperServ, u, OPER_HELP_CMD_RESTART);
00065 }
00066 }
00067
00073 int do_restart(User * u)
00074 {
00075 #ifdef SERVICES_BIN
00076 quitmsg = calloc(31 + strlen(u->nick), 1);
00077 if (!quitmsg)
00078 quitmsg = "RESTART command received, but out of memory!";
00079 else
00080 sprintf(quitmsg, "RESTART command received from %s", u->nick);
00081
00082 if (GlobalOnCycle) {
00083 oper_global(NULL, "%s", GlobalOnCycleMessage);
00084 }
00085
00086 do_restart_services();
00087 #else
00088 notice_lang(s_OperServ, u, OPER_CANNOT_RESTART);
00089 #endif
00090 return MOD_CONT;
00091 }