Added stanza send hooks for plugins

This commit is contained in:
James Booth
2016-03-26 15:50:16 +00:00
parent ce9b0836a0
commit d0397f3da5
11 changed files with 396 additions and 58 deletions

View File

@@ -409,6 +409,69 @@ plugins_post_priv_message_send(const char * const jid, const char * const messag
jid_destroy(jidp);
}
char*
plugins_on_message_stanza_send(const char *const text)
{
char *new_stanza = NULL;
char *curr_stanza = strdup(text);
GSList *curr = plugins;
while (curr) {
ProfPlugin *plugin = curr->data;
new_stanza = plugin->on_message_stanza_send(plugin, curr_stanza);
if (new_stanza) {
free(curr_stanza);
curr_stanza = strdup(new_stanza);
free(new_stanza);
}
curr = g_slist_next(curr);
}
return curr_stanza;
}
char*
plugins_on_presence_stanza_send(const char *const text)
{
char *new_stanza = NULL;
char *curr_stanza = strdup(text);
GSList *curr = plugins;
while (curr) {
ProfPlugin *plugin = curr->data;
new_stanza = plugin->on_presence_stanza_send(plugin, curr_stanza);
if (new_stanza) {
free(curr_stanza);
curr_stanza = strdup(new_stanza);
free(new_stanza);
}
curr = g_slist_next(curr);
}
return curr_stanza;
}
char*
plugins_on_iq_stanza_send(const char *const text)
{
char *new_stanza = NULL;
char *curr_stanza = strdup(text);
GSList *curr = plugins;
while (curr) {
ProfPlugin *plugin = curr->data;
new_stanza = plugin->on_iq_stanza_send(plugin, curr_stanza);
if (new_stanza) {
free(curr_stanza);
curr_stanza = strdup(new_stanza);
free(new_stanza);
}
curr = g_slist_next(curr);
}
return curr_stanza;
}
void
plugins_shutdown(void)
{