diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/cs_set.c | 23 | ||||
| -rw-r--r-- | src/core/ms_set.c | 21 | ||||
| -rw-r--r-- | src/core/os_logonnews.c | 23 | ||||
| -rw-r--r-- | src/core/os_opernews.c | 24 |
4 files changed, 52 insertions, 39 deletions
diff --git a/src/core/cs_set.c b/src/core/cs_set.c index 7138a2054..f82a74c78 100644 --- a/src/core/cs_set.c +++ b/src/core/cs_set.c @@ -37,6 +37,7 @@ static int do_set_opnotice(User * u, ChannelInfo * ci, char *param); static int do_set_xop(User * u, ChannelInfo * ci, char *param); static int do_set_peace(User * u, ChannelInfo * ci, char *param); static int do_set_noexpire(User * u, ChannelInfo * ci, char *param); +static int reload_config(int argc, char **argv); static void myChanServHelp(User * u); /** @@ -48,6 +49,7 @@ static void myChanServHelp(User * u); int AnopeInit(int argc, char **argv) { Command *c; + EvtHook *hook; moduleAddAuthor("Anope"); moduleAddVersion(VERSION_STRING); @@ -125,6 +127,12 @@ int AnopeInit(int argc, char **argv) moduleSetChanHelp(myChanServHelp); + hook = createEventHook(EVENT_RELOAD, reload_config); + if (moduleAddEventHook(hook) != MOD_ERR_OK) { + alog("[\002cs_set\002] Can't hook to EVENT_RELOAD event"); + return MOD_STOP; + } + return MOD_CONT; } @@ -898,3 +906,18 @@ static int do_set_noexpire(User * u, ChannelInfo * ci, char *param) } return MOD_CONT; } + +/*************************************************************************/ + +/** + * Upon /os reload refresh the limit in help output + **/ +static int reload_config(int argc, char **argv) { + Command *c; + + if (argc >= 1 && !stricmp(argv[0], EVENT_START)) + if ((c = findCommand(CHANSERV, "SET SUCCESSOR"))) + c->help_param1 = (char *) (long) CSMaxReg; + + return MOD_CONT; +} diff --git a/src/core/ms_set.c b/src/core/ms_set.c index 6d625acb5..19f7de7ad 100644 --- a/src/core/ms_set.c +++ b/src/core/ms_set.c @@ -17,6 +17,7 @@ static int do_set(User * u); static int do_set_notify(User * u, MemoInfo * mi, char *param); static int do_set_limit(User * u, MemoInfo * mi, char *param); +static int reload_config(int argc, char **argv); static void myMemoServHelp(User * u); /** @@ -28,6 +29,7 @@ static void myMemoServHelp(User * u); int AnopeInit(int argc, char **argv) { Command *c; + EvtHook *hook; moduleAddAuthor("Anope"); moduleAddVersion(VERSION_STRING); @@ -49,6 +51,12 @@ int AnopeInit(int argc, char **argv) moduleSetMemoHelp(myMemoServHelp); + hook = createEventHook(EVENT_RELOAD, reload_config); + if (moduleAddEventHook(hook) != MOD_ERR_OK) { + alog("[\002ms_set\002] Can't hook to EVENT_RELOAD event"); + return MOD_STOP; + } + return MOD_CONT; } @@ -293,3 +301,16 @@ static int do_set_limit(User * u, MemoInfo * mi, char *param) } return MOD_CONT; } + +/** + * Upon /os reload refresh the limit in help output + **/ +static int reload_config(int argc, char **argv) { + Command *c; + + if (argc >= 1 && !stricmp(argv[0], EVENT_START)) + if ((c = findCommand(MEMOSERV, "SET LIMIT"))) + c->help_param1 = (char *) (long) MSMaxMemos; + + return MOD_CONT; +} diff --git a/src/core/os_logonnews.c b/src/core/os_logonnews.c index cb01fcfff..78353be47 100644 --- a/src/core/os_logonnews.c +++ b/src/core/os_logonnews.c @@ -27,7 +27,6 @@ int AnopeInit(int argc, char **argv) { Command *c; EvtHook *hook; - char buf[BUFSIZE]; moduleAddAuthor("Anope"); moduleAddVersion(VERSION_STRING); @@ -39,8 +38,7 @@ int AnopeInit(int argc, char **argv) **/ c = createCommand("LOGONNEWS", do_logonnews, is_services_admin, NEWS_HELP_LOGON, -1, -1, -1, -1); - snprintf(buf, BUFSIZE, "%d", NewsCount), - c->help_param1 = sstrdup(buf); + c->help_param1 = (char *) (long) NewsCount; moduleAddCommand(OPERSERV, c, MOD_UNIQUE); moduleSetOperHelp(myOperServHelp); @@ -59,12 +57,6 @@ int AnopeInit(int argc, char **argv) **/ void AnopeFini(void) { - Command *c = findCommand(OPERSERV, "LOGONNEWS"); - if (c && c->help_param1) - { - free(c->help_param1); - c->help_param1 = NULL; - } } @@ -84,18 +76,11 @@ static void myOperServHelp(User * u) * Upon /os reload refresh the count **/ static int reload_config(int argc, char **argv) { - char buf[BUFSIZE]; Command *c; - if (argc >= 1) { - if (!stricmp(argv[0], EVENT_START)) { - if ((c = findCommand(OPERSERV, "LOGONNEWS"))) { - free(c->help_param1); - snprintf(buf, BUFSIZE, "%d", NewsCount), - c->help_param1 = sstrdup(buf); - } - } - } + if (argc >= 1 && !stricmp(argv[0], EVENT_START)) + if ((c = findCommand(OPERSERV, "LOGONNEWS"))) + c->help_param1 = (char *) (long) NewsCount; return MOD_CONT; } diff --git a/src/core/os_opernews.c b/src/core/os_opernews.c index 5748f8904..773d1b3f6 100644 --- a/src/core/os_opernews.c +++ b/src/core/os_opernews.c @@ -27,7 +27,6 @@ int AnopeInit(int argc, char **argv) { Command *c; EvtHook *hook; - char buf[BUFSIZE]; moduleAddAuthor("Anope"); moduleAddVersion(VERSION_STRING); @@ -39,8 +38,7 @@ int AnopeInit(int argc, char **argv) **/ c = createCommand("OPERNEWS", do_opernews, is_services_admin, NEWS_HELP_OPER, -1, -1, -1, -1); - snprintf(buf, BUFSIZE, "%d", NewsCount), - c->help_param1 = sstrdup(buf); + c->help_param1 = (char *) (long) NewsCount; moduleAddCommand(OPERSERV, c, MOD_UNIQUE); moduleSetOperHelp(myOperServHelp); @@ -59,13 +57,6 @@ int AnopeInit(int argc, char **argv) **/ void AnopeFini(void) { - Command *c = findCommand(OPERSERV, "OPERNEWS"); - - if (c && c->help_param1) - { - free(c->help_param1); - c->help_param1 = NULL; - } } @@ -84,18 +75,11 @@ static void myOperServHelp(User * u) * Upon /os reload refresh the count **/ static int reload_config(int argc, char **argv) { - char buf[BUFSIZE]; Command *c; - if (argc >= 1) { - if (!stricmp(argv[0], EVENT_START)) { - if ((c = findCommand(OPERSERV, "OPERNEWS"))) { - free(c->help_param1); - snprintf(buf, BUFSIZE, "%d", NewsCount), - c->help_param1 = sstrdup(buf); - } - } - } + if (argc >= 1 && !stricmp(argv[0], EVENT_START)) + if ((c = findCommand(OPERSERV, "OPERNEWS"))) + c->help_param1 = (char *) (long) NewsCount; return MOD_CONT; } |
