empathy r1788 - in trunk: libempathy libempathy-gtk



Author: xclaesse
Date: Fri Nov 21 16:17:03 2008
New Revision: 1788
URL: http://svn.gnome.org/viewvc/empathy?rev=1788&view=rev

Log:
Added empathy_offer_file function and updated accept_file. (Jonny Lamb)

Signed-off-by: Jonny Lamb <jonny lamb collabora co uk>

Modified:
   trunk/libempathy-gtk/empathy-ft-manager.c
   trunk/libempathy/empathy-tp-file.c
   trunk/libempathy/empathy-tp-file.h
   trunk/libempathy/empathy-utils.c

Modified: trunk/libempathy-gtk/empathy-ft-manager.c
==============================================================================
--- trunk/libempathy-gtk/empathy-ft-manager.c	(original)
+++ trunk/libempathy-gtk/empathy-ft-manager.c	Fri Nov 21 16:17:03 2008
@@ -365,6 +365,8 @@
     {
       case EMP_FILE_TRANSFER_STATE_REMOTE_PENDING:
       case EMP_FILE_TRANSFER_STATE_OPEN:
+      case EMP_FILE_TRANSFER_STATE_ACCEPTED:
+      case EMP_FILE_TRANSFER_STATE_NOT_OFFERED:
         if (empathy_tp_file_get_incoming (tp_file))
           /* translators: first %s is filename, second %s is the contact name */
           first_line_format = _("Receiving \"%s\" from %s");
@@ -374,7 +376,8 @@
 
         first_line = g_strdup_printf (first_line_format, filename, contact_name);
 
-        if (state == EMP_FILE_TRANSFER_STATE_OPEN)
+        if (state == EMP_FILE_TRANSFER_STATE_OPEN
+            || state == EMP_FILE_TRANSFER_STATE_ACCEPTED)
           {
             gchar *total_size_str;
             gchar *transferred_bytes_str;
@@ -1064,7 +1067,7 @@
           filename = g_file_get_basename (file);
           empathy_tp_file_set_filename (response_data->tp_file, filename);
 
-          empathy_tp_file_accept (response_data->tp_file);
+          empathy_tp_file_accept (response_data->tp_file, 0);
 
           ft_manager_add_tp_file_to_list (response_data->ft_manager,
               response_data->tp_file);

Modified: trunk/libempathy/empathy-tp-file.c
==============================================================================
--- trunk/libempathy/empathy-tp-file.c	(original)
+++ trunk/libempathy/empathy-tp-file.c	Fri Nov 21 16:17:03 2008
@@ -621,7 +621,8 @@
  * EMP_FILE_TRANSFER_STATE_LOCAL_PENDING).
  */
 void
-empathy_tp_file_accept (EmpathyTpFile *tp_file)
+empathy_tp_file_accept (EmpathyTpFile *tp_file,
+                        guint64 offset)
 {
   EmpathyTpFilePriv *priv;
   GValue *address;
@@ -641,11 +642,46 @@
 
   if (!emp_cli_channel_type_file_run_accept_file (TP_PROXY (priv->channel),
       -1, TP_SOCKET_ADDRESS_TYPE_UNIX, TP_SOCKET_ACCESS_CONTROL_LOCALHOST,
-      &nothing, &address, &error, NULL))
+      &nothing, offset, &address, &error, NULL))
     {
       DEBUG ("Accept error: %s",
           error ? error->message : "No message given");
       g_clear_error (&error);
+      return;
+    }
+
+  if (priv->unix_socket_path)
+    g_free (priv->unix_socket_path);
+
+  priv->unix_socket_path = g_value_dup_string (address);
+  g_value_unset (address);
+
+  DEBUG ("Got unix socket path: %s", priv->unix_socket_path);
+}
+
+void
+empathy_tp_file_offer (EmpathyTpFile *tp_file)
+{
+  EmpathyTpFilePriv *priv;
+  GValue *address;
+  GError *error = NULL;
+  GValue nothing = { 0 };
+
+  g_return_if_fail (EMPATHY_IS_TP_FILE (tp_file));
+
+  priv = GET_PRIV (tp_file);
+
+  g_value_init (&nothing, G_TYPE_STRING);
+  g_value_set_string (&nothing, "");
+
+  if (!emp_cli_channel_type_file_run_offer_file (TP_PROXY (priv->channel),
+      -1, TP_SOCKET_ADDRESS_TYPE_UNIX, TP_SOCKET_ACCESS_CONTROL_LOCALHOST,
+      &nothing, &address, &error, NULL))
+    {
+      DEBUG ("OfferFile error: %s",
+          error ? error->message : "No message given");
+      g_clear_error (&error);
+      return;
     }
 
   if (priv->unix_socket_path)

Modified: trunk/libempathy/empathy-tp-file.h
==============================================================================
--- trunk/libempathy/empathy-tp-file.h	(original)
+++ trunk/libempathy/empathy-tp-file.h	Fri Nov 21 16:17:03 2008
@@ -65,8 +65,9 @@
 EmpathyTpFile *empathy_tp_file_new (McAccount *account, TpChannel *channel);
 
 TpChannel *empathy_tp_file_get_channel (EmpathyTpFile *tp_file);
-void empathy_tp_file_accept (EmpathyTpFile *tp_file);
+void empathy_tp_file_accept (EmpathyTpFile *tp_file, guint64 offset);
 void empathy_tp_file_cancel (EmpathyTpFile *tp_file);
+void empathy_tp_file_offer (EmpathyTpFile *tp_file);
 
 const gchar *empathy_tp_file_get_id (EmpathyTpFile *tp_file);
 guint64 empathy_tp_file_get_transferred_bytes (EmpathyTpFile *tp_file);

Modified: trunk/libempathy/empathy-utils.c
==============================================================================
--- trunk/libempathy/empathy-utils.c	(original)
+++ trunk/libempathy/empathy-utils.c	Fri Nov 21 16:17:03 2008
@@ -867,6 +867,8 @@
 		empathy_tp_file_set_input_stream (tp_file, in_stream);
 	}
 
+	empathy_tp_file_offer (tp_file);
+
 	g_object_unref (mc);
 	g_object_unref (connection);
 	g_object_unref (channel);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]