37 lines
1.7 KiB
Diff
37 lines
1.7 KiB
Diff
|
From e5b52d51d301bf19efc4211f2fa9f256f64a2a29 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?David=20H=C3=A4rdeman?= <david@hardeman.nu>
|
||
|
Date: Wed, 12 Apr 2023 22:23:51 +0200
|
||
|
Subject: [PATCH] smartcard: check for the addition of new smartcard readers
|
||
|
|
||
|
gsd-smartcard currently checks for the insertion/removal of smartcards
|
||
|
in reader devices which where present at the time gsd-smartcard was
|
||
|
started, but does not account for new smartcard readers appearing
|
||
|
after gsd-smartcard was started.
|
||
|
|
||
|
This patch adds support for checking for the addition of new slots
|
||
|
(i.e. smartcard readers), which is necessary to support devices
|
||
|
like the Yubikey (a "reader" and a smartcard) which may be inserted
|
||
|
after gsd-smartcard was started.
|
||
|
---
|
||
|
plugins/smartcard/gsd-smartcard-manager.c | 7 ++++++-
|
||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/plugins/smartcard/gsd-smartcard-manager.c b/plugins/smartcard/gsd-smartcard-manager.c
|
||
|
index acd22df819..a219e22ef7 100644
|
||
|
--- a/plugins/smartcard/gsd-smartcard-manager.c
|
||
|
+++ b/plugins/smartcard/gsd-smartcard-manager.c
|
||
|
@@ -212,7 +212,12 @@ watch_one_event_from_driver (GsdSmartcardManager *self,
|
||
|
error_code = PORT_GetError ();
|
||
|
|
||
|
if (error_code == SEC_ERROR_NO_EVENT) {
|
||
|
- g_usleep (1 * G_USEC_PER_SEC);
|
||
|
+ int old_slot_count = operation->driver->slotCount;
|
||
|
+ SECMOD_UpdateSlotList (operation->driver);
|
||
|
+ if (operation->driver->slotCount != old_slot_count)
|
||
|
+ g_debug ("Slot count change %i -> %i", old_slot_count, operation->driver->slotCount);
|
||
|
+ else
|
||
|
+ g_usleep (1 * G_USEC_PER_SEC);
|
||
|
|
||
|
return TRUE;
|
||
|
}
|