summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Kashtan <ykashtan@redhat.com>2010-07-06 19:11:51 +0300
committerYuval Kashtan <ykashtan@redhat.com>2010-07-06 19:11:51 +0300
commit56105a0c710c19c8aed529042b1297f87fe659a7 (patch)
treeb955c2ea501108d1d99301105391df83c3f5c206
parent83c8528ce4a208e81ef55324648c79b153b3cedb (diff)
fixing flow
-rw-r--r--SCClient.c36
1 files changed, 10 insertions, 26 deletions
diff --git a/SCClient.c b/SCClient.c
index d912a2d..ffa7259 100644
--- a/SCClient.c
+++ b/SCClient.c
@@ -267,7 +267,16 @@ PrintByteArray (pbSendBuffer, mhHeader.nLength);
pbRecvBuffer,
&dwRecvLength
);
- if (rv != SCARD_S_SUCCESS) {
+ if (rv == SCARD_S_SUCCESS) {
+ mhHeader.nLength = dwRecvLength;
+printf ("send APDU: ");
+PrintByteArray (pbRecvBuffer, mhHeader.nLength);
+ SendMsg (
+ SCard_APDU,
+ pbRecvBuffer,
+ dwRecvLength
+ );
+ } else {
SendMsg (
SCard_Error,
&rv,
@@ -284,31 +293,6 @@ PrintByteArray (pbSendBuffer, mhHeader.nLength);
WaitForCardInsert ();
}
}
- mhHeader.nLength = dwRecvLength;
-printf ("send APDU: ");
-PrintByteArray (pbRecvBuffer, mhHeader.nLength);
- rv = write (
- sock,
- &mhHeader,
- sizeof (mhHeader)
- );
- if (rv < 0) {
- /* Error */
- printf ("write header error\n");
- close (sock);
- return (16);
- }
- rv = write (
- sock,
- pbRecvBuffer,
- dwRecvLength
- );
- if (rv < 0) {
- /* Error */
- printf ("write error\n");
- close (sock);
- return (16);
- }
break;
default:
printf ("Default\n");