[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