summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Arceri <t_arceri@yahoo.com.au>2013-05-08 21:20:04 +1000
committerOndrej Holy <oholy@redhat.com>2013-07-08 17:03:30 +0200
commit53909ed97cdf84059bf16d8dde18f8183529d788 (patch)
tree747b3b664ecbd0cc4ac5c9952c03830baa84f1c8
parent91bd02a0e3216d7b901405b7636055881867bf92 (diff)
Implement clean shutdown in obexftp backend
https://bugzilla.gnome.org/show_bug.cgi?id=511802
-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