Client_ID(Origin), Channel_Name(Channel));
goto chan_exit;
}
+ /* fall through */
case 'i': /* Invite only */
case 'V': /* Invite disallow */
case 'M': /* Only identified nicks can write */
break;
/* --- Channel user modes --- */
case 'q': /* Owner */
+ if(!is_oper && !is_machine && !is_owner) {
+ connected = IRC_WriteErrClient(Origin,
+ ERR_CHANOPPRIVTOOLOW_MSG,
+ Client_ID(Origin),
+ Channel_Name(Channel));
+ goto chan_exit;
+ }
+ /* fall through */
case 'a': /* Channel admin */
if(!is_oper && !is_machine && !is_owner && !is_admin) {
connected = IRC_WriteErrClient(Origin,
Channel_Name(Channel));
goto chan_exit;
}
+ /* fall through */
case 'o': /* Channel operator */
if(!is_oper && !is_machine && !is_owner &&
!is_admin && !is_op) {
Channel_Name(Channel));
goto chan_exit;
}
+ /* fall through */
case 'h': /* Half Op */
if(!is_oper && !is_machine && !is_owner &&
!is_admin && !is_op) {
Channel_Name(Channel));
goto chan_exit;
}
+ /* fall through */
case 'v': /* Voice */
if (arg_arg > mode_arg) {
if (is_oper || is_machine || is_owner ||