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

rousseau at users.alioth.debian.org rousseau at users.alioth.debian.org
Mon Nov 8 10:01:04 UTC 2010


Author: rousseau
Date: Mon Nov  8 10:00:58 2010
New Revision: 5386

URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=5386
Log:
MessageReceiveTimeout(), MessageSendWithHeader(), MessageSend() and
MessageReceive() now returns a PC/SC error code instead of an internal
value. So the callers can just return the error code to the application
with no transcoding.

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

Modified: trunk/PCSC/src/winscard_clnt.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_clnt.c?rev=5386&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_clnt.c (original)
+++ trunk/PCSC/src/winscard_clnt.c Mon Nov  8 10:00:58 2010
@@ -570,12 +570,14 @@
 		veStr.minor = PROTOCOL_VERSION_MINOR;
 		veStr.rv = SCARD_S_SUCCESS;
 
-		if (-1 == MessageSendWithHeader(CMD_VERSION, dwClientID, sizeof(veStr),
-			&veStr))
-			return SCARD_E_NO_SERVICE;
+		rv = MessageSendWithHeader(CMD_VERSION, dwClientID, sizeof(veStr),
+			&veStr);
+		if (rv != SCARD_S_SUCCESS)
+			return rv;
 
 		/* Read a message from the server */
-		if (MessageReceive(&veStr, sizeof(veStr), dwClientID) < 0)
+		rv = MessageReceive(&veStr, sizeof(veStr), dwClientID);
+		if (rv != SCARD_S_SUCCESS)
 		{
 			Log1(PCSC_LOG_CRITICAL,
 				"Your pcscd is too old and does not support CMD_VERSION");
@@ -600,8 +602,8 @@
 	rv = MessageSendWithHeader(SCARD_ESTABLISH_CONTEXT, dwClientID,
 		sizeof(scEstablishStruct), (void *) &scEstablishStruct);
 
-	if (rv == -1)
-		return SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
+		return rv;
 
 	/*
 	 * Read the response from the server
@@ -609,8 +611,8 @@
 	rv = MessageReceive(&scEstablishStruct, sizeof(scEstablishStruct),
 		dwClientID);
 
-	if (rv < 0)
-		return SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
+		return rv;
 
 	if (scEstablishStruct.rv != SCARD_S_SUCCESS)
 		return scEstablishStruct.rv;
@@ -690,11 +692,8 @@
 		currentContextMap->dwClientID,
 		sizeof(scReleaseStruct), (void *) &scReleaseStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
@@ -702,11 +701,8 @@
 	rv = MessageReceive(&scReleaseStruct, sizeof(scReleaseStruct),
 		currentContextMap->dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	rv = scReleaseStruct.rv;
 end:
@@ -838,11 +834,8 @@
 	rv = MessageSendWithHeader(SCARD_CONNECT, currentContextMap->dwClientID,
 		sizeof(scConnectStruct), (void *) &scConnectStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
@@ -850,11 +843,8 @@
 	rv = MessageReceive(&scConnectStruct, sizeof(scConnectStruct),
 		currentContextMap->dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	*phCard = scConnectStruct.hCard;
 	*pdwActiveProtocol = scConnectStruct.dwActiveProtocol;
@@ -998,11 +988,8 @@
 	rv = MessageSendWithHeader(SCARD_RECONNECT, currentContextMap->dwClientID,
 		sizeof(scReconnectStruct), (void *) &scReconnectStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
@@ -1010,11 +997,8 @@
 	rv = MessageReceive(&scReconnectStruct, sizeof(scReconnectStruct),
 		currentContextMap->dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	rv = scReconnectStruct.rv;
 
@@ -1102,11 +1086,8 @@
 	rv = MessageSendWithHeader(SCARD_DISCONNECT, currentContextMap->dwClientID,
 		sizeof(scDisconnectStruct), (void *) &scDisconnectStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
@@ -1114,11 +1095,8 @@
 	rv = MessageReceive(&scDisconnectStruct, sizeof(scDisconnectStruct),
 		currentContextMap->dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	(void)SCardRemoveHandle(hCard);
 	rv = scDisconnectStruct.rv;
@@ -1211,11 +1189,8 @@
 			currentContextMap->dwClientID,
 			sizeof(scBeginStruct), (void *) &scBeginStruct);
 
-		if (rv == -1)
-		{
-			rv = SCARD_E_NO_SERVICE;
+		if (rv != SCARD_S_SUCCESS)
 			goto end;
-		}
 
 		/*
 		 * Read a message from the server
@@ -1223,11 +1198,8 @@
 		rv = MessageReceive(&scBeginStruct, sizeof(scBeginStruct),
 			currentContextMap->dwClientID);
 
-		if (rv < 0)
-		{
-			rv = SCARD_F_COMM_ERROR;
+		if (rv != SCARD_S_SUCCESS)
 			goto end;
-		}
 
 		rv = scBeginStruct.rv;
 	}
@@ -1325,11 +1297,8 @@
 		currentContextMap->dwClientID,
 		sizeof(scEndStruct), (void *) &scEndStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
@@ -1337,11 +1306,8 @@
 	rv = MessageReceive(&scEndStruct, sizeof(scEndStruct),
 		currentContextMap->dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * This helps prevent starvation
@@ -1541,11 +1507,8 @@
 	rv = MessageSendWithHeader(SCARD_STATUS, currentContextMap->dwClientID,
 		sizeof(scStatusStruct), (void *) &scStatusStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
@@ -1553,11 +1516,8 @@
 	rv = MessageReceive(&scStatusStruct, sizeof(scStatusStruct),
 		currentContextMap->dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	rv = scStatusStruct.rv;
 
@@ -2115,11 +2075,8 @@
 					currentContextMap->dwClientID,
 					sizeof(waitStatusStruct), &waitStatusStruct);
 
-				if (rv == -1)
-				{
-					rv = SCARD_E_NO_SERVICE;
+				if (rv != SCARD_S_SUCCESS)
 					goto end;
-				}
 
 				/*
 				 * Read a message from the server
@@ -2132,36 +2089,27 @@
 				currentContextMap->cancellable = FALSE;
 
 				/* timeout */
-				if (-2 == rv)
+				if (SCARD_E_TIMEOUT == rv)
 				{
 					/* ask server to remove us from the event list */
 					rv = MessageSendWithHeader(CMD_STOP_WAITING_READER_STATE_CHANGE,
 						currentContextMap->dwClientID,
 						sizeof(waitStatusStruct), &waitStatusStruct);
 
-					if (rv == -1)
-					{
-						rv = SCARD_E_NO_SERVICE;
+					if (rv != SCARD_S_SUCCESS)
 						goto end;
-					}
 
 					/* Read a message from the server */
 					rv = MessageReceive(&waitStatusStruct,
 						sizeof(waitStatusStruct),
 						currentContextMap->dwClientID);
 
-					if (rv == -1)
-					{
-						rv = SCARD_E_NO_SERVICE;
+					if (rv != SCARD_S_SUCCESS)
 						goto end;
-					}
 				}
 
-				if (rv < 0)
-				{
-					rv = SCARD_E_NO_SERVICE;
+				if (rv != SCARD_S_SUCCESS)
 					goto end;
-				}
 
 				/* an event occurs or SCardCancel() was called */
 				if (SCARD_S_SUCCESS != waitStatusStruct.rv)
@@ -2317,21 +2265,15 @@
 	rv = MessageSendWithHeader(SCARD_CONTROL, currentContextMap->dwClientID,
 		sizeof(scControlStruct), &scControlStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/* write the sent buffer */
 	rv = MessageSend((char *)pbSendBuffer, cbSendLength,
 		currentContextMap->dwClientID);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
@@ -2339,11 +2281,8 @@
 	rv = MessageReceive(&scControlStruct, sizeof(scControlStruct),
 		currentContextMap->dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	if (SCARD_S_SUCCESS == scControlStruct.rv)
 	{
@@ -2351,11 +2290,8 @@
 		rv = MessageReceive(pbRecvBuffer, scControlStruct.dwBytesReturned,
 			currentContextMap->dwClientID);
 
-		if (rv < 0)
-		{
-			rv = SCARD_E_NO_SERVICE;
+		if (rv != SCARD_S_SUCCESS)
 			goto end;
-		}
 
 	}
 
@@ -2612,11 +2548,8 @@
 	rv = MessageSendWithHeader(command, currentContextMap->dwClientID,
 		sizeof(scGetSetStruct), &scGetSetStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
@@ -2624,11 +2557,8 @@
 	rv = MessageReceive(&scGetSetStruct, sizeof(scGetSetStruct),
 		currentContextMap->dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	if ((SCARD_S_SUCCESS == scGetSetStruct.rv) && (SCARD_GET_ATTRIB == command))
 	{
@@ -2788,21 +2718,15 @@
 	rv = MessageSendWithHeader(SCARD_TRANSMIT, currentContextMap->dwClientID,
 		sizeof(scTransmitStruct), (void *) &scTransmitStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/* write the sent buffer */
 	rv = MessageSend((void *)pbSendBuffer, cbSendLength,
 		currentContextMap->dwClientID);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
@@ -2810,11 +2734,8 @@
 	rv = MessageReceive(&scTransmitStruct, sizeof(scTransmitStruct),
 		currentContextMap->dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	if (SCARD_S_SUCCESS == scTransmitStruct.rv)
 	{
@@ -2822,11 +2743,8 @@
 		rv = MessageReceive(pbRecvBuffer, scTransmitStruct.pcbRecvLength,
 			currentContextMap->dwClientID);
 
-		if (rv < 0)
-		{
-			rv = SCARD_E_NO_SERVICE;
+		if (rv != SCARD_S_SUCCESS)
 			goto end;
-		}
 
 		if (pioRecvPci)
 		{
@@ -3235,22 +3153,16 @@
 	rv = MessageSendWithHeader(SCARD_CANCEL, dwClientID,
 		sizeof(scCancelStruct), (void *) &scCancelStruct);
 
-	if (rv == -1)
-	{
-		rv = SCARD_E_NO_SERVICE;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	/*
 	 * Read a message from the server
 	 */
 	rv = MessageReceive(&scCancelStruct, sizeof(scCancelStruct), dwClientID);
 
-	if (rv < 0)
-	{
-		rv = SCARD_F_COMM_ERROR;
+	if (rv != SCARD_S_SUCCESS)
 		goto end;
-	}
 
 	rv = scCancelStruct.rv;
 end:
@@ -3668,13 +3580,16 @@
 static LONG getReaderStates(SCONTEXTMAP * currentContextMap)
 {
 	int32_t dwClientID = currentContextMap->dwClientID;
-
-	if (-1 == MessageSendWithHeader(CMD_GET_READERS_STATE, dwClientID, 0, NULL))
-		return SCARD_E_NO_SERVICE;
+	LONG rv;
+
+	rv = MessageSendWithHeader(CMD_GET_READERS_STATE, dwClientID, 0, NULL);
+	if (rv != SCARD_S_SUCCESS)
+		return rv;
 
 	/* Read a message from the server */
-	if (MessageReceive(&readerStates, sizeof(readerStates), dwClientID) < 0)
-		return SCARD_F_COMM_ERROR;
+	rv = MessageReceive(&readerStates, sizeof(readerStates), dwClientID);
+	if (rv != SCARD_S_SUCCESS)
+		return rv;
 
 	return SCARD_S_SUCCESS;
 }

Modified: trunk/PCSC/src/winscard_msg.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_msg.c?rev=5386&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_msg.c (original)
+++ trunk/PCSC/src/winscard_msg.c Mon Nov  8 10:00:58 2010
@@ -166,18 +166,18 @@
  * @param[in] filedes Socket handle.
  * @param[in] timeOut Timeout in milliseconds.
  *
- * @retval 0 Success.
- * @retval -1 Timeout.
- * @retval -1 Socket is closed.
- * @retval -1 A signal was received.
- */
-INTERNAL int32_t MessageReceiveTimeout(uint32_t command, void *buffer_void,
+ * @retval SCARD_S_SUCCESS Success.
+ * @retval SCARD_E_TIMEOUT Timeout.
+ * @retval SCARD_F_COMM_ERROR Socket is closed.
+ * @retval SCARD_F_COMM_ERROR A signal was received.
+ */
+INTERNAL LONG MessageReceiveTimeout(uint32_t command, void *buffer_void,
 	uint64_t buffer_size, int32_t filedes, int32_t timeOut)
 {
 	char *buffer = buffer_void;
 
 	/* default is success */
-	int retval = 0;
+	int retval = SCARD_S_SUCCESS;
 
 	/* record the time when we started */
 	struct timeval start;
@@ -201,7 +201,7 @@
 		if (delta > timeOut*1000)
 		{
 			/* we already timed out */
-			retval = -2;
+			retval = SCARD_E_TIMEOUT;
 			break;
 		}
 
@@ -224,7 +224,7 @@
 			if (!FD_ISSET(filedes, &read_fd))
 			{
 				/* very strange situation. it should be an assert really */
-				retval = -1;
+				retval = SCARD_F_COMM_ERROR;
 				break;
 			}
 			readed = read(filedes, buffer, remaining);
@@ -237,7 +237,7 @@
 			} else if (readed == 0)
 			{
 				/* peer closed the socket */
-				retval = -1;
+				retval = SCARD_F_COMM_ERROR;
 				break;
 			} else
 			{
@@ -245,17 +245,17 @@
 				 * other errors are fatal */
 				if (errno != EINTR && errno != EAGAIN)
 				{
-					retval = -1;
+					retval = SCARD_F_COMM_ERROR;
 					break;
 				}
 			}
 		} else if (selret == 0)
 		{
 			/* is the daemon still there? */
-			if (SCardCheckDaemonAvailability() != SCARD_S_SUCCESS)
+			retval  =  SCardCheckDaemonAvailability();
+			if (retval != SCARD_S_SUCCESS)
 			{
 				/* timeout */
-				retval = -1;
 				break;
 			}
 
@@ -270,7 +270,7 @@
 			{
 				Log2(PCSC_LOG_ERROR, "select returns with failure: %s",
 					strerror(errno));
-				retval = -1;
+				retval = SCARD_F_COMM_ERROR;
 				break;
 			}
 		}
@@ -293,7 +293,7 @@
  *
  * @return Same error codes as MessageSend().
  */
-INTERNAL int32_t MessageSendWithHeader(uint32_t command, uint32_t dwClientID,
+INTERNAL LONG MessageSendWithHeader(uint32_t command, uint32_t dwClientID,
 	uint64_t size, void *data_void)
 {
 	struct rxHeader header;
@@ -323,18 +323,18 @@
  * @param[in] buffer_size Size of the message to send
  * @param[in] filedes Socket handle.
  *
- * @retval 0 Success
- * @retval -1 Timeout.
- * @retval -1 Socket is closed.
- * @retval -1 A signal was received.
- */
-INTERNAL int32_t MessageSend(void *buffer_void, uint64_t buffer_size,
+ * @retval SCARD_S_SUCCESS Success
+ * @retval SCARD_E_TIMEOUT Timeout.
+ * @retval SCARD_F_COMM_ERROR Socket is closed.
+ * @retval SCARD_F_COMM_ERROR A signal was received.
+ */
+INTERNAL LONG MessageSend(void *buffer_void, uint64_t buffer_size,
 	int32_t filedes)
 {
 	char *buffer = buffer_void;
 
 	/* default is success */
-	int retval = 0;
+	int retval = SCARD_S_SUCCESS;
 
 	/* how many bytes remains to be written */
 	size_t remaining = buffer_size;
@@ -358,7 +358,7 @@
 			if (!FD_ISSET(filedes, &write_fd))
 			{
 				/* very strange situation. it should be an assert really */
-				retval = -1;
+				retval = SCARD_F_COMM_ERROR;
 				break;
 			}
 			/* since we are a user library we can't play with signals
@@ -380,7 +380,7 @@
 			} else if (written == 0)
 			{
 				/* peer closed the socket */
-				retval = -1;
+				retval = SCARD_F_COMM_ERROR;
 				break;
 			} else
 			{
@@ -388,14 +388,14 @@
 				 * other errors are fatal */
 				if (errno != EINTR && errno != EAGAIN)
 				{
-					retval = -1;
+					retval = SCARD_F_COMM_ERROR;
 					break;
 				}
 			}
 		} else if (selret == 0)
 		{
 			/* timeout */
-			retval = -1;
+			retval = SCARD_E_TIMEOUT;
 			break;
 		} else
 		{
@@ -404,7 +404,7 @@
 			{
 				Log2(PCSC_LOG_ERROR, "select returns with failure: %s",
 					strerror(errno));
-				retval = -1;
+				retval = SCARD_F_COMM_ERROR;
 				break;
 			}
 		}
@@ -422,17 +422,17 @@
  * @param[in] buffer_size Size to read
  * @param[in] filedes Socket handle.
  *
- * @retval 0 Success.
- * @retval -1 Socket is closed.
- * @retval -1 A signal was received.
- */
-INTERNAL int32_t MessageReceive(void *buffer_void, uint64_t buffer_size,
+ * @retval SCARD_S_SUCCESS Success.
+ * @retval SCARD_F_COMM_ERROR Socket is closed.
+ * @retval SCARD_F_COMM_ERROR A signal was received.
+ */
+INTERNAL LONG MessageReceive(void *buffer_void, uint64_t buffer_size,
 	int32_t filedes)
 {
 	char *buffer = buffer_void;
 
 	/* default is success */
-	int retval = 0;
+	int retval = SCARD_S_SUCCESS;
 
 	/* how many bytes we must read */
 	size_t remaining = buffer_size;
@@ -456,7 +456,7 @@
 			if (!FD_ISSET(filedes, &read_fd))
 			{
 				/* very strange situation. it should be an assert really */
-				retval = -1;
+				retval = SCARD_F_COMM_ERROR;
 				break;
 			}
 			readed = read(filedes, buffer, remaining);
@@ -469,7 +469,7 @@
 			} else if (readed == 0)
 			{
 				/* peer closed the socket */
-				retval = -1;
+				retval = SCARD_F_COMM_ERROR;
 				break;
 			} else
 			{
@@ -477,7 +477,7 @@
 				 * other errors are fatal */
 				if (errno != EINTR && errno != EAGAIN)
 				{
-					retval = -1;
+					retval = SCARD_F_COMM_ERROR;
 					break;
 				}
 			}
@@ -489,7 +489,7 @@
 			{
 				Log2(PCSC_LOG_ERROR, "select returns with failure: %s",
 					strerror(errno));
-				retval = -1;
+				retval = SCARD_F_COMM_ERROR;
 				break;
 			}
 		}

Modified: trunk/PCSC/src/winscard_msg.h
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_msg.h?rev=5386&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_msg.h (original)
+++ trunk/PCSC/src/winscard_msg.h Mon Nov  8 10:00:58 2010
@@ -263,13 +263,13 @@
 	char *getSocketName(void);
 	int32_t ClientSetupSession(uint32_t *);
 	int32_t ClientCloseSession(uint32_t);
-	int32_t MessageReceiveTimeout(uint32_t command, /*@out@*/ void *buffer,
+	LONG MessageReceiveTimeout(uint32_t command, /*@out@*/ void *buffer,
 		uint64_t buffer_size, int32_t filedes, int32_t timeOut);
-	int32_t MessageSendWithHeader(uint32_t command, uint32_t dwClientID,
+	LONG MessageSendWithHeader(uint32_t command, uint32_t dwClientID,
 		uint64_t size, void *data);
 #endif
-	int32_t MessageSend(void *buffer, uint64_t buffer_size, int32_t filedes);
-	int32_t MessageReceive(/*@out@*/ void *buffer, uint64_t buffer_size,
+	LONG MessageSend(void *buffer, uint64_t buffer_size, int32_t filedes);
+	LONG MessageReceive(/*@out@*/ void *buffer, uint64_t buffer_size,
 		int32_t filedes);
 
 #ifdef __cplusplus

Modified: trunk/PCSC/src/winscard_svc.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_svc.c?rev=5386&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_svc.c (original)
+++ trunk/PCSC/src/winscard_svc.c Mon Nov  8 10:00:58 2010
@@ -279,7 +279,7 @@
 #define READ_BODY(v) \
 	if (header.size != sizeof(v)) { goto wrong_length; } \
 	ret = MessageReceive(&v, sizeof(v), filedes); \
-	if (ret < 0) { Log2(PCSC_LOG_DEBUG, "Client die: %d", filedes); goto exit; }
+	if (ret != SCARD_S_SUCCESS) { Log2(PCSC_LOG_DEBUG, "Client die: %d", filedes); goto exit; }
 
 #define WRITE_BODY(v) \
 	WRITE_BODY_WITH_COMMAND(CommandsText[header.command], v)
@@ -300,7 +300,7 @@
 		struct rxHeader header;
 		int32_t ret = MessageReceive(&header, sizeof(header), filedes);
 
-		if (ret < 0)
+		if (ret != SCARD_S_SUCCESS)
 		{
 			/* Clean up the dead client */
 			Log2(PCSC_LOG_DEBUG, "Client die: %d", filedes);
@@ -573,7 +573,7 @@
 
 				/* read sent buffer */
 				ret = MessageReceive(pbSendBuffer, trStr.cbSendLength, filedes);
-				if (ret < 0)
+				if (ret != SCARD_S_SUCCESS)
 				{
 					Log2(PCSC_LOG_DEBUG, "Client die: %d", filedes);
 					goto exit;
@@ -624,7 +624,7 @@
 
 				/* read sent buffer */
 				ret = MessageReceive(pbSendBuffer, ctStr.cbSendLength, filedes);
-				if (ret < 0)
+				if (ret != SCARD_S_SUCCESS)
 				{
 					Log2(PCSC_LOG_DEBUG, "Client die: %d", filedes);
 					goto exit;
@@ -698,7 +698,7 @@
 		}
 
 		/* MessageSend() failed */
-		if (-1 == ret)
+		if (ret != SCARD_S_SUCCESS)
 		{
 			/* Clean up the dead client */
 			Log2(PCSC_LOG_DEBUG, "Client die: %d", filedes);




More information about the Pcsclite-cvs-commit mailing list