summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--daemon/gvfsbackendobexftp.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/daemon/gvfsbackendobexftp.c b/daemon/gvfsbackendobexftp.c
index 3ce52bb2..e0dd84a5 100644
--- a/daemon/gvfsbackendobexftp.c
+++ b/daemon/gvfsbackendobexftp.c
@@ -778,7 +778,8 @@ error_occurred_cb (DBusGProxy *proxy, const gchar *error_name, const gchar *erro
if (strcmp (error_name, "org.openobex.Error.LinkError") == 0)
{
g_message ("link lost to remote device");
- _exit (1);
+ g_vfs_backend_force_unmount ((GVfsBackend*)op_backend);
+ return;
}
/* Something is waiting on us */
@@ -796,7 +797,7 @@ error_occurred_cb (DBusGProxy *proxy, const gchar *error_name, const gchar *erro
g_mutex_unlock (&op_backend->mutex);
g_message ("Unhandled error, file a bug");
- _exit (1);
+ g_vfs_backend_force_unmount ((GVfsBackend*)op_backend);
}
static void
@@ -846,17 +847,19 @@ cancelled_cb (DBusGProxy *proxy, gpointer user_data)
static void
disconnected_cb (DBusGProxy *proxy, gpointer user_data)
{
- g_message ("disconnected_cb");
+ GVfsBackendObexftp *op_backend = G_VFS_BACKEND_OBEXFTP (user_data);
- _exit (1);
+ g_message ("disconnected_cb");
+ g_vfs_backend_force_unmount ((GVfsBackend*)op_backend);
}
static void
closed_cb (DBusGProxy *proxy, gpointer user_data)
{
- g_message ("closed_cb");
+ GVfsBackendObexftp *op_backend = G_VFS_BACKEND_OBEXFTP (user_data);
- _exit (1);
+ g_message ("closed_cb");
+ g_vfs_backend_force_unmount ((GVfsBackend*)op_backend);
}
static void