[gvfs] Improve idevice error handling
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gvfs] Improve idevice error handling
- Date: Thu, 23 Aug 2012 06:52:45 +0000 (UTC)
commit 3fbe3f2df5d27e1a35a9312998a0a9ff5f34e7a4
Author: William Jon McCann <jmccann redhat com>
Date: Mon Jul 16 13:05:58 2012 -0400
Improve idevice error handling
https://bugzilla.gnome.org/show_bug.cgi?id=676424
daemon/gvfsbackendafc.c | 30 +++++++++++++++++-------------
1 files changed, 17 insertions(+), 13 deletions(-)
---
diff --git a/daemon/gvfsbackendafc.c b/daemon/gvfsbackendafc.c
index a62b544..e185a7e 100644
--- a/daemon/gvfsbackendafc.c
+++ b/daemon/gvfsbackendafc.c
@@ -285,6 +285,9 @@ g_vfs_backend_lockdownd_check (lockdownd_error_t cond, GVfsJob *job)
g_vfs_job_failed (job, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
_("Permission denied"));
break;
+ case LOCKDOWN_E_SSL_ERROR:
+ g_vfs_job_failed (job, G_IO_ERROR, G_IO_ERROR_CONNECTION_REFUSED,
+ _("Unable to connect"));
default:
g_vfs_job_failed (job, G_IO_ERROR, G_IO_ERROR_FAILED,
_("Unhandled Lockdown error (%d)"), cond);
@@ -478,7 +481,8 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
goto out_destroy_service;
/* first, connect without handshake to get preliminary information */
- if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lockdownd_client_new (self->dev, &lockdown_cli, "gvfsd-afc"), G_VFS_JOB(job))))
+ lerr = lockdownd_client_new (self->dev, &lockdown_cli, "gvfsd-afc");
+ if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lerr, G_VFS_JOB(job))))
goto out_destroy_dev;
/* try to use pretty device name */
@@ -512,7 +516,8 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
/* set correct freedesktop icon spec name depending on device model */
value = NULL;
- if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lockdownd_get_value (lockdown_cli, NULL, "DeviceClass", &value), G_VFS_JOB(job))))
+ lerr = lockdownd_get_value (lockdown_cli, NULL, "DeviceClass", &value);
+ if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lerr, G_VFS_JOB(job))))
goto out_destroy_lockdown;
plist_get_string_val (value, &self->model);
@@ -532,7 +537,8 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
/* Get the major OS version */
value = NULL;
self->version = IOS_UNKNOWN;
- if (G_LIKELY(g_vfs_backend_lockdownd_check (lockdownd_get_value (lockdown_cli, NULL, "ProductVersion", &value), G_VFS_JOB(job)) == 0))
+ lerr = lockdownd_get_value (lockdown_cli, NULL, "ProductVersion", &value);
+ if (G_LIKELY(g_vfs_backend_lockdownd_check (lerr, G_VFS_JOB(job)) == 0))
{
if (plist_get_node_type(value) == PLIST_STRING)
{
@@ -576,7 +582,8 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
lerr = lockdownd_client_new_with_handshake (self->dev,
&lockdown_cli,
"gvfsd-afc");
- if (lerr != LOCKDOWN_E_PASSWORD_PROTECTED)
+ if (lerr != LOCKDOWN_E_PASSWORD_PROTECTED
+ || lerr != LOCKDOWN_E_SSL_ERROR)
break;
aborted = FALSE;
@@ -605,9 +612,8 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
switch (self->mode) {
case ACCESS_MODE_AFC:
- if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lockdownd_start_service (lockdown_cli,
- self->service, &port),
- G_VFS_JOB(job))))
+ lerr = lockdownd_start_service (lockdown_cli, self->service, &port);
+ if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lerr, G_VFS_JOB(job))))
{
goto out_destroy_lockdown;
}
@@ -619,9 +625,8 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
}
break;
case ACCESS_MODE_HOUSE_ARREST:
- if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lockdownd_start_service (lockdown_cli,
- "com.apple.mobile.installation_proxy", &port),
- G_VFS_JOB(job))))
+ lerr = lockdownd_start_service (lockdown_cli, "com.apple.mobile.installation_proxy", &port);
+ if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lerr, G_VFS_JOB(job))))
{
g_warning ("couldn't start inst proxy");
goto out_destroy_lockdown;
@@ -633,9 +638,8 @@ g_vfs_backend_afc_mount (GVfsBackend *backend,
g_warning ("couldn't create inst proxy instance");
goto out_destroy_lockdown;
}
- if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lockdownd_start_service (lockdown_cli,
- "com.apple.springboardservices", &port),
- G_VFS_JOB(job))))
+ lerr = lockdownd_start_service (lockdown_cli, "com.apple.springboardservices", &port);
+ if (G_UNLIKELY(g_vfs_backend_lockdownd_check (lerr, G_VFS_JOB(job))))
{
g_warning ("couldn't start SBServices proxy");
goto out_destroy_lockdown;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]