/** * Automaticaly re-set the DefCon level if the time limit has expired. **/ void resetDefCon(int level) { char strLevel[5]; snprintf(strLevel, 4, "%d", level); if (DefConLevel != level) { if ((DefContimer) && (time(NULL) - DefContimer >= dotime(DefConTimeOut))) { DefConLevel = level; send_event(EVENT_DEFCON_LEVEL, 1, strLevel); alog("Defcon level timeout, returning to lvl %d", level); xanadu_cmd_global(s_OperServ, getstring2(NULL, OPER_DEFCON_WALL), s_OperServ, level); if (GlobalOnDefcon) { if (DefConOffMessage) { oper_global(NULL, "%s", DefConOffMessage); } else { oper_global(NULL, getstring(NULL, DEFCON_GLOBAL), DefConLevel); } } if (GlobalOnDefconMore && !DefConOffMessage) { oper_global(NULL, "%s", DefconMessage); } runDefCon(); } } }
/** * The /os global command. * @param u The user who issued the command * @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing. **/ int do_global(User * u) { char *msg = strtok(NULL, ""); if (!msg) { syntax_error(s_OperServ, u, "GLOBAL", OPER_GLOBAL_SYNTAX); return MOD_CONT; } if (WallOSGlobal) xanadu_cmd_global(s_OperServ, "\2%s\2 just used GLOBAL command.", u->nick); oper_global(u->nick, "%s", msg); return MOD_CONT; }
/** * The /os quit command. * @param u The user who issued the command * @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing. **/ int do_os_quit(User * u) { quitmsg = calloc(28 + strlen(u->nick), 1); if (!quitmsg) quitmsg = "QUIT command received, but out of memory!"; else sprintf(quitmsg, "QUIT command received from %s", u->nick); if (GlobalOnCycle) { oper_global(NULL, "%s", GlobalOnCycleMessage); } quitting = 1; return MOD_CONT; }
/** * The /os restart command. * @param u The user who issued the command * @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing. **/ int do_restart(User * u) { #ifdef SERVICES_BIN quitmsg = calloc(31 + strlen(u->nick), 1); if (!quitmsg) quitmsg = "RESTART command received, but out of memory!"; else sprintf(quitmsg, "RESTART command received from %s", u->nick); if (GlobalOnCycle) { oper_global(NULL, "%s", GlobalOnCycleMessage); } /* raise(SIGHUP); */ LogStaffAction(STAFFLOG_CHANNEL | STAFFLOG_OPERGLOBAL, "OperServ", "%s!%s@%s issued a restart order", u->nick, u->username, u->host); do_restart_services(); #else notice_lang(s_OperServ, u, OPER_CANNOT_RESTART); #endif return MOD_CONT; }