From 16852048ed0f781761c79e8f0d46c8331d5fcd25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Fri, 1 Aug 2014 00:42:17 +0200 Subject: [PATCH] Don't forward messages while !irc_ready --- src/zyklonb.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/zyklonb.c b/src/zyklonb.c index 9874961..c99b141 100644 --- a/src/zyklonb.c +++ b/src/zyklonb.c @@ -1256,6 +1256,27 @@ process_privmsg (struct bot_context *ctx, const struct irc_message *msg) str_vector_free (&list); } +static void +irc_forward_message_to_plugins (struct bot_context *ctx, const char *raw) +{ + // For consistency with plugin_process_message() + if (!ctx->irc_ready) + return; + + for (struct plugin_data *plugin = ctx->plugins; + plugin; plugin = plugin->next) + { + if (plugin->is_zombie) + continue; + + if (plugin->initialized) + plugin_send (plugin, "%s", raw); + else + // TODO: make sure that this buffer doesn't get too large either + str_append_printf (&plugin->queued_output, "%s\r\n", raw); + } +} + static void irc_process_message (const struct irc_message *msg, const char *raw, void *user_data) @@ -1270,19 +1291,7 @@ irc_process_message (const struct irc_message *msg, // // I should probably even rip out the autojoin... - // First forward the message to all the plugins - for (struct plugin_data *plugin = ctx->plugins; - plugin; plugin = plugin->next) - { - if (plugin->is_zombie) - continue; - - if (plugin->initialized) - plugin_send (plugin, "%s", raw); - else - // TODO: make sure that this buffer doesn't get too large either - str_append_printf (&plugin->queued_output, "%s\r\n", raw); - } + irc_forward_message_to_plugins (ctx, raw); if (!strcasecmp (msg->command, "PING")) {