44 gboolean jingle_ibb_cmp(gconstpointer data1, gconstpointer data2); |
44 gboolean jingle_ibb_cmp(gconstpointer data1, gconstpointer data2); |
45 void jingle_ibb_tomessage(gconstpointer data, LmMessageNode *node); |
45 void jingle_ibb_tomessage(gconstpointer data, LmMessageNode *node); |
46 const gchar* jingle_ibb_xmlns(void); |
46 const gchar* jingle_ibb_xmlns(void); |
47 gconstpointer jingle_ibb_new(void); |
47 gconstpointer jingle_ibb_new(void); |
48 void jingle_ibb_send(session_content *sc, gconstpointer data, gchar *buf, gsize size); |
48 void jingle_ibb_send(session_content *sc, gconstpointer data, gchar *buf, gsize size); |
|
49 void jingle_ibb_end(session_content *sc, gconstpointer data); |
49 static void _send_internal(session_content *sc, const gchar *to, gchar *buf, |
50 static void _send_internal(session_content *sc, const gchar *to, gchar *buf, |
50 gsize size, const gchar *sid, gint64 *seq); |
51 gsize size, const gchar *sid, gint64 *seq); |
51 |
52 |
52 static void jingle_ibb_init(void); |
53 static void jingle_ibb_init(void); |
53 static void jingle_ibb_uninit(void); |
54 static void jingle_ibb_uninit(void); |
293 |
295 |
294 jibb->dataleft-=jibb->blocksize; |
296 jibb->dataleft-=jibb->blocksize; |
295 |
297 |
296 g_memmove(jibb->buf, jibb->buf+jibb->blocksize, jibb->dataleft); |
298 g_memmove(jibb->buf, jibb->buf+jibb->blocksize, jibb->dataleft); |
297 |
299 |
298 _send_internal(sc, sess->to, buffer, jibb->blocksize, sess->sid, &jibb->seq); |
300 _send_internal(sc, sess->to, buffer, jibb->blocksize, sess->sid, |
|
301 &jibb->seq); |
299 |
302 |
300 g_free(buf); |
303 g_free(buf); |
301 } |
304 } |
|
305 } |
|
306 |
|
307 void jingle_ibb_end(session_content *sc, gconstpointer data) |
|
308 { |
|
309 JingleIBB *jibb = (JingleIBB*)data; |
|
310 JingleSession *sess = session_find_by_sid(sc->sid, sc->from); |
|
311 |
|
312 if (jibb->dataleft > 0) { |
|
313 _send_internal(sc, sess->to, jibb->buf, jibb->dataleft, sess->sid, |
|
314 &jibb->seq); |
|
315 } |
|
316 |
|
317 g_free(jibb->buf); |
302 } |
318 } |
303 |
319 |
304 static void jingle_ibb_unregister_lm_handlers(void) |
320 static void jingle_ibb_unregister_lm_handlers(void) |
305 { |
321 { |
306 if (lconnection) { |
322 if (lconnection) { |