# 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