From 66267ea515ec4721d50650a9961f5eb69218dbe9 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Tue, 20 Jul 2010 10:59:21 +0200 Subject: [PATCH] Defer certificate loading until all PKCS#11 modules are loaded --- src/libstrongswan/plugins/pkcs11/pkcs11_manager.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libstrongswan/plugins/pkcs11/pkcs11_manager.c b/src/libstrongswan/plugins/pkcs11/pkcs11_manager.c index 58406008d..204a9545b 100644 --- a/src/libstrongswan/plugins/pkcs11/pkcs11_manager.c +++ b/src/libstrongswan/plugins/pkcs11/pkcs11_manager.c @@ -374,17 +374,22 @@ pkcs11_manager_t *pkcs11_manager_create(pkcs11_manager_token_event_t cb, free(entry); continue; } + this->libs->insert_last(this->libs, entry); + } + enumerator->destroy(enumerator); + + singleton = this; + enumerator = this->libs->create_enumerator(this->libs); + while (enumerator->enumerate(enumerator, &entry)) + { query_slots(entry); - this->libs->insert_last(this->libs, entry); entry->job = callback_job_create((void*)dispatch_slot_events, entry, (void*)end_dispatch, NULL); charon->processor->queue_job(charon->processor, (job_t*)entry->job); } enumerator->destroy(enumerator); - singleton = this; - return &this->public; } -- 2.47.3