{
CallbacksData *data = user_data;
EmpathyFTHandler *handler = data->handler;
+ EmpathyFTHandlerPriv *priv = GET_PRIV (handler);
GError *myerr = NULL;
if (channel_classes == NULL)
EMPATHY_FT_ERROR_NOT_SUPPORTED,
_("File transfer not supported by remote contact"));
+ if (!g_cancellable_is_cancelled (priv->cancellable))
+ g_cancellable_cancel (priv->cancellable);
+
data->callback (handler, myerr, data->user_data);
g_clear_error (&myerr);
}
if (!g_cancellable_is_cancelled (priv->cancellable))
g_cancellable_cancel (priv->cancellable);
- cb_data->callback (NULL, error, cb_data->user_data);
+ cb_data->callback (cb_data->handler, error, cb_data->user_data);
g_error_free (error);
- g_object_unref (cb_data->handler);
callbacks_data_free (cb_data);
}
if (!g_cancellable_is_cancelled (priv->cancellable))
g_cancellable_cancel (priv->cancellable);
- cb_data->callback (NULL, (GError *) error, cb_data->user_data);
- g_object_unref (handler);
+ cb_data->callback (handler, (GError *) error, cb_data->user_data);
+ callbacks_data_free (cb_data);
return;
}
if (!g_cancellable_is_cancelled (priv->cancellable))
g_cancellable_cancel (priv->cancellable);
- cb_data->callback (NULL, (GError *) error, cb_data->user_data);
- g_object_unref (handler);
+ cb_data->callback (handler, (GError *) error, cb_data->user_data);
+
+ callbacks_data_free (cb_data);
return;
}