Don't forward messages while !irc_ready

This commit is contained in:
Přemysl Eric Janouch 2014-08-01 00:42:17 +02:00
parent a4e18d306e
commit 16852048ed
1 changed files with 22 additions and 13 deletions

View File

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