OLD | NEW |
1 /* This Source Code Form is subject to the terms of the Mozilla Public | 1 /* This Source Code Form is subject to the terms of the Mozilla Public |
2 * License, v. 2.0. If a copy of the MPL was not distributed with this | 2 * License, v. 2.0. If a copy of the MPL was not distributed with this |
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
4 /* | 4 /* |
5 * Initialize the PCKS 11 subsystem | 5 * Initialize the PCKS 11 subsystem |
6 */ | 6 */ |
7 #include "seccomon.h" | 7 #include "seccomon.h" |
8 #include "secmod.h" | 8 #include "secmod.h" |
9 #include "nssilock.h" | 9 #include "nssilock.h" |
10 #include "secmodi.h" | 10 #include "secmodi.h" |
(...skipping 1477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1488 char *sendSpec; | 1488 char *sendSpec; |
1489 | 1489 |
1490 sendSpec = PR_smprintf("tokens=[0x%x=<>]", slot->slotID); | 1490 sendSpec = PR_smprintf("tokens=[0x%x=<>]", slot->slotID); |
1491 if (sendSpec == NULL) { | 1491 if (sendSpec == NULL) { |
1492 /* PR_smprintf does not set no memory error */ | 1492 /* PR_smprintf does not set no memory error */ |
1493 PORT_SetError(SEC_ERROR_NO_MEMORY); | 1493 PORT_SetError(SEC_ERROR_NO_MEMORY); |
1494 return SECFailure; | 1494 return SECFailure; |
1495 } | 1495 } |
1496 rv = secmod_UserDBOp(slot, CKO_NETSCAPE_DELSLOT, sendSpec); | 1496 rv = secmod_UserDBOp(slot, CKO_NETSCAPE_DELSLOT, sendSpec); |
1497 PR_smprintf_free(sendSpec); | 1497 PR_smprintf_free(sendSpec); |
| 1498 /* if we are in the delay period for the "isPresent" call, reset |
| 1499 * the delay since we know things have probably changed... */ |
| 1500 if (slot->nssToken && slot->nssToken->slot) { |
| 1501 nssSlot_ResetDelay(slot->nssToken->slot); |
| 1502 /* force the slot info structures to properly reset */ |
| 1503 (void)PK11_IsPresent(slot); |
| 1504 } |
1498 return rv; | 1505 return rv; |
1499 } | 1506 } |
1500 | 1507 |
1501 /* | 1508 /* |
1502 * Restart PKCS #11 modules after a fork(). See secmod.h for more information. | 1509 * Restart PKCS #11 modules after a fork(). See secmod.h for more information. |
1503 */ | 1510 */ |
1504 SECStatus | 1511 SECStatus |
1505 SECMOD_RestartModules(PRBool force) | 1512 SECMOD_RestartModules(PRBool force) |
1506 { | 1513 { |
1507 SECMODModuleList *mlp; | 1514 SECMODModuleList *mlp; |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1569 * on multiple failures, we are only returning the lastError. The caller | 1576 * on multiple failures, we are only returning the lastError. The caller |
1570 * can determine which slots are bad by calling PK11_IsDisabled(). | 1577 * can determine which slots are bad by calling PK11_IsDisabled(). |
1571 */ | 1578 */ |
1572 if (rrv != SECSuccess) { | 1579 if (rrv != SECSuccess) { |
1573 /* restore the last error code */ | 1580 /* restore the last error code */ |
1574 PORT_SetError(lastError); | 1581 PORT_SetError(lastError); |
1575 } | 1582 } |
1576 | 1583 |
1577 return rrv; | 1584 return rrv; |
1578 } | 1585 } |
OLD | NEW |