[telepathy-gabble/master] transport_disconnected_cb: set state to cancelled only if the transfer was not completed

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Fri Apr 3 09:26:09 PDT 2009


---
 src/file-transfer-channel.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/file-transfer-channel.c b/src/file-transfer-channel.c
index 3f29af4..aede279 100644
--- a/src/file-transfer-channel.c
+++ b/src/file-transfer-channel.c
@@ -1544,10 +1544,13 @@ transport_disconnected_cb (GibberTransport *transport,
 {
   DEBUG ("transport to local socket has been disconnected");
 
-  gabble_file_transfer_channel_set_state (
-      TP_SVC_CHANNEL_TYPE_FILE_TRANSFER (self),
-      TP_FILE_TRANSFER_STATE_CANCELLED,
-      TP_FILE_TRANSFER_STATE_CHANGE_REASON_LOCAL_ERROR);
+  if (self->priv->state != TP_FILE_TRANSFER_STATE_COMPLETED)
+    {
+      gabble_file_transfer_channel_set_state (
+          TP_SVC_CHANNEL_TYPE_FILE_TRANSFER (self),
+          TP_FILE_TRANSFER_STATE_CANCELLED,
+          TP_FILE_TRANSFER_STATE_CHANGE_REASON_LOCAL_ERROR);
+    }
 }
 
 static void
-- 
1.5.6.5




More information about the telepathy-commits mailing list