jingle-filetransfer/filetransfer.c
changeset 67 c12618793df0
parent 64 63d4f434abbc
child 68 ae8b0d03887e
equal deleted inserted replaced
66:cd16ab43a285 67:c12618793df0
    33 #include <mcabber/commands.h>
    33 #include <mcabber/commands.h>
    34 
    34 
    35 #include <jingle/jingle.h>
    35 #include <jingle/jingle.h>
    36 #include <jingle/check.h>
    36 #include <jingle/check.h>
    37 #include <jingle/register.h>
    37 #include <jingle/register.h>
       
    38 #include <jingle/sessions.h>
    38 
    39 
    39 #include "filetransfer.h"
    40 #include "filetransfer.h"
    40 
    41 
    41 
    42 
    42 gconstpointer jingle_ft_check(JingleContent *cn, GError **err);
    43 gconstpointer jingle_ft_check(JingleContent *cn, GError **err);
   205   if (!args[1]) {
   206   if (!args[1]) {
   206     scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: give me a name!");
   207     scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: give me a name!");
   207     return;
   208     return;
   208   }
   209   }
   209   
   210   
       
   211   if (!g_file_test (args[1], G_FILE_TEST_EXISTS)) {
       
   212     scr_LogPrint(LPRINT_LOGNORM, "File doesn't exist!");
       
   213     return;
       
   214   }
       
   215   
   210   if (!g_strcmp0(args[0], "send")) {
   216   if (!g_strcmp0(args[0], "send")) {
   211     scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: try to sent %s!",
   217     scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: try to sent %s!",
   212                  args[1]);
   218                  args[1]);
   213     
   219     // Create a new session for send a file
   214   
   220     {
       
   221       JingleSession *sess;
       
   222       gchar *sid = new_sid();
       
   223       const gchar *jid = settings_opt_get("jid");
       
   224       JingleFT *jft = g_new0(JingleFT, 1);
       
   225       sess = session_new(sid, jid, jid);
       
   226       session_add_content(sess, "file", JINGLE_SESSION_STATE_PENDING);
       
   227       
       
   228       jft->name = g_strdup(args[1]);
       
   229       jft->hash = NULL;
       
   230       jft->date = 0;
       
   231       jft->size = 0;
       
   232       jft->outfile = NULL;
       
   233       session_add_app(sess, "file", NS_JINGLE_APP_FT, jft);
       
   234 
       
   235 
       
   236       g_free(sid);
       
   237     }  
   215   } else if (!g_strcmp0(args[0], "request")) {
   238   } else if (!g_strcmp0(args[0], "request")) {
   216     scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: try to request %s!",
   239     scr_LogPrint(LPRINT_LOGNORM, "Jingle File Transfer: try to request %s!",
   217                  args[1]);
   240                  args[1]);
   218     //later
   241     //later
   219   }
   242   }
       
   243   
       
   244   
   220   
   245   
   221   free_arg_lst(args);
   246   free_arg_lst(args);
   222 }
   247 }
   223 
   248 
   224 static void jingle_ft_init(void)
   249 static void jingle_ft_init(void)