diff options
author | Yuval Kashtan <ykashtan@redhat.com> | 2010-07-06 19:11:51 +0300 |
---|---|---|
committer | Yuval Kashtan <ykashtan@redhat.com> | 2010-07-06 19:11:51 +0300 |
commit | 56105a0c710c19c8aed529042b1297f87fe659a7 (patch) | |
tree | b955c2ea501108d1d99301105391df83c3f5c206 | |
parent | 83c8528ce4a208e81ef55324648c79b153b3cedb (diff) |
fixing flow
-rw-r--r-- | SCClient.c | 36 |
1 files changed, 10 insertions, 26 deletions
@@ -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"); |