diff options
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | chanserv.c | 18 | ||||
-rw-r--r-- | version.log | 6 |
3 files changed, 21 insertions, 4 deletions
@@ -5,6 +5,7 @@ Provided by Anope Dev. <dev@anope.org> - 2004 05/21 A New file docs/OLDCHANGES contains all change history. [ #65] 05/21 F Removed threads.c file. [ #64] 05/21 F Check for VHOST capable ircd on HostServAlias induction. [ #56] +05/21 F Allow /CS SUSPEND on registered channels only. [ #54] Anope Version 1.7.3 ------------------- diff --git a/chanserv.c b/chanserv.c index c70bf2362..fcb24d590 100644 --- a/chanserv.c +++ b/chanserv.c @@ -6093,7 +6093,7 @@ static int do_forbid(User * u) return MOD_CONT; } -/*************************************************************************/ + /*************************************************************************/ static int do_suspend(User * u) { @@ -6110,10 +6110,22 @@ static int do_suspend(User * u) CHAN_SUSPEND_SYNTAX)); return MOD_CONT; } + + /* Only SUSPEND existing channels, otherwise use FORBID (bug #54) */ + if ((ci = cs_findchan(chan)) == NULL) { + notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan); + return MOD_CONT; + } + + /* You should not SUSPEND a FORBIDEN channel */ + if (ci->flags & CI_VERBOTEN) { + notice_lang(s_ChanServ, u, CHAN_MAY_NOT_BE_REGISTERED, chan); + return MOD_CONT; + } + if (readonly) notice_lang(s_ChanServ, u, READ_ONLY_MODE); - if ((ci = cs_findchan(chan)) == NULL) - ci = makechan(chan); + if (ci) { ci->flags |= CI_SUSPENDED; ci->forbidby = sstrdup(u->nick); diff --git a/version.log b/version.log index 6cbff2c14..ff9525b3e 100644 --- a/version.log +++ b/version.log @@ -8,10 +8,14 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="3" -VERSION_BUILD="118" +VERSION_BUILD="119" # $Log$ # +# BUILD : 1.7.3 (119) +# BUGS : 54 +# NOTES : Allow /CS SUSPEND on registered non-forbidden channels only +# # BUILD : 1.7.3 (118) # BUGS : 56 # NOTES : Check for VHOST capable ircd on HostServAlias induction. |