X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fchannel.c;h=b82d8e0780b25c4e3d0f8a92cb7ff71fd72a6d63;hp=dc8783ce5994f86570abc5885dcfbac86c2271b3;hb=dfd1ba1a12e57ef10ee82d1e13f45ea5b7fb9c0f;hpb=2dc5507d3a0f04385880484bff5d45bdf5cb0ee9 diff --git a/ircd/channel.c b/ircd/channel.c index dc8783c..b82d8e0 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -2513,6 +2513,9 @@ mode_parse_access(struct ParseState *state, ulong64 *flag_p) return; } + if(feature_bool(FEAT_CHMODE_A_NOSET) && !(state->flags & MODE_PARSE_FORCE)) /* mode can'T be set. */ + return; + if (!(state->flags & MODE_PARSE_WIPEOUT) && (!t_access || t_access == state->chptr->mode.access)) return; @@ -3511,7 +3514,7 @@ mode_parse_client(struct ParseState *state, ulong64 *flag_p) } else if (req_oplevel <= MAXOPLEVEL) oplevel = req_oplevel; } - if(*flag_p == CHFL_CHANOP && state->member && !IsChanOp(state->member)) { + if(*flag_p == CHFL_CHANOP && state->member && !IsChanOp(state->member) && !(state->flags & MODE_PARSE_FORCE)) { send_notoper(state); return; }