+++ /dev/null
-# Disable pcscd on-demand startup (#653903)
-https://bugzilla.redhat.com/show_bug.cgi?id=653903
-
---- pcsc-lite-1.7.0/src/winscard_clnt.c.orig 2011-02-22 23:20:25.000000000 +0100
-+++ pcsc-lite-1.7.0/src/winscard_clnt.c 2011-03-18 16:44:57.275416294 +0100
-@@ -444,80 +444,16 @@
- LPCVOID pvReserved2, LPSCARDCONTEXT phContext)
- {
- LONG rv;
-- int daemon_launched = FALSE;
-- int retries = 0;
-
- API_TRACE_IN("%ld, %p, %p", dwScope, pvReserved1, pvReserved2)
- PROFILE_START
-
--again:
- /* Check if the server is running */
- rv = SCardCheckDaemonAvailability();
- if (SCARD_E_INVALID_HANDLE == rv)
- /* we reconnected to a daemon or we got called from a forked child */
- rv = SCardCheckDaemonAvailability();
-
-- if (SCARD_E_NO_SERVICE == rv)
-- {
--launch:
-- if (daemon_launched)
-- {
-- retries++;
-- if (retries < 50) /* 50 x 100ms = 5 seconds */
-- {
-- /* give some more time to the server to start */
-- SYS_USleep(100*1000); /* 100 ms */
-- goto again;
-- }
--
-- /* the server failed to start (in time) */
-- goto end;
-- }
-- else
-- {
-- int pid;
--
-- pid = fork();
--
-- if (pid < 0)
-- {
-- Log2(PCSC_LOG_CRITICAL, "fork failed: %s", strerror(errno));
-- rv = SCARD_F_INTERNAL_ERROR;
-- goto end;
-- }
--
-- if (0 == pid)
-- {
-- int i, max;
-- char *param = getenv("PCSCLITE_PCSCD_ARGS");
--
-- /* close all file handles except stdin, stdout and
-- * stderr so that pcscd does not confiscate ressources
-- * allocated by the application */
-- max = sysconf(_SC_OPEN_MAX);
-- if (-1 == max)
-- max = 1024;
-- for (i=3; i<max; i++)
-- (void)close(i);
--
-- /* son process */
-- execl(PCSCD_BINARY, "pcscd", "--auto-exit", param,
-- (char *)NULL);
-- Log2(PCSC_LOG_CRITICAL, "exec " PCSCD_BINARY " failed: %s",
-- strerror(errno));
-- exit(1);
-- }
--
-- /* father process */
-- daemon_launched = TRUE;
--
-- if (waitpid(pid, NULL, 0) < 0)
-- Log2(PCSC_LOG_CRITICAL, "waitpid failed: %s", strerror(errno));
--
-- goto again;
-- }
-- }
--
- if (rv != SCARD_S_SUCCESS)
- goto end;
-
-@@ -526,15 +462,6 @@
- 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)
- API_TRACE_OUT("%ld", *phContext)