rv = PK11_LoadPKCS11Module(*index,module);
rv = PK11_LoadPKCS11Module(*index,module,PR_TRUE);
PK11_LoadPKCS11Module(char *modulespec,SECMODModule *parent){    char *library = NULL, *moduleName = NULL, *parameters = NULL, *nss= NULL;    SECStatus status;    SECMODModule *module = NULL;    SECStatus rv;    /* initialize the underlying module structures */    SECMOD_Init();    status = pk11_argParseModuleSpec(modulespec, &library, &moduleName, 							&parameters, &nss);    if (status != SECSuccess) {	goto loser;    }    module = pk11_CreateModule(library, moduleName, parameters, nss);    if (library) PORT_Free(library);    if (moduleName) PORT_Free(moduleName);    if (parameters) PORT_Free(parameters);    if (nss) PORT_Free(nss);    /* load it */    rv = SECMOD_LoadModule(module);    if (rv != SECSuccess) {	goto loser;    }    if (module->isModuleDB) {	char ** moduleSpecList;	char **index;	moduleSpecList = pk11_getModuleSpecList(module);	for (index = moduleSpecList; index && *index; index++) {	    rv = PK11_LoadPKCS11Module(*index,module);	    if (rv != SECSuccess) break;	}	pk11_freeModuleSpecList(moduleSpecList);    }    if (rv != SECSuccess) {	goto loser;    }    if (parent) {    	module->parent = SECMOD_ReferenceModule(parent);    }    if (!module->moduleDBOnly) {	SECMOD_AddModuleToList(module);    } else {	SECMOD_AddModuleToDBOnlyList(module);    }   #ifdef notdef    printf("-------------------------------------------------\n");    printf("Module Name: %s\n",module->commonName);    printf("Library Name: %s\n", module->dllName);    printf("Module Parameters: %s\n", module->moduleParams);    printf("Module type: %s\n",module->internal?"internal":"external");    printf("FIPS module: %s\n", module->isFIPS ?"on": "off");    printf("Trust Order: %d\n", module->trustOrder);    printf("Cipher Order: %d\n", module->cipherOrder);    printf("New Ciphers: 0x%08x,0x%08x\n",module->ssl[0], module->ssl[1]);    printf("Can Load PKCS #11 module: %s\n", module->isModuleDB ? "True" : "False");    if (module->slotInfoCount) {	int i;	printf("Slot Infos: %d\n", module->slotInfoCount);	for (i=0; i < module->slotInfoCount; i++) {	    printf("	++++++++++++++++++++++++++++++++++++++++++++\n");	    printf("	Slot ID=0x%08x\n",module->slotInfo[i].slotID);	    printf("	Slot Flags = 0x%08x\n",module->slotInfo[i].defaultFlags);	    printf("	Slot PWarg = %d\n",module->slotInfo[i].askpw);	    printf("	Slot timeout = %d\n",module->slotInfo[i].timeout);	}    }#endif    /* handle any additional work here */    return SECSuccess;loser:    if (module) {	PRBool critical = module->isCritical || (parent == NULL);	SECMOD_DestroyModule(module);	return critical ? SECFailure: SECSuccess;    }    return SECFailure;}