about summary refs log tree commit diff stats
path: root/src/xmpp_message.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpp_message.c')
-rw-r--r--src/xmpp_message.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/xmpp_message.c b/src/xmpp_message.c
index 532b7c1b..c75df16a 100644
--- a/src/xmpp_message.c
+++ b/src/xmpp_message.c
@@ -32,10 +32,22 @@
 #include "profanity.h"
 #include "xmpp.h"
 
+#define HANDLE(ns, type, func) xmpp_handler_add(conn, func, ns, STANZA_NAME_MESSAGE, type, ctx)
+
+static int _message_handler(xmpp_conn_t * const conn,
+    xmpp_stanza_t * const stanza, void * const userdata);
 static int _groupchat_message_handler(xmpp_stanza_t * const stanza);
 static int _chat_message_handler(xmpp_stanza_t * const stanza);
 
 void
+message_add_handlers(void)
+{
+    xmpp_conn_t * const conn = jabber_get_conn();
+    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    HANDLE(NULL, NULL, _message_handler);
+}
+
+void
 message_send(const char * const msg, const char * const recipient)
 {
     xmpp_conn_t * const conn = jabber_get_conn();
@@ -124,8 +136,8 @@ message_send_gone(const char * const recipient)
     chat_session_set_sent(recipient);
 }
 
-int
-message_handler(xmpp_conn_t * const conn,
+static int
+_message_handler(xmpp_conn_t * const conn,
     xmpp_stanza_t * const stanza, void * const userdata)
 {
     gchar *type = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_TYPE);