From 01a8417f759f9ba022057435692f993ddcc36ca8 Mon Sep 17 00:00:00 2001 From: JD Horelick Date: Sun, 15 May 2011 14:01:07 -0400 Subject: [PATCH] When setting/unsetting cmode +M, only wallops once, not for every server on the network. --- src/chmode.c | 46 +++++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/src/chmode.c b/src/chmode.c index 00a0c26..0a43199 100644 --- a/src/chmode.c +++ b/src/chmode.c @@ -674,19 +674,23 @@ chm_hidden(struct Client *source_p, struct Channel *chptr, mode_changes[mode_count].mems = ONLY_OPERS; mode_changes[mode_count].override = 0; 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", 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 != '&') - sendto_server(NULL, NULL, NOCAPS, NOCAPS, - ":%s WALLOPS :+%c set on [%s] by %s!%s@%s", - me.name, c, chptr->chname, source_p->name, source_p->username, - source_p->host); + if(*chptr->chname != '&') + sendto_server(NULL, NULL, NOCAPS, NOCAPS, + ":%s WALLOPS :+%c set on [%s] by %s!%s@%s", + me.name, c, chptr->chname, source_p->name, source_p->username, + source_p->host); + } } 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++].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", 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 != '&') - sendto_server(NULL, NULL, NOCAPS, NOCAPS, - ":%s WALLOPS :+%c unset from [%s] by %s!%s@%s", - me.name, c, chptr->chname, source_p->name, source_p->username, - source_p->host); + if(*chptr->chname != '&') + sendto_server(NULL, NULL, NOCAPS, NOCAPS, + ":%s WALLOPS :+%c unset from [%s] by %s!%s@%s", + me.name, c, chptr->chname, source_p->name, source_p->username, + source_p->host); + } } }