diff options
author | Timothy Arceri <t_arceri@yahoo.com.au> | 2013-05-08 21:20:04 +1000 |
---|---|---|
committer | Ondrej Holy <oholy@redhat.com> | 2013-07-08 17:03:30 +0200 |
commit | 53909ed97cdf84059bf16d8dde18f8183529d788 (patch) | |
tree | 747b3b664ecbd0cc4ac5c9952c03830baa84f1c8 | |
parent | 91bd02a0e3216d7b901405b7636055881867bf92 (diff) | |
download | gvfs-53909ed97cdf84059bf16d8dde18f8183529d788.tar.gz |
Implement clean shutdown in obexftp backend
https://bugzilla.gnome.org/show_bug.cgi?id=511802
-rw-r--r-- | daemon/gvfsbackendobexftp.c | 15 |
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 |