Don't discard self-oppings from remote override opers.
There's a small chance this could be incorrect. Also, the final set of override cleanups.
This commit is contained in:
parent
565f4362f2
commit
cb097b8840
|
@ -206,7 +206,7 @@ m_kick(struct Client *client_p, struct Client *source_p, int parc, const char *p
|
|||
if(is_override)
|
||||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||
"%s is overriding KICK [%s] on [%s] [%s]",
|
||||
get_oper_name(source_p), who->name, chptr->chname, comment);
|
||||
get_oper_name(source_p), command, who->name, chptr->chname, comment);
|
||||
|
||||
/* jdc
|
||||
* - In the case of a server kicking a user (i.e. CLEARCHAN),
|
||||
|
|
18
src/chmode.c
18
src/chmode.c
|
@ -783,7 +783,12 @@ chm_ban(struct Client *source_p, struct Channel *chptr,
|
|||
mode_type != CHFL_QUIET)
|
||||
{
|
||||
if(IsOverride(source_p))
|
||||
override = 1;
|
||||
{
|
||||
sendto_realops_snomask(SNO_GENERAL, L_NETWIDE,
|
||||
"%s is overriding modes on %s: (%s list)",
|
||||
get_oper_name(source_p), chptr->chname,
|
||||
mode_type == CHFL_INVEX ? "invex" : "exempt");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
@ -967,8 +972,11 @@ chm_owner(struct Client *source_p, struct Channel *chptr,
|
|||
if(targ_p == source_p)
|
||||
{
|
||||
no_override_deop = 1;
|
||||
/* Don't reject modes from remote. It desyncs, and this is perfectly
|
||||
* legitimate from a remote override oper.
|
||||
if(!override)
|
||||
return;
|
||||
*/
|
||||
}
|
||||
|
||||
mode_changes[mode_count].letter = c;
|
||||
|
@ -1068,8 +1076,11 @@ chm_op(struct Client *source_p, struct Channel *chptr,
|
|||
if(targ_p == source_p)
|
||||
{
|
||||
no_override_deop = 1;
|
||||
/* Don't reject modes from remote. It desyncs, and this is perfectly
|
||||
* legitimate from a remote override oper.
|
||||
if(!override)
|
||||
return;
|
||||
*/
|
||||
}
|
||||
|
||||
mode_changes[mode_count].letter = c;
|
||||
|
@ -1178,8 +1189,11 @@ chm_halfop(struct Client *source_p, struct Channel *chptr,
|
|||
if(targ_p == source_p)
|
||||
{
|
||||
no_override_deop = 1;
|
||||
/* Don't reject modes from remote. It desyncs, and this is perfectly
|
||||
* legitimate from a remote override oper.
|
||||
if(!override)
|
||||
return;
|
||||
*/
|
||||
}
|
||||
|
||||
mode_changes[mode_count].letter = c;
|
||||
|
@ -2052,7 +2066,7 @@ set_channel_mode(struct Client *client_p, struct Client *source_p,
|
|||
source_p->name, source_p->username,
|
||||
source_p->host, chptr->chname);
|
||||
|
||||
for (override = 0; override < (IsOverride(source_p) ? 2 : 1); ++override)
|
||||
for (override = 0; override < (IsOverride(source_p) && alevel != CHFL_CHANOP ? 2 : 1); ++override)
|
||||
{
|
||||
int was_on_chan = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue