[Telepathy-commits] [telepathy-salut/master] Handle the canceled signal in both incoming and outgoing transfers.

Jonny Lamb jonny.lamb at collabora.co.uk
Fri Nov 21 03:46:17 PST 2008


20080805172635-8ed0e-8fd404bbb76af1e9dd2edf68e5c474e169a63ec3.gz
---
 src/salut-file-channel.c |   26 ++++++++++++++------------
 1 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/salut-file-channel.c b/src/salut-file-channel.c
index 83e7f9c..773a297 100644
--- a/src/salut-file-channel.c
+++ b/src/salut-file-channel.c
@@ -781,6 +781,19 @@ ft_finished_cb (GibberFileTransfer *ft,
 }
 
 static void
+ft_remote_canceled_cb (GibberFileTransfer *ft,
+                       SalutFileChannel *self)
+{
+  gibber_file_transfer_cancel (ft, 406);
+  salut_file_channel_set_state (SALUT_SVC_CHANNEL_TYPE_FILE (self),
+                                SALUT_FILE_TRANSFER_STATE_CANCELED,
+                                SALUT_FILE_TRANSFER_STATE_CHANGE_REASON_REMOTE_STOPPED);
+
+  salut_xmpp_connection_manager_release_connection (self->priv->xmpp_connection_manager,
+                                                    self->priv->xmpp_connection);
+}
+
+static void
 remote_accepted_cb (GibberFileTransfer *ft,
                     SalutFileChannel *self)
 {
@@ -789,6 +802,7 @@ remote_accepted_cb (GibberFileTransfer *ft,
                                 SALUT_FILE_TRANSFER_STATE_CHANGE_REASON_NONE);
 
   g_signal_connect (ft, "finished", G_CALLBACK (ft_finished_cb), self);
+  g_signal_connect (ft, "canceled", G_CALLBACK (ft_remote_canceled_cb), self);
 }
 
 static gboolean setup_local_socket (SalutFileChannel *self);
@@ -945,18 +959,6 @@ ft_transferred_chunk_cb (GibberFileTransfer *ft, guint64 count, SalutFileChannel
     }
 }
 
-static void
-ft_remote_canceled_cb (GibberFileTransfer *ft,
-                       SalutFileChannel *self)
-{
-  salut_file_channel_set_state (SALUT_SVC_CHANNEL_TYPE_FILE (self),
-                                SALUT_FILE_TRANSFER_STATE_CANCELED,
-                                SALUT_FILE_TRANSFER_STATE_CHANGE_REASON_REMOTE_STOPPED);
-
-  salut_xmpp_connection_manager_release_connection (self->priv->xmpp_connection_manager,
-                                                    self->priv->xmpp_connection);
-}
-
 /**
  * salut_file_channel_accept_file
  *
-- 
1.5.6.5




More information about the Telepathy-commits mailing list