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)",