ZyklonB: factor out plugin_process_ipc()

This commit is contained in:
Přemysl Eric Janouch 2015-06-15 22:21:22 +02:00
parent ac466d5ac9
commit 20a3f25211
1 changed files with 50 additions and 46 deletions

View File

@ -854,17 +854,8 @@ plugin_send (struct plugin *plugin, const char *format, ...)
} }
static void static void
plugin_process_message (const struct irc_message *msg, plugin_process_ipc (struct plugin *plugin, const struct irc_message *msg)
const char *raw, void *user_data)
{ {
struct plugin *plugin = user_data;
struct bot_context *ctx = plugin->ctx;
if (g_debug_mode)
fprintf (stderr, "[%s] --> \"%s\"\n", plugin->name, raw);
if (!strcasecmp (msg->command, plugin_ipc_command))
{
// Replies are sent in the order in which they came in, so there's // Replies are sent in the order in which they came in, so there's
// no need to attach a special identifier to them. It might be // no need to attach a special identifier to them. It might be
// desirable in some cases, though. // desirable in some cases, though.
@ -897,7 +888,7 @@ plugin_process_message (const struct irc_message *msg,
return; return;
const char *value = const char *value =
str_map_find (&ctx->config, msg->params.vector[1]); str_map_find (&plugin->ctx->config, msg->params.vector[1]);
// TODO: escape the value (although there's no need to ATM) // TODO: escape the value (although there's no need to ATM)
plugin_send (plugin, "%s :%s", plugin_send (plugin, "%s :%s",
plugin_ipc_command, value ? value : ""); plugin_ipc_command, value ? value : "");
@ -909,7 +900,20 @@ plugin_process_message (const struct irc_message *msg,
printf ("%s\n", msg->params.vector[1]); printf ("%s\n", msg->params.vector[1]);
} }
} }
static void
plugin_process_message (const struct irc_message *msg,
const char *raw, void *user_data)
{
struct plugin *plugin = user_data;
struct bot_context *ctx = plugin->ctx;
if (g_debug_mode)
fprintf (stderr, "[%s] --> \"%s\"\n", plugin->name, raw);
if (!strcasecmp (msg->command, plugin_ipc_command))
plugin_process_ipc (plugin, msg);
else if (plugin->initialized && ctx->irc_registered) else if (plugin->initialized && ctx->irc_registered)
{ {
// Pass everything else through to the IRC server // Pass everything else through to the IRC server