Error RawAddModule(char *dbmodulespec, char *modulespec) { SECMODModule *module; SECMODModule *dbmodule; dbmodule = SECMOD_LoadModule(dbmodulespec,NULL,PR_TRUE); if (dbmodule == NULL) { /* handle error */ return NO_SUCH_MODULE_ERR; } module = SECMOD_LoadModule(modulespec,dbmodule,PR_FALSE); if (module == NULL) { /* handle error */ return NO_SUCH_MODULE_ERR; } if( SECMOD_UpdateModule(module) != SECSuccess ) { PR_fprintf(PR_STDERR, errStrings[UPDATE_MOD_FAILED_ERR], modulespec); return UPDATE_MOD_FAILED_ERR; } return SUCCESS; }
/************************************************************************ * * R a w L i s t M o d u l e s * * Lists all the modules in the database, along with their slots and tokens. */ Error RawListModule(char *modulespec) { SECMODModule *module; char **moduleSpecList; module = SECMOD_LoadModule(modulespec, NULL, PR_FALSE); if (module == NULL) { /* handle error */ return NO_SUCH_MODULE_ERR; } moduleSpecList = SECMOD_GetModuleSpecList(module); if (!moduleSpecList || !moduleSpecList[0]) { SECU_PrintError("modutil", "no specs in secmod DB"); return NO_SUCH_MODULE_ERR; } for (; *moduleSpecList; moduleSpecList++) { printf("%s\n\n", *moduleSpecList); } return SUCCESS; }