/[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 1323 by stargo, Fri Nov 3 14:28:10 2006 UTC revision 1326 by stargo, Fri Nov 3 18:57:09 2006 UTC
# Line 54  static pthread_t queueHandler; Line 54  static pthread_t queueHandler;
54  static pthread_mutex_t queueAccess;  static pthread_mutex_t queueAccess;
55  static pthread_mutex_t queueEmpty;  static pthread_mutex_t queueEmpty;
56  static pthread_mutex_t hcardAccess;  static pthread_mutex_t hcardAccess;
57  /* static pthread_mutex_t sendControl; */  static pthread_mutex_t sendControl;
58    
59  static PMEM_HANDLE threadListHandle = NULL;  static PMEM_HANDLE threadListHandle = NULL;
60  static PThreadListElement threadList = NULL;  static PThreadListElement threadList = NULL;
# Line 152  scard_enum_devices(uint32 * id, char *op Line 152  scard_enum_devices(uint32 * id, char *op
152                  return 0;                  return 0;
153          }          }
154    
 #if 0  
155          if (0 != pthread_mutex_init(&sendControl, NULL))          if (0 != pthread_mutex_init(&sendControl, NULL))
156          {          {
157                  error("[SMART CARD: Can't initialize send control mutex]\n");                  error("[SMART CARD: Can't initialize send control mutex]\n");
158                  return 0;                  return 0;
159          }          }
 #endif  
   
160    
161          if (0 !=          if (0 !=
162              pthread_create(&queueHandler, NULL, (void *(*)(void *)) queue_handler_function, NULL))              pthread_create(&queueHandler, NULL, (void *(*)(void *)) queue_handler_function, NULL))
# Line 493  outBufferFinish(STREAM out, char *buffer Line 490  outBufferFinish(STREAM out, char *buffer
490  static void  static void
491  outForceAlignment(STREAM out, unsigned int seed)  outForceAlignment(STREAM out, unsigned int seed)
492  {  {
 #if 0  
493          SERVER_DWORD add = (seed - (out->p - out->data) % seed) % seed;          SERVER_DWORD add = (seed - (out->p - out->data) % seed) % seed;
494          if (add > 0)          if (add > 0)
495                  out_uint8s(out, add);                  out_uint8s(out, add);
 #else  
         out_uint8s(out, seed);  
 #endif  
496  }  }
497    
498  static unsigned int  static unsigned int
# Line 692  TS_SCardIsValidContext(STREAM in, STREAM Line 685  TS_SCardIsValidContext(STREAM in, STREAM
685                  DEBUG_SCARD(("<--SUCCESS SCardListReaders (no SCardIsValidContext)-->\n"));                  DEBUG_SCARD(("<--SUCCESS SCardListReaders (no SCardIsValidContext)-->\n"));
686          }          }
687    
688          outForceAlignment(out, 16);          outForceAlignment(out, 8);
689          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
690          return rv;          return rv;
691  }  }
# Line 765  TS_SCardListReaders(STREAM in, STREAM ou Line 758  TS_SCardListReaders(STREAM in, STREAM ou
758          out_uint32_le(out, dataLength);          out_uint32_le(out, dataLength);
759          out->p = pend;          out->p = pend;
760    
761          outForceAlignment(out, 16);          outForceAlignment(out, 8);
762          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
763          return rv;          return rv;
764  }  }
# Line 840  TS_SCardConnect(STREAM in, STREAM out, B Line 833  TS_SCardConnect(STREAM in, STREAM out, B
833          out_uint32_le(out, 0x00000004);          out_uint32_le(out, 0x00000004);
834          out_uint32_le(out, hCard);          out_uint32_le(out, hCard);
835    
836          outForceAlignment(out, 16);          outForceAlignment(out, 8);
837          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
838          return rv;          return rv;
839  }  }
# Line 883  TS_SCardReconnect(STREAM in, STREAM out) Line 876  TS_SCardReconnect(STREAM in, STREAM out)
876                  DEBUG_SCARD(("<--SUCCESS SCardReconnect-->\n"));                  DEBUG_SCARD(("<--SUCCESS SCardReconnect-->\n"));
877          }          }
878    
879          outForceAlignment(out, 16);          outForceAlignment(out, 8);
880          out_uint32_le(out, (SERVER_DWORD) dwActiveProtocol);          out_uint32_le(out, (SERVER_DWORD) dwActiveProtocol);
881          return rv;          return rv;
882  }  }
# Line 939  TS_SCardDisconnect(STREAM in, STREAM out Line 932  TS_SCardDisconnect(STREAM in, STREAM out
932                  DEBUG_SCARD(("<--SUCCESS SCardDisconnect-->\n"));                  DEBUG_SCARD(("<--SUCCESS SCardDisconnect-->\n"));
933          }          }
934    
935          outForceAlignment(out, 16);          outForceAlignment(out, 8);
936          return rv;          return rv;
937  }  }
938    
# Line 1196  TS_SCardGetStatusChange(STREAM in, STREA Line 1189  TS_SCardGetStatusChange(STREAM in, STREA
1189                  out_uint8p(out, (void *) ((unsigned char **) cur + 2),                  out_uint8p(out, (void *) ((unsigned char **) cur + 2),
1190                             sizeof(SERVER_SCARD_READERSTATE_A) - 2 * sizeof(unsigned char *));                             sizeof(SERVER_SCARD_READERSTATE_A) - 2 * sizeof(unsigned char *));
1191          }          }
1192          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1193          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
1194          return rv;          return rv;
1195  }  }
# Line 1220  TS_SCardCancel(STREAM in, STREAM out) Line 1213  TS_SCardCancel(STREAM in, STREAM out)
1213          {          {
1214                  DEBUG_SCARD(("<--SUCCESS SCardCancel-->\n"));                  DEBUG_SCARD(("<--SUCCESS SCardCancel-->\n"));
1215          }          }
1216          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1217          return rv;          return rv;
1218  }  }
1219    
# Line 1325  TS_SCardLocateCardsByATR(STREAM in, STRE Line 1318  TS_SCardLocateCardsByATR(STREAM in, STRE
1318                             sizeof(SCARD_READERSTATE_A) - 2 * sizeof(unsigned char *));                             sizeof(SCARD_READERSTATE_A) - 2 * sizeof(unsigned char *));
1319          }          }
1320    
1321          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1322          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
1323          return rv;          return rv;
1324  }  }
# Line 1351  TS_SCardBeginTransaction(STREAM in, STRE Line 1344  TS_SCardBeginTransaction(STREAM in, STRE
1344          {          {
1345                  DEBUG_SCARD(("<--SUCCESS SCardBeginTransaction-->\n"));                  DEBUG_SCARD(("<--SUCCESS SCardBeginTransaction-->\n"));
1346          }          }
1347          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1348          return rv;          return rv;
1349  }  }
1350    
# Line 1382  TS_SCardEndTransaction(STREAM in, STREAM Line 1375  TS_SCardEndTransaction(STREAM in, STREAM
1375          {          {
1376                  DEBUG_SCARD(("<--SUCCESS SCardEndTransaction-->\n"));                  DEBUG_SCARD(("<--SUCCESS SCardEndTransaction-->\n"));
1377          }          }
1378          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1379          return rv;          return rv;
1380  }  }
1381    
# Line 1625  TS_SCardTransmit(STREAM in, STREAM out) Line 1618  TS_SCardTransmit(STREAM in, STREAM out)
1618    
1619                  outBufferFinish(out, (char *) recvBuf, cbRecvLength);                  outBufferFinish(out, (char *) recvBuf, cbRecvLength);
1620          }          }
1621          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1622          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
1623          return rv;          return rv;
1624  }  }
# Line 1741  TS_SCardStatus(STREAM in, STREAM out, BO Line 1734  TS_SCardStatus(STREAM in, STREAM out, BO
1734                  out_uint32_le(out, dataLength);                  out_uint32_le(out, dataLength);
1735                  out->p = psave;                  out->p = psave;
1736          }          }
1737          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1738          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
1739          return rv;          return rv;
1740  }  }
# Line 1835  TS_SCardState(STREAM in, STREAM out) Line 1828  TS_SCardState(STREAM in, STREAM out)
1828                  out_uint8p(out, atr, dwAtrLen);                  out_uint8p(out, atr, dwAtrLen);
1829                  outRepos(out, dwAtrLen);                  outRepos(out, dwAtrLen);
1830          }          }
1831          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1832          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
1833          return rv;          return rv;
1834  }  }
# Line 1888  TS_SCardListReaderGroups(STREAM in, STRE Line 1881  TS_SCardListReaderGroups(STREAM in, STRE
1881          outRepos(out, dwGroups);          outRepos(out, dwGroups);
1882          out_uint32_le(out, 0x00000000);          out_uint32_le(out, 0x00000000);
1883    
1884          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1885          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
1886          return rv;          return rv;
1887  }  }
# Line 1989  TS_SCardGetAttrib(STREAM in, STREAM out) Line 1982  TS_SCardGetAttrib(STREAM in, STREAM out)
1982                  outRepos(out, dwAttrLen);                  outRepos(out, dwAttrLen);
1983                  out_uint32_le(out, 0x00000000);                  out_uint32_le(out, 0x00000000);
1984          }          }
1985          outForceAlignment(out, 16);          outForceAlignment(out, 8);
1986          return rv;          return rv;
1987  }  }
1988    
# Line 2042  TS_SCardSetAttrib(STREAM in, STREAM out) Line 2035  TS_SCardSetAttrib(STREAM in, STREAM out)
2035          out_uint32_le(out, 0x00000200);          out_uint32_le(out, 0x00000200);
2036          out_uint32_le(out, 0x00000000);          out_uint32_le(out, 0x00000000);
2037          out_uint32_le(out, 0x00000000);          out_uint32_le(out, 0x00000000);
2038          outForceAlignment(out, 16);          outForceAlignment(out, 8);
2039          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
2040          return rv;          return rv;
2041  }  }
# Line 2155  TS_SCardControl(STREAM in, STREAM out) Line 2148  TS_SCardControl(STREAM in, STREAM out)
2148                  outRepos(out, nBytesReturned);                  outRepos(out, nBytesReturned);
2149          }          }
2150    
2151          outForceAlignment(out, 16);          outForceAlignment(out, 8);
2152          SC_xfreeallmemory(&lcHandle);          SC_xfreeallmemory(&lcHandle);
2153          return rv;          return rv;
2154  }  }
# Line 2504  SC_deviceControl(PSCThreadData data) Line 2497  SC_deviceControl(PSCThreadData data)
2497          size_t buffer_len = 0;          size_t buffer_len = 0;
2498          scard_device_control(data->handle, data->request, data->in, data->out);          scard_device_control(data->handle, data->request, data->in, data->out);
2499          buffer_len = (size_t) data->out->p - (size_t) data->out->data;          buffer_len = (size_t) data->out->p - (size_t) data->out->data;
 #if 0  
2500          pthread_mutex_lock(&sendControl);          pthread_mutex_lock(&sendControl);
 #endif  
2501          rdpdr_send_completion(data->device, data->id, 0, buffer_len, data->out->data, buffer_len);          rdpdr_send_completion(data->device, data->id, 0, buffer_len, data->out->data, buffer_len);
 #if 0  
2502          pthread_mutex_unlock(&sendControl);          pthread_mutex_unlock(&sendControl);
 #endif  
2503          SC_destroyThreadData(data);          SC_destroyThreadData(data);
2504  }  }
2505    

Legend:
Removed from v.1323  
changed lines
  Added in v.1326

  ViewVC Help
Powered by ViewVC 1.1.26