jingle/send.c
changeset 148 cb40539b88b7
parent 129 2d5c3efda92a
child 156 653fa009fea3
equal deleted inserted replaced
147:c72010633a86 148:cb40539b88b7
    63 static void jingle_handle_ack_iq_sa(JingleAckType acktype, LmMessage *mess,
    63 static void jingle_handle_ack_iq_sa(JingleAckType acktype, LmMessage *mess,
    64                                     gpointer data)
    64                                     gpointer data)
    65 {
    65 {
    66   LmMessageNode *node;
    66   LmMessageNode *node;
    67   const gchar *type, *cause;
    67   const gchar *type, *cause;
    68   GSList *child = NULL;
       
    69   JingleSession *sess = (JingleSession*)data;
    68   JingleSession *sess = (JingleSession*)data;
    70   SessionContent *sc;
       
    71 
    69 
    72   if (acktype == JINGLE_ACK_TIMEOUT) {
    70   if (acktype == JINGLE_ACK_TIMEOUT) {
    73     // TODO: handle ack timeout...
    71     // TODO: handle ack timeout...
    74     scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-accept %s: %s", type, cause);
    72     scr_LogPrint(LPRINT_LOGNORM, "Jingle: did not receive the accept ack in time, aborting");
    75     session_delete(sess);
    73     session_delete(sess);
    76     return;
    74     return;
    77   }
    75   }
    78 
    76 
    79   if(lm_message_get_sub_type(mess) == LM_MESSAGE_SUB_TYPE_RESULT) {
    77   if(lm_message_get_sub_type(mess) == LM_MESSAGE_SUB_TYPE_RESULT) {
    84     node = lm_message_get_node(mess);
    82     node = lm_message_get_node(mess);
    85     node = lm_message_node_get_child(node,"error");
    83     node = lm_message_node_get_child(node,"error");
    86     type = lm_message_node_get_attribute(node, "type");
    84     type = lm_message_node_get_attribute(node, "type");
    87     if(node->children != NULL)
    85     if(node->children != NULL)
    88       cause = node->children->name;
    86       cause = node->children->name;
       
    87     else
       
    88       cause = "?";
    89     scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-accept %s: %s", type, cause);
    89     scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-accept %s: %s", type, cause);
    90   }
    90   }
    91   // We delete the session, there was an error
    91   // We delete the session, there was an error
    92   session_delete(sess);
    92   session_delete(sess);
    93 }
    93 }
   119   const gchar *type, *cause;
   119   const gchar *type, *cause;
   120   JingleSession *sess = (JingleSession*)data;
   120   JingleSession *sess = (JingleSession*)data;
   121 
   121 
   122   if (acktype == JINGLE_ACK_TIMEOUT) {
   122   if (acktype == JINGLE_ACK_TIMEOUT) {
   123     // TODO: handle ack timeout...
   123     // TODO: handle ack timeout...
   124     scr_LogPrint(LPRINT_LOGNORM, "Jingle: did not receive the ack in time, aborting");
   124     scr_LogPrint(LPRINT_LOGNORM, "Jingle: did not receive the initiate ack in time, aborting");
   125     session_delete(sess);
   125     session_delete(sess);
   126     return;
   126     return;
   127   }
   127   }
   128 
   128 
   129   if (lm_message_get_sub_type(mess) == LM_MESSAGE_SUB_TYPE_RESULT)
   129   if (lm_message_get_sub_type(mess) == LM_MESSAGE_SUB_TYPE_RESULT)
   132     node = lm_message_get_node(mess);
   132     node = lm_message_get_node(mess);
   133     node = lm_message_node_get_child(node,"error");
   133     node = lm_message_node_get_child(node,"error");
   134     type = lm_message_node_get_attribute(node, "type");
   134     type = lm_message_node_get_attribute(node, "type");
   135     if(node->children != NULL)
   135     if(node->children != NULL)
   136       cause = node->children->name;
   136       cause = node->children->name;
       
   137     else
       
   138       cause = "?";
   137     scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-initiate %s: %s", type, cause);
   139     scr_LogPrint(LPRINT_LOGNORM, "Jingle: session-initiate %s: %s", type, cause);
   138   }
   140   }
   139   // We delete the session, there was an error
   141   // We delete the session, there was an error
   140   session_delete(sess);
   142   session_delete(sess);
   141 }
   143 }
   142 
   144 
   143 void jingle_send_session_initiate(JingleSession *js)
   145 void jingle_send_session_initiate(JingleSession *js)
   144 {
   146 {
   145   JingleAckHandle *ackhandle;
   147   JingleAckHandle *ackhandle;
   146   GSList *listentry;
       
   147   GError *err = NULL;
   148   GError *err = NULL;
   148   gboolean status;
   149   gboolean status;
   149   
   150   
   150   LmMessage *mess = lm_message_from_jinglesession(js, JINGLE_SESSION_INITIATE);
   151   LmMessage *mess = lm_message_from_jinglesession(js, JINGLE_SESSION_INITIATE);
   151   lm_message_node_set_attribute(lm_message_node_get_child(mess->node, "jingle"),
   152   lm_message_node_set_attribute(lm_message_node_get_child(mess->node, "jingle"),