54 lines
2.0 KiB
Diff
54 lines
2.0 KiB
Diff
From 4cdca4da247b101e01d3c6266c4b2b3ba946c6f5 Mon Sep 17 00:00:00 2001
|
|
From: Benjamin Berg <bberg@redhat.com>
|
|
Date: Mon, 26 Jul 2021 19:45:02 +0200
|
|
Subject: [PATCH] virtual-device: Do not time out when waiting for SCAN command
|
|
|
|
The timeout is designed to continue commands automatically that are
|
|
common (e.g. opening the device). This doesn't really make sense for
|
|
scan commands, and removing the timeout enables test setups where user
|
|
interaction with the device may happen at arbitrary times.
|
|
|
|
One exception is device removal/unplug, in which case the timeout will
|
|
be added anyway.
|
|
---
|
|
libfprint/drivers/virtual-device.c | 8 +++++++-
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/libfprint/drivers/virtual-device.c b/libfprint/drivers/virtual-device.c
|
|
index 1743692..a9efb39 100644
|
|
--- a/libfprint/drivers/virtual-device.c
|
|
+++ b/libfprint/drivers/virtual-device.c
|
|
@@ -150,6 +150,8 @@ process_cmds (FpDeviceVirtualDevice * self,
|
|
char **scan_id,
|
|
GError **error)
|
|
{
|
|
+ gboolean removed;
|
|
+
|
|
if (g_cancellable_is_cancelled (self->cancellable) ||
|
|
(fpi_device_get_current_action (FP_DEVICE (self)) != FPI_DEVICE_ACTION_NONE &&
|
|
g_cancellable_is_cancelled (fpi_device_get_cancellable (FP_DEVICE (self)))))
|
|
@@ -250,8 +252,11 @@ process_cmds (FpDeviceVirtualDevice * self,
|
|
if (self->ignore_wait)
|
|
return TRUE;
|
|
|
|
+ g_object_get (self, "removed", &removed, NULL);
|
|
+
|
|
g_assert (self->wait_command_id == 0);
|
|
- self->wait_command_id = g_timeout_add (500, wait_for_command_timeout, self);
|
|
+ if (!scan || removed)
|
|
+ self->wait_command_id = g_timeout_add (500, wait_for_command_timeout, self);
|
|
return FALSE;
|
|
}
|
|
|
|
@@ -304,6 +309,7 @@ recv_instruction_cb (GObject *source_object,
|
|
else if (g_str_has_prefix (cmd, UNPLUG_CMD))
|
|
{
|
|
fpi_device_remove (FP_DEVICE (self));
|
|
+ maybe_continue_current_action (self);
|
|
}
|
|
else if (g_str_has_prefix (cmd, SET_ENROLL_STAGES_PREFIX))
|
|
{
|
|
--
|
|
2.31.1
|
|
|