jingle-filetransfer/filetransfer.c
changeset 106 2942c71f434a
parent 105 c31988e107b3
child 107 a7f14a5e112c
--- a/jingle-filetransfer/filetransfer.c	Fri Aug 13 13:53:12 2010 +0200
+++ b/jingle-filetransfer/filetransfer.c	Fri Aug 13 15:17:52 2010 +0200
@@ -155,11 +155,6 @@
   return (gconstpointer) ft;
 }
 
-gboolean jingle_ft_handle_data(gconstpointer data, const gchar *data2, guint len)
-{
-  return FALSE;
-}
-
 static gboolean is_md5_hash(const gchar *hash)
 {
   int i = 0;
@@ -172,7 +167,7 @@
     return FALSE;
 }
 
-gboolean handle_data(gconstpointer jingleft, const gchar *data, guint len)
+gboolean jingle_ft_handle_data(gconstpointer jingleft, const gchar *data, guint len)
 {
   JingleFT *ft = (JingleFT *) jingleft;
   GError *err = NULL;
@@ -188,9 +183,10 @@
       return FALSE;
 	}
   }
+
   status = g_io_channel_write_chars(ft->outfile, data, (gssize) len,
                                     &bytes_written, &err);
-
+  g_io_channel_flush (ft->outfile, NULL);
   if (status != G_IO_STATUS_NORMAL || err != NULL) {
     return FALSE;
   }
@@ -255,6 +251,11 @@
     jft->date = fileinfo.st_mtime;
     jft->size = fileinfo.st_size;
     jft->outfile = g_io_channel_new_file (filename, "r", NULL);
+    if (jft->outfile == NULL) {
+      scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: Cannot open file %s", args[1]);
+      return;
+    }
+    
     g_io_channel_set_encoding(jft->outfile, NULL, NULL);
     
     session_add_app(sess, "file", NS_JINGLE_APP_FT, jft);