newban->flags = ((state->dir == MODE_ADD) ? BAN_ADD : BAN_DEL)
| (*flag_p == MODE_BAN ? 0 : BAN_EXCEPTION);
set_ban_mask(newban, collapse(pretty_mask(t_str)));
- ircd_strncpy(newban->who, cli_name(state->sptr), HOSTLEN);
+ ircd_strncpy(newban->who, IsUser(state->sptr) ? cli_name(state->sptr) : "*", NICKLEN);
newban->when = TStime();
apply_ban(&state->chptr->banlist, newban, 0);
}
break;
case 'A': /* deal with Admin passes */
- if (feature_bool(FEAT_OPLEVELS))
+ if (IsServer(cptr) || feature_bool(FEAT_OPLEVELS))
mode_parse_apass(&state, flag_p);
break;
case 'U': /* deal with user passes */
- if (feature_bool(FEAT_OPLEVELS))
+ if (IsServer(cptr) || feature_bool(FEAT_OPLEVELS))
mode_parse_upass(&state, flag_p);
break;
/* send notification to all servers */
if (jbuf->jb_type != JOINBUF_TYPE_CREATE && !is_local)
{
- if (flags & CHFL_CHANOP)
+ if (flags & CHFL_CHANOP) {
+ assert(oplevel == 0 || oplevel == 1);
sendcmdto_serv_butone(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect,
"%u:%H %Tu", oplevel, chan, chan->creationtime);
- else
+ } else
sendcmdto_serv_butone(jbuf->jb_source, CMD_JOIN, jbuf->jb_connect,
"%H %Tu", chan, chan->creationtime);
}