diff mcabber/mcabber/xmpp.c @ 1685:1342df44c814

Improved events interface * User can pass additional arguments to event handler * MUC invitation reject now can be supplied a reason
author Myhailo Danylenko <isbear@ukrpost.net>
date Tue, 02 Feb 2010 22:44:18 +0100
parents 95df4ea512c8
children 51481414ca65
line wrap: on
line diff
--- a/mcabber/mcabber/xmpp.c	Tue Jan 19 19:16:38 2010 +0200
+++ b/mcabber/mcabber/xmpp.c	Tue Feb 02 22:44:18 2010 +0100
@@ -1473,7 +1473,6 @@
   if (mstype == LM_MESSAGE_SUB_TYPE_SUBSCRIBE) {
     /* The sender wishes to subscribe to our presence */
     const char *msg;
-    eviqs *evn;
 
     msg = lm_message_node_get_child_value(m->node, "status");
 
@@ -1492,15 +1491,18 @@
     }
 
     // Create a new event item
-    evn = evs_new(EVS_TYPE_SUBSCRIPTION, EVS_MAX_TIMEOUT);
-    if (evn) {
-      evn->callback = &evscallback_subscription;
-      evn->data = g_strdup(r);
-      evn->desc = g_strdup_printf("<%s> wants to subscribe to your "
-                                  "presence updates", r);
-      buf = g_strdup_printf("Please use /event %s accept|reject", evn->id);
-    } else {
-      buf = g_strdup_printf("Unable to create a new event!");
+    {
+      const char *id;
+      char *desc = g_strdup_printf("<%s> wants to subscribe to your "
+                                   "presence updates", r);
+
+      id = evs_new(desc, NULL, 0, evscallback_subscription, g_strdup(r),
+                   (GDestroyNotify)g_free);
+      g_free(desc);
+      if (id)
+        buf = g_strdup_printf("Please use /event %s accept|reject", id);
+      else
+        buf = g_strdup_printf("Unable to create a new event!");
     }
     scr_WriteIncomingMessage(r, buf, 0, HBB_PREFIX_INFO, 0);
     scr_LogPrint(LPRINT_LOGNORM, "%s", buf);