X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/blobdiff_plain/7ba25fd07774fd8bda98bbda4938df1fafe8a399..cb5aa4cdd6af4114b18db464f022ef99a44304d7:/noperserv/noperserv_hooks.c?ds=sidebyside diff --git a/noperserv/noperserv_hooks.c b/noperserv/noperserv_hooks.c index eacdacb9..a5d8bd97 100644 --- a/noperserv/noperserv_hooks.c +++ b/noperserv/noperserv_hooks.c @@ -57,7 +57,7 @@ void noperserv_setup_hooks(void) { oldwall = controlwall; controlwall = &noperserv_wall; - memset(&special, 0, sizeof(specialsched)); + memset(&special, 0, sizeof(struct specialsched)); if(!mynick) { registerhook(HOOK_CONTROL_REGISTERED, &noperserv_trap_registration); @@ -187,10 +187,6 @@ int noperserv_specialmod(nick *np, char *command, ScheduleCallback reloadhandler } if(!strcmp(cargv[0], "noperserv")) { - if(noperserv_modules_loaded("noperserv_*")) { - controlreply(np, "NOT UNLOADING. Unload all dependencies first."); - return CMD_ERROR; - } if(special.schedule) { controlreply(np, "Previous attempt at un/reload still in progress."); return CMD_OK; @@ -278,7 +274,8 @@ int noperserv_showcommands(void *sender, int cargc, char **cargv) { controlreply(np, "The following commands are registered at present:"); for(i=0;icommand->content, printflags(cmdlist[i]->level, no_commandflags)); + if(noperserv_policy_command_permitted(cmdlist[i]->level, np)) + controlreply(np, "%s (%s)", cmdlist[i]->command->content, printflags(cmdlist[i]->level, no_commandflags)); controlreply(np, "End of list."); return CMD_OK; @@ -467,7 +464,7 @@ void noperserv_wall(flag_t permissionlevel, flag_t noticelevel, char *format, .. Error("noperserv", ERR_INFO, "$%s$ %s", flags, buf); for(;au;au=au->next) { - if(NOGetNoticeLevel(au) & noticelevel) { + if((NOGetNoticeLevel(au) & noticelevel) && !(NOGetAuthLevel(au) & __NO_RELAY)) { for(nl=au->nick;nl;nl=nl->next) if(noperserv_policy_command_permitted(permissionlevel, nl->nick)) controlreply(nl->nick, "$%s$ %s", flags, buf);