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