Mercurial > hg
changeset 1797:246c5d359c97
Add "hook-pre-message-in" hook
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 20 Mar 2010 14:57:03 +0100 |
parents | 5e2db25fdb17 |
children | 21f02b1dee91 |
files | mcabber/mcabber/hooks.c mcabber/mcabber/hooks.h |
diffstat | 2 files changed, 21 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/mcabber/hooks.c Sat Mar 20 14:50:37 2010 +0100 +++ b/mcabber/mcabber/hooks.c Sat Mar 20 14:57:03 2010 +0100 @@ -232,6 +232,26 @@ wmsg = (char*) msg; } +#ifdef MODULES_ENABLE + { + guint h_result; + hk_arg_t args[] = { + { "jid", bjid }, + { "resource", resname }, + { "message", wmsg }, + { "groupchat", is_groupchat ? "true" : "false" }, + { NULL, NULL }, + }; + h_result = hk_run_handlers(HOOK_PRE_MESSAGE_IN, args); + if (h_result == HOOK_HANDLER_RESULT_NO_MORE_HOOK_DROP_DATA) { + scr_LogPrint(LPRINT_DEBUG, "Message dropped (hook result)."); + g_free(bmsg); + g_free(mmsg); + return; + } + } +#endif + // If this user isn't in the roster, we add it roster_usr = roster_find(bjid, jidsearch, 0); if (!roster_usr) { @@ -348,7 +368,6 @@ { NULL, NULL }, }; hk_run_handlers(HOOK_POST_MESSAGE_IN, args); - // TODO: check (and use) return value } #endif
--- a/mcabber/mcabber/hooks.h Sat Mar 20 14:50:37 2010 +0100 +++ b/mcabber/mcabber/hooks.h Sat Mar 20 14:57:03 2010 +0100 @@ -14,6 +14,7 @@ #include <glib.h> // Core hooks +#define HOOK_PRE_MESSAGE_IN "hook-pre-message-in" #define HOOK_POST_MESSAGE_IN "hook-post-message-in" #define HOOK_MESSAGE_OUT "hook-message-out" #define HOOK_STATUS_CHANGE "hook-status-change"