diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libstrongswan/plugins/pkcs11/pkcs11_manager.c | 11 |
1 files 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; } |