jingle/jingle.c
changeset 47 964b3ebeba8d
parent 46 f33c814d5b3a
child 48 3c08b78be871
--- a/jingle/jingle.c	Sat Jul 10 00:51:45 2010 +0200
+++ b/jingle/jingle.c	Sun Jul 11 18:23:28 2010 +0200
@@ -29,14 +29,13 @@
 #include <mcabber/modules.h>
 #include <mcabber/logprint.h>
 #include <mcabber/xmpp_helper.h>
-#include <mcabber/xmpp_defines.h> 
-#include <mcabber/events.h>
 
 #include <jingle/jingle.h>
 #include <jingle/check.h>
 #include <jingle/action-handlers.h>
 #include <jingle/register.h>
 #include <jingle/send.h>
+#include <jingle/general-handlers.h>
 
 static void  jingle_register_lm_handlers(void);
 static void  jingle_unregister_lm_handlers(void);
@@ -50,6 +49,7 @@
 
 
 static LmMessageHandler* jingle_iq_handler = NULL;
+LmMessageHandler* jingle_ack_iq_handler = NULL;
 static guint connect_hid = 0;
 static guint disconn_hid = 0;
 
@@ -246,6 +246,8 @@
 static void jingle_init(void)
 {
   jingle_iq_handler = lm_message_handler_new(jingle_handle_iq, NULL, NULL);
+  jingle_ack_iq_handler = lm_message_handler_new(jingle_handle_ack_iq, NULL,
+                                                 NULL);
   xmpp_add_feature(NS_JINGLE);
 
   connect_hid = hk_add_handler(jingle_connect_hh, HOOK_POST_CONNECT,
@@ -265,6 +267,8 @@
 
   lm_message_handler_invalidate(jingle_iq_handler);
   lm_message_handler_unref(jingle_iq_handler);
+  lm_message_handler_invalidate(jingle_ack_iq_handler);
+  lm_message_handler_unref(jingle_ack_iq_handler);
 }
 
 LmMessage *lm_message_from_jinglenode(const JingleNode *jn, const gchar *to)
@@ -323,42 +327,3 @@
     lm_message_node_set_attribute(node, "senders", "responder");
 }
 
-gboolean evscallback_jingle(guint evcontext, const gchar *arg,
-                            gpointer userdata)
-{
-  JingleNode *jn = userdata;
-
-  // Demande à mcKael l'utilité de ce truc
-  /*
-  if (G_UNLIKELY(!jn)) {
-    scr_LogPrint(LPRINT_LOGNORM, "Error in evs callback.");
-    return FALSE;
-  }
-  */
-
-  if (evcontext == EVS_CONTEXT_TIMEOUT) {
-    scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s timed out, cancelled.",
-                 jn->initiator);
-    jingle_free_jinglenode(jn);
-    return FALSE;
-  }
-  if (evcontext = EVS_CONTEXT_CANCEL) {
-    scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s cancelled.",
-                 jn->initiator);
-    jingle_free_jinglenode(jn);
-    return FALSE;
-  }
-  if (!(evcontext == EVS_CONTEXT_ACCEPT || evcontext == EVS_CONTEXT_REJECT)) {
-    jingle_free_jinglenode(jn);
-    return FALSE;
-  }
-  
-  if (evcontext == EVS_CONTEXT_ACCEPT) {
-    jingle_send_session_accept(jn);
-  } else {
-    jingle_send_session_terminate(jn, "decline");
-    jingle_free_jinglenode(jn);
-  }
-
-  return FALSE;
-}