int GWEN_Logger_ModuleInit(void) { const char *s; GWEN_LOGGER_LEVEL ll=GWEN_LoggerLevel_Warning; GWEN_Logger_Open(GWEN_LOGDOMAIN, "gwen", 0, GWEN_LoggerType_Console, GWEN_LoggerFacility_User); s=getenv("GWEN_LOGLEVEL"); if (s) { ll=GWEN_Logger_Name2Level(s); if (ll==GWEN_LoggerLevel_Unknown) ll=GWEN_LoggerLevel_Warning; } GWEN_Logger_SetLevel(GWEN_LOGDOMAIN, ll); return 0; }
int EBC_Provider_Init(AB_PROVIDER *pro, GWEN_DB_NODE *dbData) { EBC_PROVIDER *dp; const char *logLevelName; assert(pro); dp=GWEN_INHERIT_GETDATA(AB_PROVIDER, EBC_PROVIDER, pro); assert(dp); if (!GWEN_Logger_IsOpen(AQEBICS_LOGDOMAIN)) { GWEN_Logger_Open(AQEBICS_LOGDOMAIN, "aqebics", 0, GWEN_LoggerType_Console, GWEN_LoggerFacility_User); } logLevelName=getenv("AQEBICS_LOGLEVEL"); if (logLevelName) { GWEN_LOGGER_LEVEL ll; ll=GWEN_Logger_Name2Level(logLevelName); if (ll!=GWEN_LoggerLevel_Unknown) { GWEN_Logger_SetLevel(AQEBICS_LOGDOMAIN, ll); DBG_WARN(AQEBICS_LOGDOMAIN, "Overriding loglevel for AqEBICS with \"%s\"", logLevelName); } else { DBG_ERROR(AQEBICS_LOGDOMAIN, "Unknown loglevel \"%s\"", logLevelName); } } DBG_INFO(AQEBICS_LOGDOMAIN, "Please remember to purchase a license if you want to use the EBICS backend."); if (1) { GWEN_STRINGLIST *sl=GWEN_PathManager_GetPaths(AB_PM_LIBNAME, AB_PM_LOCALEDIR); const char *localedir=GWEN_StringList_FirstString(sl); int rv; rv=GWEN_I18N_BindTextDomain_Dir(PACKAGE, localedir); if (rv) { DBG_ERROR(AQEBICS_LOGDOMAIN, "Could not bind textdomain (%d)", rv); } else { rv=GWEN_I18N_BindTextDomain_Codeset(PACKAGE, "UTF-8"); if (rv) { DBG_ERROR(AQEBICS_LOGDOMAIN, "Could not set codeset (%d)", rv); } } GWEN_StringList_free(sl); } DBG_NOTICE(AQEBICS_LOGDOMAIN, "Initializing AqEBICS backend"); dp->connectTimeout=GWEN_DB_GetIntValue(dbData, "connectTimeout", 0, EBC_DEFAULT_CONNECT_TIMEOUT); dp->transferTimeout=GWEN_DB_GetIntValue(dbData, "transferTimeout", 0, EBC_DEFAULT_TRANSFER_TIMEOUT); return 0; }
int LC_Client_InitCommon() { if (lc_client__initcounter==0) { int rv; GWEN_STRINGLIST *paths; rv=GWEN_Init(); if (rv) { DBG_ERROR_ERR(LC_LOGDOMAIN, rv); return rv; } if (!GWEN_Logger_IsOpen(LC_LOGDOMAIN)) { const char *s; /* only set our logger if it not already has been */ GWEN_Logger_Open(LC_LOGDOMAIN, "chipcard3-client", 0, GWEN_LoggerType_Console, GWEN_LoggerFacility_User); GWEN_Logger_SetLevel(LC_LOGDOMAIN, GWEN_LoggerLevel_Warning); s=getenv("LC_LOGLEVEL"); if (s) { GWEN_LOGGER_LEVEL ll; ll=GWEN_Logger_Name2Level(s); if (ll!=GWEN_LoggerLevel_Unknown) { GWEN_Logger_SetLevel(LC_LOGDOMAIN, ll); DBG_WARN(LC_LOGDOMAIN, "Overriding loglevel for Libchipcard-Client with \"%s\"", s); } else { DBG_ERROR(0, "Unknown loglevel \"%s\"", s); } } else { GWEN_Logger_SetLevel(LC_LOGDOMAIN, GWEN_LoggerLevel_Warning); } } /* define sysconf path */ GWEN_PathManager_DefinePath(LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR); #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* add folder relative to EXE */ GWEN_PathManager_AddRelPath(LCC_PM_LIBNAME, LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR, LC_CLIENT_CONFIG_DIR, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PathManager_AddPath(LCC_PM_LIBNAME, LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR, LC_CLIENT_CONFIG_DIR); #endif /* define data path */ GWEN_PathManager_DefinePath(LCC_PM_LIBNAME, LCC_PM_DATADIR); #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* add folder relative to EXE */ GWEN_PathManager_AddRelPath(LCC_PM_LIBNAME, LCC_PM_LIBNAME, LCC_PM_DATADIR, LC_CLIENT_XML_DIR, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PathManager_AddPath(LCC_PM_LIBNAME, LCC_PM_LIBNAME, LCC_PM_DATADIR, LC_CLIENT_XML_DIR); #endif /* load configuration file */ #if 0 paths=GWEN_PathManager_GetPaths(LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR); if (paths) { GWEN_DB_NODE *db; GWEN_BUFFER *fbuf; db=GWEN_DB_Group_new("config"); fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_Directory_FindFileInPaths(paths, LC_CLIENT_CONFIG_FILE, fbuf); if (rv) { DBG_INFO(LC_LOGDOMAIN, "Trying config file with suffix \".default\""); rv=GWEN_Directory_FindFileInPaths(paths, LC_CLIENT_CONFIG_FILE".default", fbuf); } GWEN_StringList_free(paths); if (rv) { DBG_WARN(LC_LOGDOMAIN, "No configuration file found, using defaults"); } else { DBG_INFO(LC_LOGDOMAIN, "Reading configuration file \"%s\"", GWEN_Buffer_GetStart(fbuf)); rv=GWEN_DB_ReadFile(db, GWEN_Buffer_GetStart(fbuf), GWEN_DB_FLAGS_DEFAULT | GWEN_PATH_FLAGS_CREATE_GROUP); if (rv<0) { DBG_ERROR(LC_LOGDOMAIN, "Error in configuration file \"%s\" (%d)", GWEN_Buffer_GetStart(fbuf), rv); GWEN_Buffer_free(fbuf); /* undo all init stuff so far */ GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_DATADIR); GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR); return rv; } } GWEN_Buffer_free(fbuf); lc_client__config=db; } else { DBG_ERROR(LC_LOGDOMAIN, "Internal error: Paths not found"); return GWEN_ERROR_INTERNAL; } #else lc_client__config=GWEN_DB_Group_new("config"); #endif /* load XML files */ paths=GWEN_PathManager_GetPaths(LCC_PM_LIBNAME, LCC_PM_DATADIR); if (paths) { GWEN_XMLNODE *n; GWEN_DB_NODE *db; GWEN_BUFFER *fbuf; uint32_t bpos; fbuf=GWEN_Buffer_new(0, 256, 0, 1); rv=GWEN_Directory_FindPathForFile(paths, "cards/README", fbuf); GWEN_StringList_free(paths); if (rv) { DBG_ERROR(LC_LOGDOMAIN, "Data files not found (%d)", rv); /* undo all init stuff so far */ GWEN_Buffer_free(fbuf); GWEN_DB_Group_free(lc_client__config); lc_client__config=NULL; GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_DATADIR); GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR); return rv; } /* load card files */ n=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, "cards"); if (LC_Client_ReadXmlFiles(n, GWEN_Buffer_GetStart(fbuf), "cards", "card")) { DBG_ERROR(LC_LOGDOMAIN, "Could not read card files"); GWEN_XMLNode_free(n); /* undo all init stuff so far */ GWEN_Buffer_free(fbuf); GWEN_DB_Group_free(lc_client__config); lc_client__config=NULL; GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_DATADIR); GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR); return GWEN_ERROR_GENERIC; } lc_client__card_nodes=n; /* load app files */ n=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, "apps"); if (LC_Client_ReadXmlFiles(n, GWEN_Buffer_GetStart(fbuf), "apps", "app")) { DBG_ERROR(LC_LOGDOMAIN, "Could not read app files"); GWEN_XMLNode_free(n); /* undo all init stuff so far */ GWEN_XMLNode_free(lc_client__card_nodes); lc_client__card_nodes=NULL; GWEN_Buffer_free(fbuf); GWEN_DB_Group_free(lc_client__config); lc_client__config=NULL; GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_DATADIR); GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR); return GWEN_ERROR_GENERIC; } lc_client__app_nodes=n; /*GWEN_XMLNode_WriteFile(n, "/tmp/apps", GWEN_XML_FLAGS_DEFAULT);*/ /* load driver files (if any) */ bpos=GWEN_Buffer_GetPos(fbuf); GWEN_Buffer_AppendString(fbuf, DIRSEP "drivers"); db=GWEN_DB_Group_new("drivers"); rv=LC_DriverInfo_ReadDrivers(GWEN_Buffer_GetStart(fbuf), db, 0, 1); if (rv) { DBG_INFO(LC_LOGDOMAIN, "here (%d)", rv); GWEN_DB_Group_free(db); /* undo all init stuff so far */ GWEN_XMLNode_free(lc_client__app_nodes); lc_client__app_nodes=NULL; GWEN_XMLNode_free(lc_client__card_nodes); lc_client__card_nodes=NULL; GWEN_Buffer_free(fbuf); GWEN_DB_Group_free(lc_client__config); lc_client__config=NULL; GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_DATADIR); GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR); return rv; } lc_client__driver_db=db; GWEN_Buffer_Crop(fbuf, 0, bpos); /* insert more loading here */ GWEN_Buffer_free(fbuf); } else { DBG_ERROR(LC_LOGDOMAIN, "No data files found."); /* undo all init stuff so far */ GWEN_DB_Group_free(lc_client__config); lc_client__config=NULL; GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_DATADIR); GWEN_PathManager_UndefinePath(LCC_PM_LIBNAME, LCC_PM_SYSCONFDIR); return GWEN_ERROR_GENERIC; } } lc_client__initcounter++; return 0; }
int APY_Provider_Init(AB_PROVIDER *pro, GWEN_DB_NODE *dbData) { APY_PROVIDER *dp; const char *logLevelName; uint32_t currentVersion; uint32_t lastVersion; assert(pro); dp=GWEN_INHERIT_GETDATA(AB_PROVIDER, APY_PROVIDER, pro); assert(dp); if (!GWEN_Logger_IsOpen(AQPAYPAL_LOGDOMAIN)) { GWEN_Logger_Open(AQPAYPAL_LOGDOMAIN, "aqpaypal", 0, GWEN_LoggerType_Console, GWEN_LoggerFacility_User); } logLevelName=getenv("AQPAYPAL_LOGLEVEL"); if (logLevelName) { GWEN_LOGGER_LEVEL ll; ll=GWEN_Logger_Name2Level(logLevelName); if (ll!=GWEN_LoggerLevel_Unknown) { GWEN_Logger_SetLevel(AQPAYPAL_LOGDOMAIN, ll); DBG_WARN(AQPAYPAL_LOGDOMAIN, "Overriding loglevel for AqPAYPAL with \"%s\"", logLevelName); } else { DBG_ERROR(AQPAYPAL_LOGDOMAIN, "Unknown loglevel \"%s\"", logLevelName); } } /* check whether we need to update */ currentVersion= (AQBANKING_VERSION_MAJOR<<24) | (AQBANKING_VERSION_MINOR<<16) | (AQBANKING_VERSION_PATCHLEVEL<<8) | AQBANKING_VERSION_BUILD; lastVersion=GWEN_DB_GetIntValue(dbData, "lastVersion", 0, 0); if (lastVersion<currentVersion) { int rv; DBG_WARN(AQPAYPAL_LOGDOMAIN, "Updating configuration for AqPaypal (before init)"); rv=APY_Provider_UpdatePreInit(pro, lastVersion, currentVersion); if (rv<0) { DBG_INFO(AQPAYPAL_LOGDOMAIN, "here (%d)", rv); return rv; } } /* do some init (currently: none needed) */ /* update post-init */ if (lastVersion<currentVersion) { int rv; DBG_WARN(AQPAYPAL_LOGDOMAIN, "Updating configuration for AqPaypal (after init)"); rv=APY_Provider_UpdatePostInit(pro, lastVersion, currentVersion); if (rv<0) { DBG_INFO(AQPAYPAL_LOGDOMAIN, "here (%d)", rv); return rv; } } if (1) { GWEN_STRINGLIST *sl; const char *localedir; int rv; sl=GWEN_PathManager_GetPaths(AB_PM_LIBNAME, AB_PM_LOCALEDIR); localedir=GWEN_StringList_FirstString(sl); rv=GWEN_I18N_BindTextDomain_Dir(PACKAGE, localedir); if (rv) { DBG_ERROR(AQPAYPAL_LOGDOMAIN, "Could not bind textdomain (%d)", rv); } else { rv=GWEN_I18N_BindTextDomain_Codeset(PACKAGE, "UTF-8"); if (rv) { DBG_ERROR(AQPAYPAL_LOGDOMAIN, "Could not set codeset (%d)", rv); } } GWEN_StringList_free(sl); } DBG_NOTICE(AQPAYPAL_LOGDOMAIN, "Initializing AqPaypal backend"); return 0; }
int checkArgs(ARGUMENTS *args, int argc, char **argv) { int i; i=1; while (i<argc) { if (strcmp(argv[i], "--logfile")==0) { i++; if (i>=argc) return RETURNVALUE_PARAM; args->logFile=argv[i]; } else if (strcmp(argv[i], "--logtype")==0) { i++; if (i>=argc) return RETURNVALUE_PARAM; args->logType=GWEN_Logger_Name2Logtype(argv[i]); if (args->logType==GWEN_LoggerType_Unknown) { fprintf(stderr, I18N("Unknown log type \"%s\"\n"), argv[i]); return RETURNVALUE_PARAM; } } else if (strcmp(argv[i], "--loglevel")==0) { i++; if (i>=argc) return RETURNVALUE_PARAM; args->logLevel=GWEN_Logger_Name2Level(argv[i]); if (args->logLevel==GWEN_LoggerLevel_Unknown) { fprintf(stderr, I18N("Unknown log level \"%s\"\n"), argv[i]); return RETURNVALUE_PARAM; } } else if (strcmp(argv[i], "-o")==0) { i++; if (i>=argc) return RETURNVALUE_PARAM; args->outputFile=argv[i]; } else if (strcmp(argv[i], "-d")==0) { i++; if (i>=argc) return RETURNVALUE_PARAM; args->domain=argv[i]; } else if (strcmp(argv[i], "--compact")==0) { args->compact=1; } else if (strcmp(argv[i], "-h")==0 || strcmp(argv[i], "--help")==0) { usage(argv[0]); return -2; } else if (strcmp(argv[i], "-V")==0 || strcmp(argv[i], "--version")==0) { fprintf(stdout, k_PRG_VERSION_INFO); return -2; } else if (strcmp(argv[i], "-v")==0) { args->verbous=1; } else { // otherwise add param if (argv[i][0]=='-') { fprintf(stderr, I18N("Unknown option \"%s\"\n"), argv[i]); return RETURNVALUE_PARAM; } else Arguments_AddParam(args, argv[i]); } i++; } /* while */ /* that's it */ return 0; }
int AB_Banking_PluginSystemInit(void) { if (ab_plugin_init_count==0) { const char *s; GWEN_PLUGIN_MANAGER *pm; int rv; rv=GWEN_Init(); if (rv) { DBG_ERROR_ERR(AQBANKING_LOGDOMAIN, rv); return rv; } if (!GWEN_Logger_IsOpen(AQBANKING_LOGDOMAIN)) { GWEN_Logger_Open(AQBANKING_LOGDOMAIN, "aqbanking", 0, GWEN_LoggerType_Console, GWEN_LoggerFacility_User); GWEN_Logger_SetLevel(AQBANKING_LOGDOMAIN, GWEN_LoggerLevel_Notice); } s=getenv("AQBANKING_LOGLEVEL"); if (s && *s) { GWEN_LOGGER_LEVEL ll; ll=GWEN_Logger_Name2Level(s); GWEN_Logger_SetLevel(AQBANKING_LOGDOMAIN, ll); } DBG_INFO(AQBANKING_LOGDOMAIN, "AqBanking v" AQBANKING_VERSION_FULL_STRING " (compiled at " COMPILE_DATETIME "): initialising"); /* define locale paths */ GWEN_PathManager_DefinePath(AB_PM_LIBNAME, AB_PM_LOCALEDIR); GWEN_PathManager_AddPathFromWinReg(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_LOCALEDIR, AB_BANKING_REGKEY_PATHS, AB_BANKING_REGKEY_LOCALEDIR); #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* add folder relative to EXE */ GWEN_PathManager_AddRelPath(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_LOCALEDIR, LOCALEDIR, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PathManager_AddPath(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_LOCALEDIR, LOCALEDIR); #endif if (1) { GWEN_STRINGLIST *sl=GWEN_PathManager_GetPaths(AB_PM_LIBNAME, AB_PM_LOCALEDIR); const char *localedir=GWEN_StringList_FirstString(sl); rv=GWEN_I18N_BindTextDomain_Dir(PACKAGE, localedir); if (rv) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not bind textdomain (%d)", rv); } else { rv=GWEN_I18N_BindTextDomain_Codeset(PACKAGE, "UTF-8"); if (rv) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not set codeset (%d)", rv); } } GWEN_StringList_free(sl); } /* define sysconf paths */ GWEN_PathManager_DefinePath(AB_PM_LIBNAME, AB_PM_SYSCONFDIR); GWEN_PathManager_AddPathFromWinReg(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_SYSCONFDIR, AB_BANKING_REGKEY_PATHS, AB_BANKING_REGKEY_SYSCONFDIR); #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* add folder relative to EXE */ GWEN_PathManager_AddRelPath(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_SYSCONFDIR, AQBANKING_SYSCONF_DIR, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PathManager_AddPath(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_SYSCONFDIR, AQBANKING_SYSCONF_DIR); #endif /* define data paths */ GWEN_PathManager_DefinePath(AB_PM_LIBNAME, AB_PM_DATADIR); GWEN_PathManager_AddPathFromWinReg(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_DATADIR, AB_BANKING_REGKEY_PATHS, AB_BANKING_REGKEY_DATADIR); #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* add folder relative to EXE */ GWEN_PathManager_AddRelPath(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_DATADIR, AQBANKING_DATA_DIR, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PathManager_AddPath(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_DATADIR, AQBANKING_DATA_DIR); #endif /* define wizard paths */ GWEN_PathManager_DefinePath(AB_PM_LIBNAME, AB_PM_WIZARDDIR); GWEN_PathManager_AddPathFromWinReg(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_WIZARDDIR, AB_BANKING_REGKEY_PATHS, AB_BANKING_REGKEY_WIZARDDIR); #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* add folder relative to EXE */ GWEN_PathManager_AddRelPath(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_WIZARDDIR, AQBANKING_PLUGINS DIRSEP AB_WIZARD_FOLDER, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PathManager_AddPath(AB_PM_LIBNAME, AB_PM_LIBNAME, AB_PM_WIZARDDIR, AQBANKING_PLUGINS DIRSEP AB_WIZARD_FOLDER); #endif /* create bankinfo plugin manager */ DBG_INFO(AQBANKING_LOGDOMAIN, "Registering bankinfo plugin manager"); pm=GWEN_PluginManager_new("bankinfo", AB_PM_LIBNAME); if (GWEN_PluginManager_Register(pm)) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not register bankinfo plugin manager"); return GWEN_ERROR_GENERIC; } GWEN_PluginManager_AddPathFromWinReg(pm, AB_PM_LIBNAME, AB_BANKING_REGKEY_PATHS, AB_BANKING_REGKEY_BANKINFODIR); #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* add folder relative to EXE */ GWEN_PluginManager_AddRelPath(pm, AB_PM_LIBNAME, AQBANKING_PLUGINS DIRSEP AB_BANKINFO_PLUGIN_FOLDER, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PluginManager_AddPath(pm, AB_PM_LIBNAME, AQBANKING_PLUGINS DIRSEP AB_BANKINFO_PLUGIN_FOLDER); #endif ab_pluginManagerBankInfo=pm; /* create provider plugin manager */ DBG_INFO(AQBANKING_LOGDOMAIN, "Registering provider plugin manager"); pm=GWEN_PluginManager_new("provider", AB_PM_LIBNAME); if (GWEN_PluginManager_Register(pm)) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not register provider plugin manager"); return GWEN_ERROR_GENERIC; } GWEN_PluginManager_AddPathFromWinReg(pm, AB_PM_LIBNAME, AB_BANKING_REGKEY_PATHS, AB_BANKING_REGKEY_PROVIDERDIR); #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* add folder relative to EXE */ GWEN_PluginManager_AddRelPath(pm, AB_PM_LIBNAME, AQBANKING_PLUGINS DIRSEP AB_PROVIDER_FOLDER, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PluginManager_AddPath(pm, AB_PM_LIBNAME, AQBANKING_PLUGINS DIRSEP AB_PROVIDER_FOLDER); #endif ab_pluginManagerProvider=pm; /* create imexporters plugin manager */ DBG_INFO(AQBANKING_LOGDOMAIN, "Registering imexporters plugin manager"); pm=GWEN_PluginManager_new("imexporter", AB_PM_LIBNAME); if (GWEN_PluginManager_Register(pm)) { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not register imexporters plugin manager"); return GWEN_ERROR_GENERIC; } GWEN_PluginManager_AddPathFromWinReg(pm, AB_PM_LIBNAME, AB_BANKING_REGKEY_PATHS, AB_BANKING_REGKEY_IMPORTERDIR); #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* add folder relative to EXE */ GWEN_PluginManager_AddRelPath(pm, AB_PM_LIBNAME, AQBANKING_PLUGINS DIRSEP AB_IMEXPORTER_FOLDER, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PluginManager_AddPath(pm, AB_PM_LIBNAME, AQBANKING_PLUGINS DIRSEP AB_IMEXPORTER_FOLDER); #endif ab_pluginManagerImExporter=pm; /* insert DBIO plugin folder */ pm=GWEN_PluginManager_FindPluginManager("dbio"); if (pm) { #if defined(OS_WIN32) || defined(ENABLE_LOCAL_INSTALL) /* insert folder relative to EXE */ GWEN_PluginManager_InsertRelPath(pm, AB_PM_LIBNAME, AQBANKING_PLUGINS DIRSEP AB_DBIO_FOLDER, GWEN_PathManager_RelModeExe); #else /* add absolute folder */ GWEN_PluginManager_InsertPath(pm, AB_PM_LIBNAME, AQBANKING_PLUGINS DIRSEP AB_DBIO_FOLDER); #endif } else { DBG_ERROR(AQBANKING_LOGDOMAIN, "Could not find DBIO plugin manager, maybe GWEN_Init() was not called?"); return GWEN_ERROR_GENERIC; } ab_imexporters=AB_ImExporter_List_new(); ab_bankInfoPlugins=AB_BankInfoPlugin_List_new(); } ab_plugin_init_count++; return 0; }
int main(int argc, char **argv) { int rv; GWEN_DB_NODE *db; const char *s; LC_CLIENT *cl; GWEN_LOGGER_LOGTYPE logType; GWEN_LOGGER_LEVEL logLevel; GWEN_GUI *gui; gui=GWEN_Gui_CGui_new(); GWEN_Gui_SetGui(gui); db=GWEN_DB_Group_new("arguments"); rv=GWEN_Args_Check(argc, argv, 1, GWEN_ARGS_MODE_ALLOW_FREEPARAM, prg_args, db); if (rv==GWEN_ARGS_RESULT_HELP) { GWEN_BUFFER *ubuf; ubuf=GWEN_Buffer_new(0, 256, 0, 1); if (GWEN_Args_Usage(prg_args, ubuf, GWEN_ArgsOutType_Txt)) { fprintf(stderr, "Could not generate usage string.\n"); GWEN_Buffer_free(ubuf); return RETURNVALUE_PARAM; } fprintf(stdout, I18N("General usage: %s COMMAND [OPTIONS]\n" "Allowed Commands:\n" " This tool accepts the following commands:\n" " loaded\n" " show the amount of money stored on the card\n" " maxload\n" " show the maximum amount to be stored on the card\n" " maxxfer\n" " show the maximum amount which can be transferred " "in one session.\n" "\n" "Allowed Options:\n"), argv[0]); fprintf(stdout, "%s\n", GWEN_Buffer_GetStart(ubuf)); GWEN_Buffer_free(ubuf); return 0; } if (rv<1) { fprintf(stderr, "ERROR: Error in argument list (%d)\n", rv); return RETURNVALUE_PARAM; } /* setup logging */ s=GWEN_DB_GetCharValue(db, "loglevel", 0, "warning"); logLevel=GWEN_Logger_Name2Level(s); if (logLevel==GWEN_LoggerLevel_Unknown) { fprintf(stderr, "ERROR: Unknown log level (%s)\n", s); return RETURNVALUE_PARAM; } s=GWEN_DB_GetCharValue(db, "logtype", 0, "console"); logType=GWEN_Logger_Name2Logtype(s); if (logType==GWEN_LoggerType_Unknown) { fprintf(stderr, "ERROR: Unknown log type (%s)\n", s); return RETURNVALUE_PARAM; } rv=GWEN_Logger_Open(LC_LOGDOMAIN, "geldkarte3", GWEN_DB_GetCharValue(db, "logfile", 0, "geldkarte3.log"), logType, GWEN_LoggerFacility_User); if (rv) { fprintf(stderr, "ERROR: Could not setup logging (%d).\n", rv); return RETURNVALUE_SETUP; } GWEN_Logger_SetLevel(LC_LOGDOMAIN, logLevel); /* get command */ s=GWEN_DB_GetCharValue(db, "params", 0, 0); if (!s) { fprintf(stderr, "No command given.\n"); GWEN_DB_Group_free(db); return RETURNVALUE_PARAM; } cl=LC_Client_new("geldkarte", PROGRAM_VERSION); if (LC_Client_Init(cl)) { fprintf(stderr, "ERROR: Could not init libchipcard3.\n"); LC_Client_free(cl); GWEN_DB_Group_free(db); return RETURNVALUE_SETUP; } /* handle command */ if (strcasecmp(s, "loaded")==0) { rv=loaded(cl, db); } else if (strcasecmp(s, "maxload")==0) { rv=maxload(cl, db); } else if (strcasecmp(s, "maxxfer")==0) { rv=maxxfer(cl, db); } else if (strcasecmp(s, "blogs")==0) { rv=b_logs(cl, db); } else { fprintf(stderr, "Unknown command \"%s\"", s); rv=RETURNVALUE_PARAM; } LC_Client_free(cl); GWEN_DB_Group_free(db); return 0; }