summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--src/channel_mode.c16
2 files changed, 2 insertions, 15 deletions
diff --git a/NEWS b/NEWS
index aeef9d0..022ca0a 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,7 @@ o) Fixed CAP issue for certain clients
o) Fixed bug where "STATS p" would show an invalid amount of irc-operators
in case there are +H opers
o) irc-operators may now no longer set a channel +O if they are only halfops (%)
+o) Channel halfops (%) may now no longer (de)halfop other channel members
-- Noteworthy changes in version 8.1.17 (2014-05-01)
diff --git a/src/channel_mode.c b/src/channel_mode.c
index 1d057d2..8c10c39 100644
--- a/src/channel_mode.c
+++ b/src/channel_mode.c
@@ -1011,21 +1011,7 @@ chm_hop(struct Client *client_p, struct Client *source_p,
struct Client *targ_p;
struct Membership *member;
- /* *sigh* - dont allow halfops to set +/-h, they could fully control a
- * channel if there were no ops - it doesnt solve anything.. MODE_PRIVATE
- * when used with MODE_SECRET is paranoid - cant use +p
- *
- * it needs to be optional per channel - but not via +p, that or remove
- * paranoid.. -- fl_
- *
- * +p means paranoid, it is useless for anything else on modern IRC, as
- * list isn't really usable. If you want to have a private channel these
- * days, you set it +s. Halfops can no longer remove simple modes when
- * +p is set (although they can set +p) so it is safe to use this to
- * control whether they can (de)halfop...
- */
- if (alev <
- ((chptr->mode.mode & MODE_PRIVATE) ? CHACCESS_CHANOP : CHACCESS_HALFOP))
+ if (alev < CHACCESS_CHANOP)
{
if (!(*errors & SM_ERR_NOOPS))
sendto_one(source_p, form_str(alev == CHACCESS_NOTONCHAN ?