From 4e5598b6cf0986095f757f31a2540b03e4d235dc Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Sun, 28 Aug 2022 08:52:51 +0200 Subject: [PATCH] Create and use new CALL_NEXT_COMMAND_OVERRIDE() instead of CallCommandOverride(). This is an easier way to call the next command override handler from command override functions. It passes the standard parameters so you don't have to worry about which parameters a CMD_OVERRIDE_FUNC() contains. This so it is easier to change command parameters in future UnrealIRCd versions, should it be needed, then it may be possible without any source code changes on the module developer side. - CallCommandOverride(ovr, client, recv_mtags, parc, parv); + CALL_NEXT_COMMAND_OVERRIDE(); --- include/modules.h | 5 +++++ src/modules/antimixedutf8.c | 4 ++-- src/modules/chanmodes/history.c | 2 +- src/modules/hideserver.c | 4 ++-- src/modules/restrict-commands.c | 4 ++-- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/include/modules.h b/include/modules.h index a56b75266..97fc11a93 100644 --- a/include/modules.h +++ b/include/modules.h @@ -955,6 +955,11 @@ extern int CommandExists(const char *name); extern CommandOverride *CommandOverrideAdd(Module *module, const char *name, int priority, OverrideCmdFunc func); extern void CommandOverrideDel(CommandOverride *ovr); extern void CallCommandOverride(CommandOverride *ovr, Client *client, MessageTag *mtags, int parc, const char *parv[]); +/** Call next command override function - easy way to do it. + * This way you don't have to call CallCommandOverride() with the right arguments. + * Which is nice because command (override) arguments may change in future UnrealIRCd versions. + */ +#define CALL_NEXT_COMMAND_OVERRIDE() CallCommandOverride(ovr, client, recv_mtags, parc, parv) extern void moddata_free_client(Client *acptr); extern void moddata_free_local_client(Client *acptr); diff --git a/src/modules/antimixedutf8.c b/src/modules/antimixedutf8.c index 81018a495..1a734f1e7 100644 --- a/src/modules/antimixedutf8.c +++ b/src/modules/antimixedutf8.c @@ -205,7 +205,7 @@ CMD_OVERRIDE_FUNC(override_msg) /* Short circuit for: remote clients, insufficient parameters, * antimixedutf8::except. */ - CallCommandOverride(ovr, client, recv_mtags, parc, parv); + CALL_NEXT_COMMAND_OVERRIDE(); return; } @@ -227,7 +227,7 @@ CMD_OVERRIDE_FUNC(override_msg) } } - CallCommandOverride(ovr, client, recv_mtags, parc, parv); + CALL_NEXT_COMMAND_OVERRIDE(); } /*** rest is module and config stuff ****/ diff --git a/src/modules/chanmodes/history.c b/src/modules/chanmodes/history.c index dd829e0e0..a5a51bf51 100644 --- a/src/modules/chanmodes/history.c +++ b/src/modules/chanmodes/history.c @@ -731,7 +731,7 @@ CMD_OVERRIDE_FUNC(override_mode) had_r = 1; } } - CallCommandOverride(ovr, client, recv_mtags, parc, parv); + CALL_NEXT_COMMAND_OVERRIDE(); /* If.. * - channel was +r diff --git a/src/modules/hideserver.c b/src/modules/hideserver.c index 46acc56af..d11d00f19 100644 --- a/src/modules/hideserver.c +++ b/src/modules/hideserver.c @@ -386,7 +386,7 @@ CMD_OVERRIDE_FUNC(override_map) if (IsOper(client)) { - CallCommandOverride(ovr, client, recv_mtags, parc, parv); + CALL_NEXT_COMMAND_OVERRIDE(); return; } @@ -435,7 +435,7 @@ CMD_OVERRIDE_FUNC(override_links) if (IsOper(client)) { - CallCommandOverride(ovr, client, recv_mtags, parc, parv); + CALL_NEXT_COMMAND_OVERRIDE(); return; } diff --git a/src/modules/restrict-commands.c b/src/modules/restrict-commands.c index 28b6e756f..69aa01050 100644 --- a/src/modules/restrict-commands.c +++ b/src/modules/restrict-commands.c @@ -384,7 +384,7 @@ CMD_OVERRIDE_FUNC(rcmd_override) if (!MyUser(client) || !client->local || IsOper(client) || IsULine(client)) { - CallCommandOverride(ovr, client, recv_mtags, parc, parv); + CALL_NEXT_COMMAND_OVERRIDE(); return; } @@ -405,5 +405,5 @@ CMD_OVERRIDE_FUNC(rcmd_override) } // No restrictions apply, process command as normal =] - CallCommandOverride(ovr, client, recv_mtags, parc, parv); + CALL_NEXT_COMMAND_OVERRIDE(); }