allow Network Services opping themselves and removed an old copyright message
[ircu2.10.12-pk.git] / ircd / channel.c
index dc8783ce5994f86570abc5885dcfbac86c2271b3..b82d8e0780b25c4e3d0f8a92cb7ff71fd72a6d63 100644 (file)
@@ -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;
     }