From 1e315bb95321a2c78b95ccfd58d0aa3ccf8889f8 Mon Sep 17 00:00:00 2001 From: Bram Matthys Date: Sun, 2 Apr 2023 16:03:50 +0200 Subject: [PATCH] Add and use command_issued_by_rpc() helper function for internal logging of commands issued by JSON-RPC. --- include/h.h | 1 + src/misc.c | 8 ++++++++ src/modules/sajoin.c | 14 +++++++------- src/modules/sapart.c | 5 ++--- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/include/h.h b/include/h.h index f88c86fa9..2c5e5f251 100644 --- a/include/h.h +++ b/include/h.h @@ -1340,3 +1340,4 @@ extern long get_connected_time(Client *client); extern const char *StripControlCodes(const char *text); extern const char *StripControlCodesEx(const char *text, char *output, size_t outputlen, int strip_flags); extern MODVAR Module *Modules; +extern const char *command_issued_by_rpc(MessageTag *mtags); diff --git a/src/misc.c b/src/misc.c index 18daa9ced..92eba226a 100644 --- a/src/misc.c +++ b/src/misc.c @@ -2736,3 +2736,11 @@ const char *StripControlCodes(const char *text) return StripControlCodesEx(text, new_str, sizeof(new_str), 0); } + +const char *command_issued_by_rpc(MessageTag *mtags) +{ + MessageTag *m = find_mtag(mtags, "unrealircd.org/issued-by"); + if (m && m->value && !strncmp(m->value, "RPC:", 4)) + return m->value; + return NULL; +} diff --git a/src/modules/sajoin.c b/src/modules/sajoin.c index 3f10b6923..da30a6a03 100644 --- a/src/modules/sajoin.c +++ b/src/modules/sajoin.c @@ -54,18 +54,18 @@ MOD_UNLOAD() static void log_sajoin(Client *client, MessageTag *mtags, Client *target, const char *channels) { - MessageTag *m = find_mtag(mtags, "unrealircd.org/issued-by"); - if (m && m->value && !strncmp(m->value, "RPC:", 4)) + const char *issuer = command_issued_by_rpc(mtags); + if (issuer) { unreal_log(ULOG_INFO, "sacmds", "SAJOIN_COMMAND", client, "SAJOIN: $issuer used SAJOIN to make $target join $channels", - log_data_string("issuer", m->value), + log_data_string("issuer", issuer), + log_data_client("target", target), + log_data_string("channels", channels)); + } else { + unreal_log(ULOG_INFO, "sacmds", "SAJOIN_COMMAND", client, "SAJOIN: $client used SAJOIN to make $target join $channels", log_data_client("target", target), log_data_string("channels", channels)); - return; } - unreal_log(ULOG_INFO, "sacmds", "SAJOIN_COMMAND", client, "SAJOIN: $client used SAJOIN to make $target join $channels", - log_data_client("target", target), - log_data_string("channels", channels)); } /* cmd_sajoin() - Lamego - Wed Jul 21 20:04:48 1999 diff --git a/src/modules/sapart.c b/src/modules/sapart.c index 326b69069..2c70cfc69 100644 --- a/src/modules/sapart.c +++ b/src/modules/sapart.c @@ -54,11 +54,10 @@ MOD_UNLOAD() static void log_sapart(Client *client, MessageTag *mtags, Client *target, const char *channels, const char *comment) { - MessageTag *m = find_mtag(mtags, "unrealircd.org/issued-by"); + const char *issuer = command_issued_by_rpc(mtags); - if (m && m->value && !strncmp(m->value, "RPC:", 4)) + if (issuer) { - const char *issuer = m->value; if (comment) { unreal_log(ULOG_INFO, "sacmds", "SAPART_COMMAND", client, "SAPART: $issuer used SAPART to make $target part $channels ($reason)",