EmpathyFTHandler *handler = user_data;
EmpathyFTHandlerPriv *priv = GET_PRIV (handler);
+ if (empathy_ft_handler_is_cancelled (handler))
+ return;
+
if (transferred_bytes == 0)
{
priv->last_update_time = empathy_time_get_current ();
EmpathyTpFileOperationCallback op_callback;
gpointer op_user_data;
+ gboolean is_closed;
+
gboolean dispose_run;
} EmpathyTpFilePriv;
DEBUG ("FT operation close clean");
+ if (priv->is_closed)
+ return;
+ else
+ priv->is_closed = TRUE;
+
if (priv->op_callback)
priv->op_callback (tp_file, NULL, priv->op_user_data);
}
DEBUG ("FT operation close with error %s", error->message);
+ if (priv->is_closed)
+ return;
+ else
+ priv->is_closed = TRUE;
+
/* close the channel if it's not cancelled already */
if (priv->state != TP_FILE_TRANSFER_STATE_CANCELLED)
empathy_tp_file_cancel (tp_file);