jingle-ibb/ibb.c
changeset 157 8ec7ce3ecaac
parent 156 653fa009fea3
child 158 a068e5714120
equal deleted inserted replaced
156:653fa009fea3 157:8ec7ce3ecaac
   139        * the 'block-size' attribute. */
   139        * the 'block-size' attribute. */
   140       blocksizestr = lm_message_node_get_attribute(node, "block-size");
   140       blocksizestr = lm_message_node_get_attribute(node, "block-size");
   141       blocksize = g_ascii_strtoll(blocksizestr, NULL, 10);
   141       blocksize = g_ascii_strtoll(blocksizestr, NULL, 10);
   142       jibb->blocksize = (blocksize < jibb->blocksize) ? blocksize : jibb->blocksize; 
   142       jibb->blocksize = (blocksize < jibb->blocksize) ? blocksize : jibb->blocksize; 
   143       return JINGLE_STATUS_HANDLED;
   143       return JINGLE_STATUS_HANDLED;
   144 	}
   144     }
   145   }
   145   }
   146   return JINGLE_STATUS_NOT_HANDLED;
   146   return JINGLE_STATUS_NOT_HANDLED;
   147 }
   147 }
   148 
   148 
   149 LmHandlerResult jingle_ibb_handle_iq(LmMessageHandler *handler,
   149 LmHandlerResult jingle_ibb_handle_iq(LmMessageHandler *handler,
   186   handle_trans_data(jibb2, (const gchar *)data, (guint)len);
   186   handle_trans_data(jibb2, (const gchar *)data, (guint)len);
   187   
   187   
   188   return LM_HANDLER_RESULT_REMOVE_MESSAGE;
   188   return LM_HANDLER_RESULT_REMOVE_MESSAGE;
   189 }
   189 }
   190 
   190 
   191 static gchar *new_ibb_sid(void)
   191 static gchar *gen_ibb_sid(void)
   192 {
   192 {
   193   gchar *sid;
   193   gchar *sid;
   194   gchar car[] = "azertyuiopqsdfghjklmwxcvbn1234567890AZERTYUIOPQSDFGHJKLMWXCVBN";
   194   gchar car[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
   195   int i;
   195   int i;
   196   sid = g_new0(gchar, 7);
   196   sid = g_new0(gchar, 7);
   197   for (i = 0; i < 6; i++)
   197   for (i = 0; i < 6; i++)
   198     sid[i] = car[g_random_int_range(0, sizeof(car)/sizeof(car[0]))];
   198     sid[i] = car[g_random_int_range(0, sizeof(car)/sizeof(car[0]))];
   199 
   199 
   200   sid[6] = '\0';
   200   sid[6] = '\0';
   201   
       
   202   return sid;
   201   return sid;
   203 }
   202 }
   204 
   203 
   205 static gconstpointer new(void)
   204 static gconstpointer new(void)
   206 {
   205 {
   207   JingleIBB *ibb = g_new0(JingleIBB, 1);
   206   JingleIBB *ibb = g_new0(JingleIBB, 1);
   208   ibb->blocksize = IBB_BLOCK_SIZE_MAX;
   207   ibb->blocksize = IBB_BLOCK_SIZE_MAX;
   209   ibb->sid = new_ibb_sid();
   208   ibb->sid = gen_ibb_sid();
   210   ibb->seq = 0;
   209   ibb->seq = 0;
   211   
   210   
   212   return ibb;
   211   return ibb;
   213 }
   212 }
   214 
   213