From 177d55dfcc373b3c466fba26b3930c7a3ec38cd1 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Fri, 6 Mar 2020 14:40:03 +0100 Subject: Introduce new API for cleanup Signed-off-by: Jakub Jelen Acked-by: Frediano Ziglio --- docs/libcacard.txt | 5 +++++ src/libcacard.map | 1 + src/vcard_emul.h | 1 + src/vcard_emul_nss.c | 14 ++++++++++++++ 4 files changed, 21 insertions(+) diff --git a/docs/libcacard.txt b/docs/libcacard.txt index efaad17..1da8790 100644 --- a/docs/libcacard.txt +++ b/docs/libcacard.txt @@ -495,6 +495,11 @@ functions: Set the state of 'card' to the current power level and reset its internal state (logout, etc). + VCardEmulError vcard_emul_finalize(void); + + This function should be called as a last one in the program, making sure all + resources allocated are released. + ------------------------------------------------------- List of files and their function: docs/libcacard.txt - This file diff --git a/src/libcacard.map b/src/libcacard.map index 10230f9..939f098 100644 --- a/src/libcacard.map +++ b/src/libcacard.map @@ -22,6 +22,7 @@ vcard_emul_type_from_string; vcard_emul_type_select; vcard_emul_usage; + vcard_emul_finalize; vcard_find_applet; vcard_free; vcard_get_atr; diff --git a/src/vcard_emul.h b/src/vcard_emul.h index 55bf720..8853f54 100644 --- a/src/vcard_emul.h +++ b/src/vcard_emul.h @@ -63,6 +63,7 @@ VCardEmulError vcard_emul_force_card_remove(VReader *vreader); VCardEmulOptions *vcard_emul_options(const char *args); VCardEmulError vcard_emul_init(const VCardEmulOptions *options); +VCardEmulError vcard_emul_finalize(void); void vcard_emul_replay_insertion_events(void); void vcard_emul_usage(void); diff --git a/src/vcard_emul_nss.c b/src/vcard_emul_nss.c index f5783c3..f2bc8cf 100644 --- a/src/vcard_emul_nss.c +++ b/src/vcard_emul_nss.c @@ -1167,6 +1167,20 @@ vcard_emul_replay_insertion_events(void) vreader_list_delete(list); } +VCardEmulError +vcard_emul_finalize(void) +{ + SECStatus rv; + + rv = NSS_Shutdown(); + if (rv != SECSuccess) { + g_debug("%s: NSS_Shutdown failed.", __func__); + return VCARD_EMUL_FAIL; + } + + return VCARD_EMUL_OK; +} + /* * Silly little functions to help parsing our argument string */ -- cgit v1.2.3