mirror of
https://gitlab.freedesktop.org/libfprint/fprintd.git
synced 2025-12-27 12:50:10 +01:00
device: Return errors if we fail open/close during delete
When using Delete() method with a device with storage, we need to claim it, however in case of failure we never return a DBus error, but instead we ignore from the client point of view.
This commit is contained in:
parent
b2cae5cccf
commit
edf95d554d
1 changed files with 28 additions and 4 deletions
32
src/device.c
32
src/device.c
|
|
@ -1469,13 +1469,37 @@ static void fprint_device_delete_enrolled_fingers(FprintDevice *rdev,
|
|||
_fprint_device_add_client (rdev, sender);
|
||||
g_free (sender);
|
||||
|
||||
if (!opened && fp_device_has_storage (priv->dev))
|
||||
fp_device_open_sync (priv->dev, NULL, NULL);
|
||||
if (!opened && fp_device_has_storage (priv->dev)) {
|
||||
if (!fp_device_open_sync (priv->dev, NULL, &error)) {
|
||||
g_autoptr(GError) dbus_error = NULL;
|
||||
|
||||
dbus_error = g_error_new (FPRINT_ERROR,
|
||||
FPRINT_ERROR_INTERNAL,
|
||||
"Open failed with error: %s",
|
||||
error->message);
|
||||
dbus_g_method_return_error (context, dbus_error);
|
||||
g_error_free (error);
|
||||
g_free (user);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
delete_enrolled_fingers (rdev, user);
|
||||
|
||||
if (!opened && fp_device_has_storage (priv->dev))
|
||||
fp_device_close_sync (priv->dev, NULL, NULL);
|
||||
if (!opened && fp_device_has_storage (priv->dev)) {
|
||||
if (!fp_device_close_sync (priv->dev, NULL, &error)) {
|
||||
g_autoptr(GError) dbus_error = NULL;
|
||||
|
||||
dbus_error = g_error_new (FPRINT_ERROR,
|
||||
FPRINT_ERROR_INTERNAL,
|
||||
"Close failed with error: %s",
|
||||
error->message);
|
||||
dbus_g_method_return_error (context, dbus_error);
|
||||
g_error_free (error);
|
||||
g_free (user);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
dbus_g_method_return(context);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue