[Pcsclite-cvs-commit] r4432 - in /trunk/PCSC/src: winscard_svc.c winscard_svc.h

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Tue Oct 6 09:08:59 UTC 2009


Author: rousseau
Date: Tue Oct  6 09:08:59 2009
New Revision: 4432

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=4432
Log:
add MSGSignalClient()

Modified:
    trunk/PCSC/src/winscard_svc.c
    trunk/PCSC/src/winscard_svc.h

Modified: trunk/PCSC/src/winscard_svc.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_svc.c?rev=4432&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_svc.c (original)
+++ trunk/PCSC/src/winscard_svc.c Tue Oct  6 09:08:59 2009
@@ -114,6 +114,14 @@
  * A list of local functions used to keep track of clients and their
  * connections
  */
+
+#define READ_BODY(v) \
+	if (header.size != sizeof(v)) {printf("%d %d\n", header.size, sizeof(v)); goto wrong_length;} \
+	ret = SHMMessageReceive(&v, sizeof(v), filedes, PCSCLITE_READ_TIMEOUT); \
+	if (-1 == ret) { Log2(PCSC_LOG_DEBUG, "Client die: %d", filedes); goto exit; }
+
+#define WRITE_BODY(v) \
+	ret = SHMMessageSend(&v, sizeof(v), filedes, PCSCLITE_WRITE_TIMEOUT);
 
 /**
  * @brief Handles messages received from Clients.
@@ -677,6 +685,19 @@
 
 	return 0;
 }
+
+LONG MSGSignalClient(uint32_t filedes, LONG rv)
+{
+	uint32_t ret;
+	struct wait_reader_state_change waStr;
+
+	Log2(PCSC_LOG_DEBUG, "Signal client: %d", filedes);
+
+	waStr.rv = rv;
+	WRITE_BODY(waStr)
+
+	return ret;
+} /* MSGSignalClient */
 
 static LONG MSGAddContext(SCARDCONTEXT hContext, DWORD dwContextIndex)
 {

Modified: trunk/PCSC/src/winscard_svc.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_svc.h?rev=4432&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_svc.h (original)
+++ trunk/PCSC/src/winscard_svc.h Tue Oct  6 09:08:59 2009
@@ -23,6 +23,7 @@
 #endif
 	LONG ContextsInitialize(void);
 	LONG CreateContextThread(uint32_t *);
+	LONG MSGSignalClient(uint32_t filedes, LONG rv);
 #ifdef __cplusplus
 }
 #endif




More information about the Pcsclite-cvs-commit mailing list