diff --git a/src/modules/chanmodes/censor.c b/src/modules/chanmodes/censor.c index 73dfd47a4..9a8c6fb7e 100644 --- a/src/modules/chanmodes/censor.c +++ b/src/modules/chanmodes/censor.c @@ -265,11 +265,11 @@ char *censor_pre_chanmsg(aClient *sptr, aChannel *chptr, MessageTag *mtags, char for (h = Hooks[HOOKTYPE_CAN_BYPASS_CHANNEL_MESSAGE_RESTRICTION]; h; h = h->next) { i = (*(h->func.intfunc))(sptr, chptr, BYPASS_CHANMSG_CENSOR); + if (i == HOOK_ALLOW) + return text; /* bypass */ if (i != HOOK_CONTINUE) break; } - if (i == HOOK_ALLOW) - return text; /* bypass */ text = stripbadwords_channel(text, &blocked); if (blocked) diff --git a/src/modules/chanmodes/nocolor.c b/src/modules/chanmodes/nocolor.c index 71a6d71d7..e2396b1c0 100644 --- a/src/modules/chanmodes/nocolor.c +++ b/src/modules/chanmodes/nocolor.c @@ -95,11 +95,11 @@ char *nocolor_prechanmsg(aClient *sptr, aChannel *chptr, MessageTag *mtags, char for (h = Hooks[HOOKTYPE_CAN_BYPASS_CHANNEL_MESSAGE_RESTRICTION]; h; h = h->next) { i = (*(h->func.intfunc))(sptr, chptr, BYPASS_CHANMSG_COLOR); + if (i == HOOK_ALLOW) + return text; /* bypass */ if (i != HOOK_CONTINUE) break; } - if (i == HOOK_ALLOW) - return text; /* bypass */ if (!notice) { diff --git a/src/modules/chanmodes/nonotice.c b/src/modules/chanmodes/nonotice.c index 930ba0e2e..e5bf99d0e 100644 --- a/src/modules/chanmodes/nonotice.c +++ b/src/modules/chanmodes/nonotice.c @@ -76,11 +76,11 @@ int nonotice_check_can_send(aClient *cptr, aChannel *chptr, Membership *lp, char for (h = Hooks[HOOKTYPE_CAN_BYPASS_CHANNEL_MESSAGE_RESTRICTION]; h; h = h->next) { i = (*(h->func.intfunc))(cptr, chptr, BYPASS_CHANMSG_NOTICE); + if (i == HOOK_ALLOW) + return HOOK_CONTINUE; /* bypass restriction */ if (i != HOOK_CONTINUE) break; } - if (i == HOOK_ALLOW) - return HOOK_CONTINUE; /* bypass restriction */ *errmsg = "NOTICEs are not permitted in this channel"; return HOOK_DENY; /* block notice */ } diff --git a/src/modules/chanmodes/regonlyspeak.c b/src/modules/chanmodes/regonlyspeak.c index ea02a7d46..b4d478f5b 100644 --- a/src/modules/chanmodes/regonlyspeak.c +++ b/src/modules/chanmodes/regonlyspeak.c @@ -94,11 +94,11 @@ int regonlyspeak_can_send(aClient *cptr, aChannel *chptr, Membership *lp, char * for (h = Hooks[HOOKTYPE_CAN_BYPASS_CHANNEL_MESSAGE_RESTRICTION]; h; h = h->next) { i = (*(h->func.intfunc))(cptr, chptr, BYPASS_CHANMSG_MODERATED); + if (i == HOOK_ALLOW) + return HOOK_CONTINUE; /* bypass +M restriction */ if (i != HOOK_CONTINUE) break; } - if (i == HOOK_ALLOW) - return HOOK_CONTINUE; /* bypass +M restriction */ *errmsg = "You must have a registered nick (+r) to talk on this channel"; return HOOK_DENY; /* BLOCK message */ diff --git a/src/modules/chanmodes/stripcolor.c b/src/modules/chanmodes/stripcolor.c index 6555b1ba7..f26ef529c 100644 --- a/src/modules/chanmodes/stripcolor.c +++ b/src/modules/chanmodes/stripcolor.c @@ -83,11 +83,11 @@ char *stripcolor_prechanmsg(aClient *sptr, aChannel *chptr, MessageTag *mtags, c for (h = Hooks[HOOKTYPE_CAN_BYPASS_CHANNEL_MESSAGE_RESTRICTION]; h; h = h->next) { i = (*(h->func.intfunc))(sptr, chptr, BYPASS_CHANMSG_COLOR); + if (i == HOOK_ALLOW) + return text; /* bypass */ if (i != HOOK_CONTINUE) break; } - if (i == HOOK_ALLOW) - return text; /* bypass */ text = StripColors(text); } diff --git a/src/modules/nocodes.c b/src/modules/nocodes.c index 87a16af14..6d1ab6d52 100644 --- a/src/modules/nocodes.c +++ b/src/modules/nocodes.c @@ -68,11 +68,11 @@ char *nocodes_pre_chanmsg(aClient *sptr, aChannel *chptr, MessageTag *mtags, cha for (h = Hooks[HOOKTYPE_CAN_BYPASS_CHANNEL_MESSAGE_RESTRICTION]; h; h = h->next) { i = (*(h->func.intfunc))(sptr, chptr, BYPASS_CHANMSG_COLOR); + if (i == HOOK_ALLOW) + return text; /* bypass */ if (i != HOOK_CONTINUE) break; } - if (i == HOOK_ALLOW) - return text; /* bypass */ strlcpy(retbuf, StripControlCodes(text), sizeof(retbuf)); return retbuf; @@ -84,11 +84,11 @@ char *nocodes_pre_chanmsg(aClient *sptr, aChannel *chptr, MessageTag *mtags, cha for (h = Hooks[HOOKTYPE_CAN_BYPASS_CHANNEL_MESSAGE_RESTRICTION]; h; h = h->next) { i = (*(h->func.intfunc))(sptr, chptr, BYPASS_CHANMSG_COLOR); + if (i == HOOK_ALLOW) + return text; /* bypass */ if (i != HOOK_CONTINUE) break; } - if (i == HOOK_ALLOW) - return text; /* bypass */ sendnumeric(sptr, ERR_CANNOTSENDTOCHAN, chptr->chname, "Control codes (bold/underline/reverse) are not permitted in this channel",