From b401b1849a8fe14475e0bdf5e81e9f513e6c7cd9 Mon Sep 17 00:00:00 2001 From: PancakeTAS Date: Sat, 23 Mar 2024 15:35:58 +0100 Subject: [PATCH 1/2] fix: properly shutdown the bot --- src/main.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main.c b/src/main.c index 502bf69..9634334 100644 --- a/src/main.c +++ b/src/main.c @@ -29,9 +29,6 @@ /// Config file for the bot #define CONFIG_FILE "config.json" -/// Discord client instance -static struct discord *discord_client = NULL; - /** * Handle SIGINT signal and shut down the bot * @@ -39,15 +36,17 @@ static struct discord *discord_client = NULL; */ static void handle_sigint(int signum) { log_info("[TAS8999] Received SIGINT, shutting down bot..."); - if (discord_client) discord_shutdown(discord_client); + ccord_shutdown_async(); } /** * Initialize discord client * + * \param client Discord client + * * \return 0 on success, 1 on failure */ -static int initialize_discord() { +static int initialize_discord(struct discord **client) { // initialize concord CCORDcode code = ccord_global_init(); if (code) { @@ -58,8 +57,8 @@ static int initialize_discord() { log_trace("[TAS8999] ccord_global_init() success"); // create discord client - discord_client = discord_config_init(CONFIG_FILE); - if (!discord_client) { + *client = discord_config_init(CONFIG_FILE); + if (!*client) { log_trace("[TAS8999] discord_create() failed"); ccord_global_cleanup(); @@ -129,7 +128,8 @@ static void bot_main(struct discord *client, const struct discord_ready *event) int main() { // initialize discord bot log_info("[TAS8999] Initializing tas8999 discord bot..."); - if (initialize_discord()) { + struct discord* client = NULL; + if (initialize_discord(&client)) { log_fatal("[TAS8999] Failed to initialize discord bot"); return EXIT_FAILURE; @@ -138,16 +138,16 @@ int main() { // run discord bot log_info("[TAS8999] Launching tas8999 discord bot..."); signal(SIGINT, handle_sigint); - discord_add_intents(discord_client, DISCORD_GATEWAY_MESSAGE_CONTENT); - discord_set_on_ready(discord_client, bot_main); - discord_set_on_message_create(discord_client, spamprotection_on_message); - CCORDcode code = discord_run(discord_client); + discord_add_intents(client, DISCORD_GATEWAY_MESSAGE_CONTENT); + discord_set_on_ready(client, bot_main); + discord_set_on_message_create(client, spamprotection_on_message); + CCORDcode code = discord_run(client); // cleanup discord bot log_info("[TAS8999] Discord bot exited (%d), cleaning up...", code); customcommands_deinitialize(); submissions_deinitialize(); - discord_cleanup(discord_client); + discord_cleanup(client); ccord_global_cleanup(); return EXIT_SUCCESS; } From 327dbd1ec096280bfe3debdfbe031ef190998fa3 Mon Sep 17 00:00:00 2001 From: PancakeTAS Date: Sat, 23 Mar 2024 15:43:13 +0100 Subject: [PATCH 2/2] fix: return pointer instead of status --- src/main.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main.c b/src/main.c index 9634334..081128b 100644 --- a/src/main.c +++ b/src/main.c @@ -42,31 +42,29 @@ static void handle_sigint(int signum) { /** * Initialize discord client * - * \param client Discord client - * - * \return 0 on success, 1 on failure + * \return Discord client on success, NULL on failure */ -static int initialize_discord(struct discord **client) { +static struct discord* initialize_discord() { // initialize concord CCORDcode code = ccord_global_init(); if (code) { log_trace("[TAS8999] ccord_global_init() failed: %d", code); - return 1; + return NULL; } log_trace("[TAS8999] ccord_global_init() success"); // create discord client - *client = discord_config_init(CONFIG_FILE); - if (!*client) { + struct discord* client = discord_config_init(CONFIG_FILE); + if (!client) { log_trace("[TAS8999] discord_create() failed"); ccord_global_cleanup(); - return 1; + return NULL; } log_trace("[TAS8999] discord_create() success"); - return 0; + return client; } /** @@ -128,8 +126,8 @@ static void bot_main(struct discord *client, const struct discord_ready *event) int main() { // initialize discord bot log_info("[TAS8999] Initializing tas8999 discord bot..."); - struct discord* client = NULL; - if (initialize_discord(&client)) { + struct discord* client = initialize_discord(); + if (!client) { log_fatal("[TAS8999] Failed to initialize discord bot"); return EXIT_FAILURE;