[Pcsclite-cvs-commit] r4845 - /trunk/PCSC/src/winscard_clnt.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Tue Mar 30 07:54:43 UTC 2010
Author: rousseau
Date: Tue Mar 30 07:54:42 2010
New Revision: 4845
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=4845
Log:
SCardEstablishContext(): try to relaunch pcscd if
SCardCheckDaemonAvailability() succeeds but SCardEstablishContextTH()
fails. This happens if pcscd crashed without cleaning
/var/run/pcscd/pcscd.comm
Modified:
trunk/PCSC/src/winscard_clnt.c
Modified: trunk/PCSC/src/winscard_clnt.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_clnt.c?rev=4845&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_clnt.c (original)
+++ trunk/PCSC/src/winscard_clnt.c Tue Mar 30 07:54:42 2010
@@ -400,6 +400,7 @@
if (SCARD_E_NO_SERVICE == rv)
{
+launch:
if (daemon_launched)
{
retries++;
@@ -451,6 +452,15 @@
rv = SCardEstablishContextTH(dwScope, pvReserved1,
pvReserved2, phContext);
(void)SCardUnlockThread();
+
+ /* SCardEstablishContextTH may fail if the previous pcscd crashed
+ * without cleaning /var/run/pcscd/pcscd.comm */
+ if (SCARD_E_NO_SERVICE == rv)
+ {
+ retries++;
+ if (retries <= 1)
+ goto launch;
+ }
end:
PROFILE_END(rv)
More information about the Pcsclite-cvs-commit
mailing list