jingle-ibb/ibb.c
changeset 68 ae8b0d03887e
parent 63 b56853071a09
child 72 277778138b4b
equal deleted inserted replaced
67:c12618793df0 68:ae8b0d03887e
    35 
    35 
    36 static LmMessageHandler* jingle_ibb_handler = NULL;
    36 static LmMessageHandler* jingle_ibb_handler = NULL;
    37 
    37 
    38 gconstpointer jingle_ibb_check(JingleContent *cn, GError **err);
    38 gconstpointer jingle_ibb_check(JingleContent *cn, GError **err);
    39 gboolean jingle_ibb_cmp(gconstpointer data1, gconstpointer data2);
    39 gboolean jingle_ibb_cmp(gconstpointer data1, gconstpointer data2);
    40 void jingle_ibb_handle(gconstpointer data, LmMessageNode *node);
    40 void jingle_ibb_handle(JingleAction act, gconstpointer data, LmMessageNode *node);
    41 
    41 
    42 static void jingle_ibb_init(void);
    42 static void jingle_ibb_init(void);
    43 static void jingle_ibb_uninit(void);
    43 static void jingle_ibb_uninit(void);
    44 
    44 
    45 
    45 
   143     return 0;
   143     return 0;
   144   }
   144   }
   145   return 1;
   145   return 1;
   146 }
   146 }
   147 
   147 
   148 void jingle_ibb_handle(gconstpointer data, LmMessageNode *node)
   148 void jingle_ibb_handle(JingleAction act, gconstpointer data, LmMessageNode *node)
   149 {
   149 {
   150   JingleIBB *jibb = (JingleIBB*) data;
   150   if (act == JINGLE_SESSION_INITIATE) {
   151   gchar *bsize = g_strdup_printf("%i", jibb->blocksize);
   151     JingleIBB *jibb = (JingleIBB*) data;
   152   if (lm_message_node_get_child(node, "transport") != NULL)
   152     gchar *bsize = g_strdup_printf("%i", jibb->blocksize);
   153     return;
   153     if (lm_message_node_get_child(node, "transport") != NULL)
       
   154       return;
   154   
   155   
   155   LmMessageNode *node2 = lm_message_node_add_child(node, "transport", NULL);
   156     LmMessageNode *node2 = lm_message_node_add_child(node, "transport", NULL);
   156   lm_message_node_set_attributes(node2, "xmlns", NS_JINGLE_TRANSPORT_IBB,
   157     lm_message_node_set_attributes(node2, "xmlns", NS_JINGLE_TRANSPORT_IBB,
   157                                  "sid", jibb->sid,
   158                                    "sid", jibb->sid,
   158                                  "block-size", bsize);
   159                                    "block-size", bsize);
   159   g_free(bsize);
   160     g_free(bsize);
       
   161   }
   160 }
   162 }
   161 
   163 
   162 static void jingle_ibb_init(void)
   164 static void jingle_ibb_init(void)
   163 {
   165 {
   164   jingle_ibb_handler = lm_message_handler_new(jingle_ibb_handle_iq, NULL, NULL);
   166   jingle_ibb_handler = lm_message_handler_new(jingle_ibb_handle_iq, NULL, NULL);