When setting/unsetting cmode +M, only wallops once, not for every server on the network.

This commit is contained in:
JD Horelick 2011-05-15 14:01:07 -04:00
parent 3df8ab7a98
commit 01a8417f75
1 changed files with 27 additions and 19 deletions

View File

@ -675,12 +675,15 @@ chm_hidden(struct Client *source_p, struct Channel *chptr,
mode_changes[mode_count].override = 0;
mode_changes[mode_count++].arg = NULL;
ilog(L_MAIN, "+%c set on [%s] by %s",
c, chptr->chname, get_oper_name(source_p));
/* A little ugly */
if (MyClient(source_p))
{
sendto_wallops_flags(UMODE_WALLOP, &me,
"+%c set on [%s] by %s!%s@%s",
c, chptr->chname, source_p->name, source_p->username, source_p->host);
ilog(L_MAIN, "+%c set on [%s] by %s",
c, chptr->chname, get_oper_name(source_p));
if(*chptr->chname != '&')
sendto_server(NULL, NULL, NOCAPS, NOCAPS,
@ -688,6 +691,7 @@ chm_hidden(struct Client *source_p, struct Channel *chptr,
me.name, c, chptr->chname, source_p->name, source_p->username,
source_p->host);
}
}
else if((dir == MODE_DEL) && (chptr->mode.mode & mode_type))
{
chptr->mode.mode &= ~mode_type;
@ -701,12 +705,15 @@ chm_hidden(struct Client *source_p, struct Channel *chptr,
mode_changes[mode_count].override = 0;
mode_changes[mode_count++].arg = NULL;
ilog(L_MAIN, "+%c unset from [%s] by %s",
c, chptr->chname, get_oper_name(source_p));
/* A little ugly */
if (MyClient(source_p))
{
sendto_wallops_flags(UMODE_WALLOP, &me,
"+%c unset from [%s] by %s!%s@%s",
c, chptr->chname, source_p->name, source_p->username, source_p->host);
ilog(L_MAIN, "+%c unset from [%s] by %s",
c, chptr->chname, get_oper_name(source_p));
if(*chptr->chname != '&')
sendto_server(NULL, NULL, NOCAPS, NOCAPS,
@ -715,6 +722,7 @@ chm_hidden(struct Client *source_p, struct Channel *chptr,
source_p->host);
}
}
}
void
chm_staff(struct Client *source_p, struct Channel *chptr,