I just released a new version of
pcsc-lite is a Free Software implementation of the PC/SC (or WinSCard) API for Unix systems.
1.9.5: Ludovic Rousseau
4 December 2021
- pcscd: autoexit even if no client connects
- Fix variable substitution in systemd units
- fix potential race conditions with powerState handling
- Add and use tag
- UnitaryTests: port code to Python 3
This version includes some user visible changes (if the user looks very carefully).
pcscd: autoexit even if no client connects
Since pcsc-lite version 1.8.0 (November 2010) pcscd can be started by systemd
when a PC/SC application is started. See
pcscd auto start using systemd.
After the last client releases the last PC/SC resource the pcscd daemon is
waiting for 30 seconds (in case a new client connects again) and then exits. This
mechanism works great and will continue to work.
When pcscd is NOT started by a PC/SC application then the autoexit mechanism
is not triggered (the alarm clock is not started) and the pcscd process can run forever if no client connects
This happens when pcscd is manually started (or restarted) using something like:
sudo service pcscd restart
This is used to relaunch pcscd after a pcscd upgrade or after a driver
installation or upgrade. I implemented this to fix Debian bug #995814.
Add and use tag
pcscd knows when a USB reader is removed. The hotplug mechanism, by default, uses libudev.
pcscd will now notify the driver that the USB device has been removed and that it is not a good idea to try to send USB packets to a now inexistent device. This will prevent the driver to log USB communication errors (because the device is no more present).
I implemented this to (partly) fix "Reader disconnects are noisy in journal/logs #110"
The driver needs to handle this tag. It is the case for my CCID driver since the patch "Avoid logging errors when a reader is removed". The next stable CCID driver version will include this change.