jingle/action-handlers.c
changeset 121 3a3c0e16ea00
parent 119 0b9a7b505079
child 123 58bd57666ef9
--- a/jingle/action-handlers.c	Sat Aug 14 19:21:42 2010 +0200
+++ b/jingle/action-handlers.c	Sat Aug 14 21:02:49 2010 +0200
@@ -38,231 +38,6 @@
 
 extern LmMessageHandler* jingle_ack_iq_handler;
 
-
-void handle_content_accept(JingleNode *jn)
-{
-  GError *err = NULL;
-  GSList *child = NULL;
-  JingleContent *cn;
-  JingleAppFuncs *appfuncs;
-  JingleTransportFuncs *transfuncs;
-  gconstpointer description, transport;
-  const gchar *xmlns;
-  JingleSession *sess;
-
-  if (!check_contents(jn, &err)) {
-    scr_log_print(LPRINT_DEBUG, "jingle: One of the content element was invalid (%s)",
-                  err->message);
-    jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
-    return;
-  }
-
-  // it's better if there is at least one content elem
-  if (g_slist_length(jn->content) < 1) {
-    jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
-    return;
-  }
-  
-  // if a session with the same sid doesn't already exists
-  if ((sess = session_find(jn)) == NULL) {
-    jingle_send_iq_error(jn->message, "cancel", "item-not-found", "unknown-session");
-    return;
-  }
-
-  jingle_ack_iq(jn->message);
-
-  for (child = jn->content; child; child = child->next) {
-    cn = (JingleContent *)(child->data);
-    session_changestate_sessioncontent(sess, cn->name, JINGLE_SESSION_STATE_ACTIVE);
-  }
-  jingle_free_jinglenode(jn);
-}
-
-void handle_content_add(JingleNode *jn)
-{
-  GError *err = NULL;
-  GSList *child = NULL;
-  JingleContent *cn;
-  JingleAppFuncs *appfuncs; 
-  JingleTransportFuncs *transfuncs;
-  gconstpointer description, transport;
-  const gchar *xmlns;
-  JingleSession *sess;
-  JingleNode accept, reject;
-  JingleContent tmp_cn;
-  LmMessage *r;
-
-  if (!check_contents(jn, &err)) {
-    scr_log_print(LPRINT_DEBUG, "jingle: One of the content element was invalid (%s)",
-                  err->message);
-    jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
-    return;
-  }
-
-  if (g_slist_length(jn->content) < 1) {
-    jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
-    return;
-  }
-
-  if ((sess = session_find(jn)) == NULL) {
-    jingle_send_iq_error(jn->message, "cancel", "item-not-found", "unknown-session");
-    return;
-  }
-
-  jingle_ack_iq(jn->message);
-
-  accept.action = JINGLE_CONTENT_ACCEPT;
-  accept.sid = jn->sid;
-  accept.content = NULL;
-  
-  reject.action = JINGLE_CONTENT_REJECT;
-  reject.sid = jn->sid;
-  reject.content = NULL;
-  
-  for (child = jn->content; child; child = child->next) {
-    cn = (JingleContent *)(child->data);
-
-    xmlns = lm_message_node_get_attribute(cn->description, "xmlns");
-    appfuncs = jingle_get_appfuncs(xmlns);
-    if (appfuncs == NULL) continue;
-    
-    xmlns = lm_message_node_get_attribute(cn->transport, "xmlns");
-    transfuncs = jingle_get_transportfuncs(xmlns);
-    if (appfuncs == NULL) continue;
-    
-    description = appfuncs->check(cn, &err);
-    if (description == NULL || err != NULL) {
-      reject.content = g_slist_append(reject.content, cn);
-      continue;
-    }
-    transport = transfuncs->check(cn, &err);
-    if (transport == NULL || err != NULL) {
-      reject.content = g_slist_append(reject.content, cn);
-      continue;
-    }
-    session_add_content_from_jinglecontent(sess, cn, JINGLE_SESSION_STATE_ACTIVE);
-    accept.content = g_slist_append(accept.content, cn);
-  }
-  
-  if (g_slist_length(accept.content) != 0) {
-    JingleAckHandle *ackhandle = g_new0(JingleAckHandle, 1);
-    r = lm_message_from_jinglenode(&accept, lm_message_get_from(jn->message));
-    if (r) {
-      ackhandle->callback = NULL;
-      ackhandle->user_data = NULL;
-      lm_connection_send_with_reply(lconnection, r,
-                                    jingle_new_ack_handler(ackhandle), &err);
-      lm_message_unref(r);
-      if (err != NULL) {
-        // TODO
-      }
-    }
-  }
-  
-  if (g_slist_length(reject.content) != 0) {
-    JingleAckHandle *ackhandle = g_new0(JingleAckHandle, 1);
-    r = lm_message_from_jinglenode(&reject, lm_message_get_from(jn->message));
-    if (r) {
-      ackhandle->callback = NULL;
-      ackhandle->user_data = NULL;
-      lm_connection_send_with_reply(lconnection, r,
-                                    jingle_new_ack_handler(ackhandle), &err);
-      lm_message_unref(r);
-      if (err != NULL) {
-        // TODO
-      }
-    }
-  }
-  jingle_free_jinglenode(jn);
-}
-
-void handle_content_reject(JingleNode *jn)
-{
-  GError *err = NULL;
-  GSList *child = NULL;
-  JingleContent *cn;
-  JingleAppFuncs *appfuncs; 
-  JingleTransportFuncs *transfuncs;
-  gconstpointer description, transport;
-  const gchar *xmlns;
-  JingleSession *sess;
-
-  if (!check_contents(jn, &err)) {
-    scr_log_print(LPRINT_DEBUG, "jingle: One of the content element was invalid (%s)",
-                  err->message);
-    jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
-    return;
-  }
-
-  if (g_slist_length(jn->content) < 1) {
-    jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
-    return;
-  }
-
-  if ((sess = session_find(jn)) == NULL) {
-    jingle_send_iq_error(jn->message, "cancel", "item-not-found", "unknown-session");
-    return;
-  }
-
-  jingle_ack_iq(jn->message);
-
-  for (child = jn->content; child; child = child->next) {
-    cn = (JingleContent *)(child->data);
-    session_remove_sessioncontent(sess, cn->name);
-  }
-  
-  // If there is nothing more to do, close the session
-  if (g_slist_length(sess->content) == 0) {
-    jingle_send_session_terminate(sess, "success");
-    session_delete(sess);
-    return;
-  }
-  jingle_free_jinglenode(jn);
-}
-
-void handle_content_remove(JingleNode *jn)
-{
-  GError *err = NULL;
-  GSList *child = NULL;
-  JingleContent *cn;
-  JingleAppFuncs *appfuncs; 
-  JingleTransportFuncs *transfuncs;
-  gconstpointer description, transport;
-  const gchar *xmlns;
-  JingleSession *sess;
-
-  if (!check_contents(jn, &err)) {
-    scr_log_print(LPRINT_DEBUG, "jingle: One of the content element was invalid (%s)",
-                  err->message);
-    jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
-    jingle_free_jinglenode(jn);
-    return;
-  }
-
-  /* it's better if there is at least one content elem */
-  if (g_slist_length(jn->content) < 1) {
-    jingle_send_iq_error(jn->message, "cancel", "bad-request", NULL);
-    jingle_free_jinglenode(jn);
-    return;
-  }
-  
-  // if a session with the same sid doesn't already exists
-  if ((sess = session_find(jn)) == NULL) {
-    // TODO: look if it's really that
-    jingle_send_iq_error(jn->message, "cancel", "item-not-found", "unknown-session");
-    jingle_free_jinglenode(jn);
-    return;
-  }
-
-  jingle_ack_iq(jn->message);
-
-  for (child = jn->content; child; child = child->next) {
-    cn = (JingleContent *)(child->data);
-    session_remove_sessioncontent(sess, cn->name);
-  }
-  jingle_free_jinglenode(jn);
-}
-
 void handle_session_initiate(JingleNode *jn)
 {
   GError *err = NULL;