summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/channels.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/channels.c b/src/channels.c
index b49eebf5b..413ba3a53 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -298,7 +298,15 @@ void chan_set_modes(const char *source, Channel * chan, int ac, const char **av,
if (check < 2)
chan_set_correct_modes(user, chan, 0);
else if ((chan->ci->flags) && (chan->ci->flags & CI_SECUREOPS))
+ {
+ /* Fixing bug #1006 oringinally caused by fixing #922
+ * we must check for secureops here, not in chan_set_correct_modes
+ * because chan_set_corret_modes will also check for usercount == 1
+ * where it will deop the user, this way we know the channel was not
+ * just created. (check == 3 from /cs (half)op) - Adam
+ */
chan_set_correct_modes(user, chan, 0);
+ }
}
real_av++;