Projekt

Allgemein

Profil

Herunterladen (5,92 KB) Statistiken
| Zweig: | Markierung: | Revision:


#define GWEN_EXTEND_WAITCALLBACK
#include <gwenhywfar/logger.h>
#include <gwenhywfar/net.h>
#include <gwenhywfar/nettransportssl.h>
#include "cbtest.h"

#include <stdlib.h>
#include <stdio.h>
#include <unistd.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 test3(int argc, char **argv) {
GWEN_DB_NODE *db;

db=GWEN_DB_Group_new("certificate");
GWEN_DB_SetCharValue(db, GWEN_DB_FLAGS_OVERWRITE_VARS,
"countryName", "DE");
GWEN_DB_SetCharValue(db, GWEN_DB_FLAGS_OVERWRITE_VARS,
"commonName", "Martin Preuss");
GWEN_DB_SetCharValue(db, GWEN_DB_FLAGS_OVERWRITE_VARS,
"organizationName", "Aquamaniac");
GWEN_DB_SetCharValue(db, GWEN_DB_FLAGS_OVERWRITE_VARS,
"organizationalUnitName", "Libchipcard");
GWEN_DB_SetCharValue(db, GWEN_DB_FLAGS_OVERWRITE_VARS,
"localityName", "Hamburg");
GWEN_DB_SetCharValue(db, GWEN_DB_FLAGS_OVERWRITE_VARS,
"stateOrProvinceName", "Hamburg");

if (GWEN_NetTransportSSL_GenerateCertAndKeyFile("test.crt",
1024,
123,
90,
db)) {
fprintf(stderr, "Could not create certificate.\n");
GWEN_DB_Group_free(db);
return 1;
}

fprintf(stderr, "Certificate created.\n");
GWEN_DB_Group_free(db);
return 0;
}



int test6(int argc, char **argv) {
LCS_SERVER *cs;
LCDM_DEVICEMANAGER *dm;
GWEN_DB_NODE *dbConfig;
int rv;
time_t t0;
int isOn=0;

dbConfig=GWEN_DB_Group_new("config");
if (GWEN_DB_ReadFile(dbConfig,
"lstest.conf",
GWEN_PATH_FLAGS_CREATE_GROUP)) {
fprintf(stderr, "Could not load test config.\n");
return 2;
}
cs=LCS_FullServer_new();
rv=LCS_FullServer_Init(cs, dbConfig);
if (rv) {
fprintf(stderr, "Error initializing server.\n");
return 3;
}

dm=LCS_Server_GetDeviceManager(cs);
assert(dm);

LCS_Server_BeginUseReaders(cs);
isOn=1;

t0=time(0);
fprintf(stderr, "Starting server.\n");
for (;;) {
GWEN_NETCONNECTION_WORKRESULT res;
time_t t1;

for (;;) {
fprintf(stderr, "Working (%d)...\n", isOn);
rv=LCS_FullServer_Work(cs);
if (rv!=0) {
fprintf(stderr, "Change.\n");
}
else
break;
}
res=GWEN_Net_HeartBeat(2000);
if (res==GWEN_NetConnectionWorkResult_Error) {
fprintf(stderr, "ERROR: Error while working (%d)\n", res);
break;
}
t1=time(0);
if (difftime(t1, t0)>30) {
if (isOn) {
fprintf(stderr, "================== Turning readers off.\n");
LCS_Server_EndUseReaders(cs, 1);
isOn=0;
}
else {
fprintf(stderr, "================== Turning readers on.\n");
LCS_Server_BeginUseReaders(cs);
isOn=1;
}
t0=time(0);
}
}

return 0;
}



int test7(int argc, char **argv) {
LCS_SERVER *cs;
LCDM_DEVICEMANAGER *dm;
GWEN_DB_NODE *dbConfig;
int rv;

dbConfig=GWEN_DB_Group_new("config");
if (GWEN_DB_ReadFile(dbConfig,
"lstest.conf",
GWEN_PATH_FLAGS_CREATE_GROUP)) {
fprintf(stderr, "Could not load test config.\n");
return 2;
}
cs=LCS_FullServer_new();
rv=LCS_FullServer_Init(cs, dbConfig);
if (rv) {
fprintf(stderr, "Error initializing server.\n");
return 3;
}

dm=LCS_Server_GetDeviceManager(cs);
assert(dm);

fprintf(stderr, "Starting server.\n");
for (;;) {
GWEN_NETCONNECTION_WORKRESULT res;

for (;;) {
fprintf(stderr, "Working ...\n");
rv=LCS_FullServer_Work(cs);
if (rv!=0) {
fprintf(stderr, "Change.\n");
}
else
break;
}
res=GWEN_Net_HeartBeat(2000);
if (res==GWEN_NetConnectionWorkResult_Error) {
fprintf(stderr, "ERROR: Error while working (%d)\n", res);
break;
}
}

return 0;
}



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");
return 1;
}
//GWEN_Logger_Open(0, "server",
// "server.log",
// GWEN_LoggerTypeFile,
// GWEN_LoggerFacilityUser);
GWEN_Logger_SetLevel(0, GWEN_LoggerLevelInfo);

if (strcasecmp(argv[1], "test3")==0)
return test3(argc, argv);
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;
}
}







(7-7/8)