pcscdeamon.c sets up a signal handler for SIGUSR1 to call signal_reload.
But on Solaris (at least and it looks like HP too) the man pages say:

     If signal()is used,  disp  is  the address of a signal handler, and sig is
     not  SIGILL, SIGTRAP, or  SIGPWR, the system first sets  the
     signal's disposition to  SIG_DFL before executing the signal
     handler.

Thus the first use of pcscd -H works, but the second time causes the deamon
to not cache the signal and end.

This looks like this has been in previous versions as well.
The patch has the signal handler reenable the signal.
Use of sigaction  might be a better solution.


Ludovic Rousseau wrote:
Hello,

A new version of pcsc-lite 1.5.5 is available at [1].
This version fixes bugs. No new feature added.

Changelog:
pcsc-lite-1.5.5: Ludovic Rousseau
28 July 2009
- add the reader interface name if provided by the device
- SCardTransmit(): return SCARD_E_UNSUPPORTED_FEATURE if
  SCARD_PROTOCOL_RAW is requested by unsupported
- SCardConnect() and SCardReconnect(): set dwActiveProtocol to
  SCARD_PROTOCOL_UNDEFINED if SCARD_SHARE_DIRECT is used (conform to
  MSDN). Contrary to Windows winscard behavior, the reader is accessed in
  shared mode and not exclusive mode if SCARD_SHARE_DIRECT is used.
- SCardControl(): correctly check for buffer overflow (bug introduced in
  pcsc-lite 1.5.4)
- some other minor improvements and bug corrections

[1] https://alioth.debian.org/frs/?group_id=30105&release_id=1378


--

 Douglas E. Engert  <[email protected]>
 Argonne National Laboratory
 9700 South Cass Avenue
 Argonne, Illinois  60439
 (630) 252-5444
--- ./src/,pcscdaemon.c	Sat Jul  4 03:10:31 2009
+++ ./src/pcscdaemon.c	Mon Aug 31 16:18:18 2009
@@ -576,6 +576,8 @@
 		return;
 
 	HPReCheckSerialReaders();
+
+	(void)signal(SIGUSR1, signal_reload);
 } /* signal_reload */
 
 static void signal_trap(/*...@unused@*/ int sig)
_______________________________________________
Muscle mailing list
[email protected]
http://lists.drizzle.com/mailman/listinfo/muscle

Reply via email to