Really fix the ugly-ass desync by re-adding some code i accidentally
deleted on the first chmode.c override commit.
This commit is contained in:
parent
e853274c16
commit
3da167f207
25
src/chmode.c
25
src/chmode.c
|
@ -2158,16 +2158,29 @@ set_channel_mode(struct Client *client_p, struct Client *source_p,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(override)
|
if(paralen && parabuf[paralen - 1] == ' ')
|
||||||
|
parabuf[paralen - 1] = '\0';
|
||||||
|
|
||||||
|
*mbuf = '\0';
|
||||||
|
if(cur_len > mlen)
|
||||||
{
|
{
|
||||||
if(!was_on_chan)
|
sendto_channel_local(flags, chptr, "%s%s %s", cmdbuf, modebuf, parabuf);
|
||||||
remove_user_from_channel(find_channel_membership(chptr, source_p));
|
if(override)
|
||||||
else if (!no_override_deop)
|
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||||
msptr->flags &= ~CHFL_CHANOP;
|
"%s is overriding modes on %s: %s %s",
|
||||||
|
get_oper_name(source_p), chptr->chname,
|
||||||
|
modebuf, parabuf);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if(override)
|
||||||
|
{
|
||||||
|
if(!was_on_chan)
|
||||||
|
remove_user_from_channel(find_channel_membership(chptr, source_p));
|
||||||
|
else if (!no_override_deop)
|
||||||
|
msptr->flags &= ~CHFL_CHANOP;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* only propagate modes originating locally, or if we're hubbing */
|
/* only propagate modes originating locally, or if we're hubbing */
|
||||||
if(MyClient(source_p) || rb_dlink_list_length(&serv_list) > 1)
|
if(MyClient(source_p) || rb_dlink_list_length(&serv_list) > 1)
|
||||||
send_cap_mode_changes(client_p, source_p, chptr, mode_changes, mode_count);
|
send_cap_mode_changes(client_p, source_p, chptr, mode_changes, mode_count);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue