jingle/jingle.c
changeset 44 4738d78edc05
parent 39 405518ad71de
child 45 c007e112dd54
equal deleted inserted replaced
43:357e69106171 44:4738d78edc05
    28 #include <mcabber/hooks.h>
    28 #include <mcabber/hooks.h>
    29 #include <mcabber/modules.h>
    29 #include <mcabber/modules.h>
    30 #include <mcabber/logprint.h>
    30 #include <mcabber/logprint.h>
    31 #include <mcabber/xmpp_helper.h>
    31 #include <mcabber/xmpp_helper.h>
    32 #include <mcabber/xmpp_defines.h> 
    32 #include <mcabber/xmpp_defines.h> 
       
    33 #include <mcabber/events.h>
    33 
    34 
    34 #include <jingle/jingle.h>
    35 #include <jingle/jingle.h>
    35 #include <jingle/check.h>
    36 #include <jingle/check.h>
    36 #include <jingle/action-handlers.h>
    37 #include <jingle/action-handlers.h>
    37 #include <jingle/register.h>
    38 #include <jingle/register.h>
   313   else if (content->senders == JINGLE_SENDERS_INITIATOR)
   314   else if (content->senders == JINGLE_SENDERS_INITIATOR)
   314     lm_message_node_set_attribute(node, "senders", "initiator");
   315     lm_message_node_set_attribute(node, "senders", "initiator");
   315   else if (content->senders == JINGLE_SENDERS_RESPONDER)
   316   else if (content->senders == JINGLE_SENDERS_RESPONDER)
   316     lm_message_node_set_attribute(node, "senders", "responder");
   317     lm_message_node_set_attribute(node, "senders", "responder");
   317 }
   318 }
       
   319 
       
   320 gboolean evscallback_jingle(guint evcontext, const gchar *arg, gpointer userdata)
       
   321 {
       
   322   JingleNode *jn = userdata;
       
   323 
       
   324   // Demande à mcKael l'utilité de ce truc
       
   325   /*
       
   326   if (G_UNLIKELY(!jn)) {
       
   327     scr_LogPrint(LPRINT_LOGNORM, "Error in evs callback.");
       
   328     return FALSE;
       
   329   }
       
   330   */
       
   331 
       
   332   if (evcontext == EVS_CONTEXT_TIMEOUT) {
       
   333     scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s timed out, cancelled.", jn->initiator);
       
   334     jingle_free_jinglenode(jn);
       
   335     return FALSE;
       
   336   }
       
   337   if (evcontext = EVS_CONTEXT_CANCEL) {
       
   338     scr_LogPrint(LPRINT_LOGNORM, "Jingle event from %s cancelled.", jn->initiator);
       
   339     jingle_free_jinglenode(jn);
       
   340     return FALSE;
       
   341   }
       
   342   if (!(evcontext == EVS_CONTEXT_ACCEPT || evcontext == EVS_CONTEXT_REJECT)) {
       
   343     jingle_free_jinglenode(jn);
       
   344     return FALSE;
       
   345   }
       
   346   
       
   347   if (evcontext == EVS_CONTEXT_ACCEPT) {
       
   348     jingle_send_session_accept(jn);
       
   349   } else {
       
   350     // TODO: detroy the JingleNode and send a session-reject
       
   351     jingle_free_jinglenode(jn);
       
   352   }
       
   353 
       
   354   return FALSE;
       
   355 }