Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 94a813e9

Von aquamaniac vor fast 20 Jahren hinzugefügt

  • ID 94a813e9453f1ba8c25a17fd6a63ce949b8683f7
  • Vorgänger b77b4c8e
  • Nachfolger 6d83c0f8

- added support for pcmcia device detection
- completed transition to new server code

git-svn-id: https://devel.aqbanking.de/svn/libchipcard/trunk@122 bfc04c16-8f10-0410-8200-ddfbc4d55d47

Unterschiede anzeigen:

src/test/lstest.c
#define GWEN_EXTEND_WAITCALLBACK
#include <chipcard2-server/server/cardserver.h>
#include <chipcard2-server/common/usbmonitor.h>
#include <gwenhywfar/logger.h>
#include <gwenhywfar/net.h>
#include <gwenhywfar/nettransportssl.h>
......
#include "server_l.h"
#include "fullserver_l.h"
#include "pciscanner_l.h"
#include "usbrawscanner_l.h"
#include "usbttyscanner_l.h"
#ifdef USE_PCMCIA
# include "pcmciascanner_l.h"
#endif
int test1(int argc, char **argv) {
LC_CARDSERVER *cardServer;
GWEN_DB_NODE *db;
GWEN_WAITCALLBACK *cb;
cardServer=LC_CardServer_new(0);
cb=TEST_Callback_new(GWEN_WAITCALLBACK_ID_SIMPLE_PROGRESS);
if (GWEN_WaitCallback_Register(cb)) {
fprintf(stderr, "Could not register callback\n");
return 1;
}
//GWEN_WaitCallback_SetDistance(cb, 100);
//GWEN_WaitCallback_Enter(GWEN_NETCONNECTION_CBID_IO);
db=GWEN_DB_Group_new("config");
if (GWEN_DB_ReadFile(db,
"chipcardd.conf",
GWEN_DB_FLAGS_DEFAULT |
GWEN_PATH_FLAGS_CREATE_GROUP)) {
fprintf(stderr, "ERROR: Could not read file\n");
return 1;
}
if (LC_CardServer_ReadConfig(cardServer, db)) {
fprintf(stderr, "\nERROR: Could not read config\n");
return 1;
}
while(1) {
GWEN_NETCONNECTION_WORKRESULT res;
int rv;
//fprintf(stderr, "Heartbeat\n");
res=GWEN_Net_HeartBeat(2000);
if (res==GWEN_NetConnectionWorkResult_Error) {
fprintf(stderr, "\nERROR: Error while working (%d)\n", res);
}
//fprintf(stderr, "\nINFO: Changes\n");
while(1) {
rv=LC_CardServer_Work(cardServer);
if (rv==-1) {
fprintf(stderr,
"\nERROR: Error while working on hardware (%d)\n", rv);
break;
}
else if (rv==1)
break;
else {
//fprintf(stderr, "INFO: loop done (something done)\n");
//fprintf(stderr, "\nINFO: One loop with hardware done\n");
}
}
} /* while */
fprintf(stderr, "\nFinished.\n");
LC_CardServer_free(cardServer);
return 0;
}
int test2(int argc, char **argv) {
LC_CARDSERVER *cardServer;
GWEN_DB_NODE *db;
GWEN_Logger_SetLevel(0, GWEN_LoggerLevelDebug);
cardServer=LC_CardServer_new(0);
db=GWEN_DB_Group_new("config");
if (GWEN_DB_ReadFile(db,
"chipcardd.conf",
GWEN_DB_FLAGS_DEFAULT |
GWEN_PATH_FLAGS_CREATE_GROUP)) {
fprintf(stderr, "ERROR: Could not read file\n");
return 1;
}
if (LC_CardServer_ReadConfig(cardServer, db)) {
GWEN_DB_Group_free(db);
fprintf(stderr, "\nERROR: Could not read config\n");
return 1;
}
GWEN_DB_Group_free(db);
LC_CardServer_free(cardServer);
fprintf(stderr, "\nFinished.\n");
return 0;
}
int test3(int argc, char **argv) {
......
int test4(int argc, char **argv) {
LC_USBMONITOR *um;
um=LC_USBMonitor_new();
if (LC_USBMonitor_Scan(um)) {
fprintf(stderr, "Could not read USB files.\n");
return 2;
}
if (LC_USBMonitor_Scan(um)) {
fprintf(stderr, "Could not read USB files.\n");
return 2;
}
return 0;
}
#if 0
int test5(int argc, char **argv) {
LC_PCIMONITOR *um;
um=LC_PciMonitor_new();
if (LC_PciMonitor_Scan(um)) {
fprintf(stderr, "Could not read PCI files.\n");
return 2;
}
if (LC_PciMonitor_Scan(um)) {
fprintf(stderr, "Could not read PCI files.\n");
return 2;
}
return 0;
}
#endif
int test6(int argc, char **argv) {
LCS_SERVER *cs;
LCDM_DEVICEMANAGER *dm;
......
int test8(int argc, char **argv) {
LC_DEVMONITOR *devmon;
LC_DEVSCANNER *devscan;
int rv;
LC_DEVICE_LIST *devlist;
LC_DEVICE *dev;
devmon=LC_DevMonitor_new();
devscan=LC_PciScanner_new();
LC_DevMonitor_AddScanner(devmon, devscan);
#ifdef USE_PCMCIA
devscan=LC_PcmciaScanner_new();
LC_DevMonitor_AddScanner(devmon, devscan);
#endif
devscan=LC_UsbRawScanner_new();
LC_DevMonitor_AddScanner(devmon, devscan);
devscan=LC_UsbTtyScanner_new();
LC_DevMonitor_AddScanner(devmon, devscan);
rv=LC_DevMonitor_Scan(devmon);
if (rv<0) {
fprintf(stderr, "Error scanning\n");
}
else if (rv==1) {
fprintf(stderr, "No changes.\n");
}
devlist=LC_DevMonitor_GetCurrentDevices(devmon);
assert(devlist);
fprintf(stderr, "List of devices:\n");
dev=LC_Device_List_First(devlist);
while(dev) {
fprintf(stderr, "Device: %s %d %d 0x%04x 0x%04x\n",
LC_Device_BusType_toString(LC_Device_GetBusType(dev)),
LC_Device_GetBusId(dev),
LC_Device_GetDeviceId(dev),
LC_Device_GetVendorId(dev),
LC_Device_GetProductId(dev));
dev=LC_Device_List_Next(dev);
}
return 0;
}
int main(int argc, char **argv) {
if (argc<2) {
fprintf(stderr, "At least command name needed.\n");
......
// "server.log",
// GWEN_LoggerTypeFile,
// GWEN_LoggerFacilityUser);
GWEN_Logger_SetLevel(0, GWEN_LoggerLevelDebug);
GWEN_Logger_SetLevel(0, GWEN_LoggerLevelInfo);
if (strcasecmp(argv[1], "test1")==0)
return test1(argc, argv);
else if (strcasecmp(argv[1], "test2")==0)
return test2(argc, argv);
else if (strcasecmp(argv[1], "test3")==0)
if (strcasecmp(argv[1], "test3")==0)
return test3(argc, argv);
else if (strcasecmp(argv[1], "test4")==0)
return test4(argc, argv);
#if 0
else if (strcasecmp(argv[1], "test5")==0)
return test5(argc, argv);
#endif
else if (strcasecmp(argv[1], "test6")==0)
return test6(argc, argv);
else if (strcasecmp(argv[1], "test7")==0)
return test7(argc, argv);
else if (strcasecmp(argv[1], "test8")==0)
return test8(argc, argv);
else {
fprintf(stderr, "Unknown command \"%s\"\n", argv[1]);
return 1;

Auch abrufbar als: Unified diff