From: Martin Willi Date: Tue, 20 Jul 2010 08:59:21 +0000 (+0200) Subject: Defer certificate loading until all PKCS#11 modules are loaded X-Git-Tag: 4.5.0~586 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=66267ea515ec4721d50650a9961f5eb69218dbe9;p=thirdparty%2Fstrongswan.git Defer certificate loading until all PKCS#11 modules are loaded --- diff --git a/src/libstrongswan/plugins/pkcs11/pkcs11_manager.c b/src/libstrongswan/plugins/pkcs11/pkcs11_manager.c index 58406008d6..204a9545b4 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; }