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

@ -674,19 +674,23 @@ chm_hidden(struct Client *source_p, struct Channel *chptr,
mode_changes[mode_count].mems = ONLY_OPERS; mode_changes[mode_count].mems = ONLY_OPERS;
mode_changes[mode_count].override = 0; mode_changes[mode_count].override = 0;
mode_changes[mode_count++].arg = NULL; mode_changes[mode_count++].arg = NULL;
/* A little ugly */
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", ilog(L_MAIN, "+%c set on [%s] by %s",
c, chptr->chname, get_oper_name(source_p)); 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);
if(*chptr->chname != '&') if(*chptr->chname != '&')
sendto_server(NULL, NULL, NOCAPS, NOCAPS, sendto_server(NULL, NULL, NOCAPS, NOCAPS,
":%s WALLOPS :+%c set on [%s] by %s!%s@%s", ":%s WALLOPS :+%c set on [%s] by %s!%s@%s",
me.name, c, chptr->chname, source_p->name, source_p->username, me.name, c, chptr->chname, source_p->name, source_p->username,
source_p->host); source_p->host);
}
} }
else if((dir == MODE_DEL) && (chptr->mode.mode & mode_type)) else if((dir == MODE_DEL) && (chptr->mode.mode & mode_type))
{ {
@ -701,18 +705,22 @@ chm_hidden(struct Client *source_p, struct Channel *chptr,
mode_changes[mode_count].override = 0; mode_changes[mode_count].override = 0;
mode_changes[mode_count++].arg = NULL; mode_changes[mode_count++].arg = NULL;
/* A little ugly */
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", ilog(L_MAIN, "+%c unset from [%s] by %s",
c, chptr->chname, get_oper_name(source_p)); 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);
if(*chptr->chname != '&') if(*chptr->chname != '&')
sendto_server(NULL, NULL, NOCAPS, NOCAPS, sendto_server(NULL, NULL, NOCAPS, NOCAPS,
":%s WALLOPS :+%c unset from [%s] by %s!%s@%s", ":%s WALLOPS :+%c unset from [%s] by %s!%s@%s",
me.name, c, chptr->chname, source_p->name, source_p->username, me.name, c, chptr->chname, source_p->name, source_p->username,
source_p->host); source_p->host);
}
} }
} }