virtual-device: Remove messages we can't process from queue when not scanning
Commands that are not valid for non-scan operations should be removed from queue, or these may be re-proposed forever.
This commit is contained in:
parent
c495b82000
commit
e1e3f6955e
2 changed files with 11 additions and 1 deletions
|
@ -164,7 +164,11 @@ process_cmds (FpDeviceVirtualDevice * self,
|
||||||
|
|
||||||
/* If we are not scanning, then we have to stop here. */
|
/* If we are not scanning, then we have to stop here. */
|
||||||
if (!scan)
|
if (!scan)
|
||||||
|
{
|
||||||
|
g_warning ("Could not process command: %s", cmd);
|
||||||
|
g_ptr_array_remove_index (self->pending_commands, 0);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (g_str_has_prefix (cmd, SCAN_CMD_PREFIX))
|
if (g_str_has_prefix (cmd, SCAN_CMD_PREFIX))
|
||||||
{
|
{
|
||||||
|
|
|
@ -556,6 +556,12 @@ class VirtualDevice(unittest.TestCase):
|
||||||
self.assertFalse(self._verify_completed)
|
self.assertFalse(self._verify_completed)
|
||||||
self.cancel_verify()
|
self.cancel_verify()
|
||||||
|
|
||||||
|
# Since we don't really cancel here, next command will be passed to release
|
||||||
|
self._close_on_teardown = False
|
||||||
|
with GLibErrorMessage('libfprint-virtual_device',
|
||||||
|
GLib.LogLevelFlags.LEVEL_WARNING, 'Could not process command: SCAN *'):
|
||||||
|
self.dev.close_sync()
|
||||||
|
|
||||||
def test_device_sleep_before_completing_verify(self):
|
def test_device_sleep_before_completing_verify(self):
|
||||||
enrolled = self.enroll_print('foo-print', FPrint.Finger.LEFT_RING)
|
enrolled = self.enroll_print('foo-print', FPrint.Finger.LEFT_RING)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue