/[rdesktop]/sourceforge.net/trunk/rdesktop/scard.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/scard.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1368 by stargo, Thu Jan 4 23:19:54 2007 UTC revision 1372 by jsorg71, Mon Jan 8 04:47:06 2007 UTC
# Line 24  Line 24 
24  #include <strings.h>  #include <strings.h>
25  #include <sys/types.h>  #include <sys/types.h>
26  #include <time.h>  #include <time.h>
 /* PCSC does not use BOOL as parameters or return values in function calls,  
    so let us just ignore their own definition of BOOL */  
 #define BOOL PCSC_BOOL  
27  #ifndef MAKE_PROTO  #ifndef MAKE_PROTO
28  #ifdef PCSC_OSX  #ifdef PCSC_OSX
29  #include <PCSC/wintypes.h>  #include <PCSC/wintypes.h>
# Line 37  Line 34 
34  #include <pcsclite.h>  #include <pcsclite.h>
35  #include <winscard.h>  #include <winscard.h>
36  #endif /* PCSC_OSX */  #endif /* PCSC_OSX */
 #undef BOOL  
37  #include "rdesktop.h"  #include "rdesktop.h"
38  #include "scard.h"  #include "scard.h"
39    
# Line 495  outForceAlignment(STREAM out, unsigned i Line 491  outForceAlignment(STREAM out, unsigned i
491  }  }
492    
493  static unsigned int  static unsigned int
494  inString(PMEM_HANDLE * handle, STREAM in, char **destination, SERVER_DWORD dataLength, BOOL wide)  inString(PMEM_HANDLE * handle, STREAM in, char **destination, SERVER_DWORD dataLength, RD_BOOL wide)
495  {  {
496          unsigned int Result = (wide) ? (2 * dataLength) : (dataLength);          unsigned int Result = (wide) ? (2 * dataLength) : (dataLength);
497          PMEM_HANDLE lcHandle = NULL;          PMEM_HANDLE lcHandle = NULL;
# Line 529  inString(PMEM_HANDLE * handle, STREAM in Line 525  inString(PMEM_HANDLE * handle, STREAM in
525  }  }
526    
527  static unsigned int  static unsigned int
528  outString(STREAM out, char *source, BOOL wide)  outString(STREAM out, char *source, RD_BOOL wide)
529  {  {
530          PMEM_HANDLE lcHandle = NULL;          PMEM_HANDLE lcHandle = NULL;
531          char *reader = getAlias(source);          char *reader = getAlias(source);
# Line 563  outString(STREAM out, char *source, BOOL Line 559  outString(STREAM out, char *source, BOOL
559  }  }
560    
561  static void  static void
562  inReaderName(PMEM_HANDLE * handle, STREAM in, char **destination, BOOL wide)  inReaderName(PMEM_HANDLE * handle, STREAM in, char **destination, RD_BOOL wide)
563  {  {
564          SERVER_DWORD dataLength;          SERVER_DWORD dataLength;
565          in->p += 0x08;          in->p += 0x08;
# Line 691  TS_SCardIsValidContext(STREAM in, STREAM Line 687  TS_SCardIsValidContext(STREAM in, STREAM
687    
688    
689  static MYPCSC_DWORD  static MYPCSC_DWORD
690  TS_SCardListReaders(STREAM in, STREAM out, BOOL wide)  TS_SCardListReaders(STREAM in, STREAM out, RD_BOOL wide)
691  {  {
692  #define readerArraySize 1024  #define readerArraySize 1024
693          MYPCSC_DWORD rv;          MYPCSC_DWORD rv;
# Line 764  TS_SCardListReaders(STREAM in, STREAM ou Line 760  TS_SCardListReaders(STREAM in, STREAM ou
760    
761    
762  static MYPCSC_DWORD  static MYPCSC_DWORD
763  TS_SCardConnect(STREAM in, STREAM out, BOOL wide)  TS_SCardConnect(STREAM in, STREAM out, RD_BOOL wide)
764  {  {
765          MYPCSC_DWORD rv;          MYPCSC_DWORD rv;
766          SCARDCONTEXT hContext;          SCARDCONTEXT hContext;
# Line 957  needStatusRecheck(MYPCSC_DWORD rv, MYPCS Line 953  needStatusRecheck(MYPCSC_DWORD rv, MYPCS
953          return recall;          return recall;
954  }  }
955    
956  static BOOL  static D_BOOL
957  mappedStatus(MYPCSC_DWORD code)  mappedStatus(MYPCSC_DWORD code)
958  {  {
959          code >>= 16;          code >>= 16;
# Line 966  mappedStatus(MYPCSC_DWORD code) Line 962  mappedStatus(MYPCSC_DWORD code)
962  }  }
963    
964  static MYPCSC_DWORD  static MYPCSC_DWORD
965  incStatus(MYPCSC_DWORD code, BOOL mapped)  incStatus(MYPCSC_DWORD code, RD_BOOL mapped)
966  {  {
967          if (mapped || (code & SCARD_STATE_CHANGED))          if (mapped || (code & SCARD_STATE_CHANGED))
968          {          {
# Line 1020  copyReaderState_ServerToMyPCSC(SERVER_LP Line 1016  copyReaderState_ServerToMyPCSC(SERVER_LP
1016    
1017    
1018  static MYPCSC_DWORD  static MYPCSC_DWORD
1019  TS_SCardGetStatusChange(STREAM in, STREAM out, BOOL wide)  TS_SCardGetStatusChange(STREAM in, STREAM out, RD_BOOL wide)
1020  {  {
1021          MYPCSC_DWORD rv;          MYPCSC_DWORD rv;
1022          SERVER_SCARDCONTEXT hContext;          SERVER_SCARDCONTEXT hContext;
# Line 1032  TS_SCardGetStatusChange(STREAM in, STREA Line 1028  TS_SCardGetStatusChange(STREAM in, STREA
1028          long i;          long i;
1029          PMEM_HANDLE lcHandle = NULL;          PMEM_HANDLE lcHandle = NULL;
1030  #if 0  #if 0
1031          BOOL mapped = False;          RD_BOOL mapped = False;
1032  #endif  #endif
1033    
1034          in->p += 0x18;          in->p += 0x18;
# Line 1222  TS_SCardCancel(STREAM in, STREAM out) Line 1218  TS_SCardCancel(STREAM in, STREAM out)
1218  }  }
1219    
1220  static MYPCSC_DWORD  static MYPCSC_DWORD
1221  TS_SCardLocateCardsByATR(STREAM in, STREAM out, BOOL wide)  TS_SCardLocateCardsByATR(STREAM in, STREAM out, RD_BOOL wide)
1222  {  {
1223          int i, j, k;          int i, j, k;
1224          MYPCSC_DWORD rv;          MYPCSC_DWORD rv;
# Line 1290  TS_SCardLocateCardsByATR(STREAM in, STRE Line 1286  TS_SCardLocateCardsByATR(STREAM in, STRE
1286                  {                  {
1287                          for (j = 0, rsCur = rsArray; j < readerCount; j++, rsCur++)                          for (j = 0, rsCur = rsArray; j < readerCount; j++, rsCur++)
1288                          {                          {
1289                                  BOOL equal = 1;                                  RD_BOOL equal = 1;
1290                                  for (k = 0; k < cur->cbAtr; k++)                                  for (k = 0; k < cur->cbAtr; k++)
1291                                  {                                  {
1292                                          /*  This line check if them equal */                                          /*  This line check if them equal */
# Line 1631  TS_SCardTransmit(STREAM in, STREAM out) Line 1627  TS_SCardTransmit(STREAM in, STREAM out)
1627  }  }
1628    
1629  static MYPCSC_DWORD  static MYPCSC_DWORD
1630  TS_SCardStatus(STREAM in, STREAM out, BOOL wide)  TS_SCardStatus(STREAM in, STREAM out, RD_BOOL wide)
1631  {  {
1632          MYPCSC_DWORD rv;          MYPCSC_DWORD rv;
1633          SERVER_SCARDCONTEXT hCard;          SERVER_SCARDCONTEXT hCard;
# Line 2225  scard_device_control(RD_NTHANDLE handle, Line 2221  scard_device_control(RD_NTHANDLE handle,
2221                  case SC_LIST_READERS:   /* SCardListReadersA */                  case SC_LIST_READERS:   /* SCardListReadersA */
2222                  case SC_LIST_READERS + 4:       /* SCardListReadersW */                  case SC_LIST_READERS + 4:       /* SCardListReadersW */
2223                          {                          {
2224                                  BOOL wide = request != SC_LIST_READERS;                                  D_BOOL wide = request != SC_LIST_READERS;
2225                                  DEBUG_SCARD(("<---SCardListReaders---> (%s)\n",                                  DEBUG_SCARD(("<---SCardListReaders---> (%s)\n",
2226                                               (wide) ? ("WIDE") : ("ASCII")));                                               (wide) ? ("WIDE") : ("ASCII")));
2227                                  Result = (SERVER_DWORD) TS_SCardListReaders(in, out, wide);                                  Result = (SERVER_DWORD) TS_SCardListReaders(in, out, wide);
# Line 2235  scard_device_control(RD_NTHANDLE handle, Line 2231  scard_device_control(RD_NTHANDLE handle,
2231                  case SC_CONNECT:        /* ScardConnectA */                  case SC_CONNECT:        /* ScardConnectA */
2232                  case SC_CONNECT + 4:    /* SCardConnectW */                  case SC_CONNECT + 4:    /* SCardConnectW */
2233                          {                          {
2234                                  BOOL wide = request != SC_CONNECT;                                  RD_BOOL wide = request != SC_CONNECT;
2235                                  DEBUG_SCARD(("<---SCardConnect---> (%s)\n",                                  DEBUG_SCARD(("<---SCardConnect---> (%s)\n",
2236                                               (wide) ? ("WIDE") : ("ASCII")));                                               (wide) ? ("WIDE") : ("ASCII")));
2237                                  Result = (SERVER_DWORD) TS_SCardConnect(in, out, wide);                                  Result = (SERVER_DWORD) TS_SCardConnect(in, out, wide);
# Line 2259  scard_device_control(RD_NTHANDLE handle, Line 2255  scard_device_control(RD_NTHANDLE handle,
2255                  case SC_GET_STATUS_CHANGE:      /* SCardGetStatusChangeA */                  case SC_GET_STATUS_CHANGE:      /* SCardGetStatusChangeA */
2256                  case SC_GET_STATUS_CHANGE + 4:  /* SCardGetStatusChangeW */                  case SC_GET_STATUS_CHANGE + 4:  /* SCardGetStatusChangeW */
2257                          {                          {
2258                                  BOOL wide = request != SC_GET_STATUS_CHANGE;                                  RD_BOOL wide = request != SC_GET_STATUS_CHANGE;
2259                                  DEBUG_SCARD(("<---SCardGetStatusChange---> (%s)\n",                                  DEBUG_SCARD(("<---SCardGetStatusChange---> (%s)\n",
2260                                               (wide) ? ("WIDE") : ("ASCII")));                                               (wide) ? ("WIDE") : ("ASCII")));
2261                                  Result = (SERVER_DWORD) TS_SCardGetStatusChange(in, out, wide);                                  Result = (SERVER_DWORD) TS_SCardGetStatusChange(in, out, wide);
# Line 2276  scard_device_control(RD_NTHANDLE handle, Line 2272  scard_device_control(RD_NTHANDLE handle,
2272                  case SC_LOCATE_CARDS_BY_ATR:    /* SCardLocateCardsByATRA */                  case SC_LOCATE_CARDS_BY_ATR:    /* SCardLocateCardsByATRA */
2273                  case SC_LOCATE_CARDS_BY_ATR + 4:        /* SCardLocateCardsByATRW */                  case SC_LOCATE_CARDS_BY_ATR + 4:        /* SCardLocateCardsByATRW */
2274                          {                          {
2275                                  BOOL wide = request != SC_LOCATE_CARDS_BY_ATR;                                  RD_BOOL wide = request != SC_LOCATE_CARDS_BY_ATR;
2276                                  DEBUG_SCARD(("<---SCardLocateCardsByATR---> (%s)\n",                                  DEBUG_SCARD(("<---SCardLocateCardsByATR---> (%s)\n",
2277                                               (wide) ? ("WIDE") : ("ASCII")));                                               (wide) ? ("WIDE") : ("ASCII")));
2278                                  Result = (SERVER_DWORD) TS_SCardLocateCardsByATR(in, out, wide);                                  Result = (SERVER_DWORD) TS_SCardLocateCardsByATR(in, out, wide);
# Line 2328  scard_device_control(RD_NTHANDLE handle, Line 2324  scard_device_control(RD_NTHANDLE handle,
2324                  case SC_STATUS: /* SCardStatusA */                  case SC_STATUS: /* SCardStatusA */
2325                  case SC_STATUS + 4:     /* SCardStatusW */                  case SC_STATUS + 4:     /* SCardStatusW */
2326                          {                          {
2327                                  BOOL wide = request != SC_STATUS;                                  RD_BOOL wide = request != SC_STATUS;
2328                                  DEBUG_SCARD(("<---SCardStatus---> (%s)\n",                                  DEBUG_SCARD(("<---SCardStatus---> (%s)\n",
2329                                               (wide) ? ("WIDE") : ("ASCII")));                                               (wide) ? ("WIDE") : ("ASCII")));
2330                                  Result = (SERVER_DWORD) TS_SCardStatus(in, out, wide);                                  Result = (SERVER_DWORD) TS_SCardStatus(in, out, wide);
# Line 2380  scard_device_control(RD_NTHANDLE handle, Line 2376  scard_device_control(RD_NTHANDLE handle,
2376  /* Thread functions */  /* Thread functions */
2377    
2378  static STREAM  static STREAM
2379  duplicateStream(PMEM_HANDLE * handle, STREAM s, uint32 buffer_size, BOOL isInputStream)  duplicateStream(PMEM_HANDLE * handle, STREAM s, uint32 buffer_size, RD_BOOL isInputStream)
2380  {  {
2381          STREAM d = SC_xmalloc(handle, sizeof(struct stream));          STREAM d = SC_xmalloc(handle, sizeof(struct stream));
2382          if (d != NULL)          if (d != NULL)

Legend:
Removed from v.1368  
changed lines
  Added in v.1372

  ViewVC Help
Powered by ViewVC 1.1.26