summaryrefslogtreecommitdiffstats
path: root/crypto/engine/eng_int.h
diff options
context:
space:
mode:
authorGeoff Thorpe <geoff@openssl.org>2001-11-22 09:13:18 +0000
committerGeoff Thorpe <geoff@openssl.org>2001-11-22 09:13:18 +0000
commite4a6cf421a57cd59ad6944151fea07af51e5e0ed (patch)
treebb69ebe5d3d9de833b672360731483d7fcc3f64c /crypto/engine/eng_int.h
parent329636d6e30c15f71bbf46d7f69a6ab6c3fb4726 (diff)
When the "dynamic" ENGINE loads another ENGINE from a shared-library, it
essentially overwrites itself with the new ENGINE, with the exception of reference counts, ex_data structures, and other 'admin' elements. However if the new ENGINE doesn't populate certain elements, there's the risk of the "dynamic" ENGINE's elements showing through - the "cmd_defns" were just one of the possibilities. This implements a more comprehensive cleanup.
Diffstat (limited to 'crypto/engine/eng_int.h')
-rw-r--r--crypto/engine/eng_int.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/crypto/engine/eng_int.h b/crypto/engine/eng_int.h
index 7a74498930..38335f99cd 100644
--- a/crypto/engine/eng_int.h
+++ b/crypto/engine/eng_int.h
@@ -129,6 +129,11 @@ int engine_unlocked_init(ENGINE *e);
int engine_unlocked_finish(ENGINE *e, int unlock_for_handlers);
int engine_free_util(ENGINE *e, int locked);
+/* This function will reset all "set"able values in an ENGINE to NULL. This
+ * won't touch reference counts or ex_data, but is equivalent to calling all the
+ * ENGINE_set_***() functions with a NULL value. */
+void engine_set_all_null(ENGINE *e);
+
/* NB: Bitwise OR-able values for the "flags" variable in ENGINE are now exposed
* in engine.h. */