jingle-filetransfer/filetransfer.c
changeset 105 c31988e107b3
parent 103 c34b513be8d9
child 106 2942c71f434a
--- a/jingle-filetransfer/filetransfer.c	Fri Aug 13 01:23:59 2010 +0200
+++ b/jingle-filetransfer/filetransfer.c	Fri Aug 13 13:53:12 2010 +0200
@@ -262,10 +262,9 @@
     jingle_handle_app(sess, "file", NS_JINGLE_APP_FT, jft, recipientjid);
 
     g_free(ressource);
-    //g_checksum_free(md5);
     g_free(sid);
-    g_io_channel_unref(jft->outfile);
-    g_io_channel_shutdown(jft->outfile, TRUE, NULL);
+    //g_io_channel_unref(jft->outfile);
+    //g_io_channel_shutdown(jft->outfile, TRUE, NULL);
   }
 
   free_arg_lst(args);
@@ -333,7 +332,11 @@
   GIOStatus status;
   int count = 0;
   JingleSession *sess = session_find_by_sid(sid, from);
-  // TODO: sess == NULL
+  if (sess == NULL) {
+    scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: error before transfer");
+    // TODO: send session-terminate / delete session
+    return;
+  }
   
   SessionContent *sc = session_find_sessioncontent(sess, name);
   
@@ -356,7 +359,7 @@
   g_checksum_update(jft->md5, (guchar*)buf, read);
   
   // Call a handle in jingle who will call the trans
-  handle_app_data(sid, name, from, buf, read);
+  handle_app_data(sid, from, name, buf, read);
   
   g_free(buf);
   
@@ -379,13 +382,16 @@
   JingleFT *jft = (JingleFT*)data;
   
   JingleSession *sess = session_find_by_sid(sid, from);
-  // TODO: sess == NULL
+  if (sess == NULL) {
+    scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: error before transfer");
+    return;
+  }
   
   SessionContent *sc = session_find_sessioncontent(sess, name);
 
   jft->md5 = g_checksum_new(G_CHECKSUM_MD5);
   
-  sc->appfuncs->send(sid, name, from, data, size);
+  sc->appfuncs->send(sid, from, name, data, size);
 }
 
 static void jingle_ft_init(void)