[Pcsclite-cvs-commit] r2457 - trunk/PCSC/src

Ludovic Rousseau rousseau at alioth.debian.org
Mon Mar 5 15:37:05 CET 2007


Author: rousseau
Date: 2007-03-05 14:37:05 +0000 (Mon, 05 Mar 2007)
New Revision: 2457

Modified:
   trunk/PCSC/src/winscard_clnt.c
Log:
SCardCheckDaemonAvailability(): detects if pcscd has been restarted and
returns SCARD_E_NO_SERVICE in that case


Modified: trunk/PCSC/src/winscard_clnt.c
===================================================================
--- trunk/PCSC/src/winscard_clnt.c	2007-03-05 14:18:22 UTC (rev 2456)
+++ trunk/PCSC/src/winscard_clnt.c	2007-03-05 14:37:05 UTC (rev 2457)
@@ -3326,6 +3326,7 @@
 {
 	LONG rv;
 	struct stat statBuffer;
+	static time_t daemon_ctime = 0;
 
 	rv = SYS_Stat(PCSCLITE_PUBSHM_FILE, &statBuffer);
 
@@ -3334,6 +3335,16 @@
 		Log1(PCSC_LOG_ERROR, "PCSC Not Running");
 		return SCARD_E_NO_SERVICE;
 	}
+	if (daemon_ctime)
+	{
+		if (statBuffer.st_ctime > daemon_ctime)
+		{
+			Log1(PCSC_LOG_ERROR, "PCSC restarted");
+			return SCARD_E_NO_SERVICE;
+		}
+	}
+	else
+		daemon_ctime = statBuffer.st_ctime;
 
 	return SCARD_S_SUCCESS;
 }




More information about the Pcsclite-cvs-commit mailing list