summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--chanserv.c18
-rw-r--r--version.log6
3 files changed, 21 insertions, 4 deletions
diff --git a/Changes b/Changes
index e9e08f720..38061849b 100644
--- a/Changes
+++ b/Changes
@@ -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.