diff options
author | Bodo Möller <bodo@openssl.org> | 2008-09-15 20:41:24 +0000 |
---|---|---|
committer | Bodo Möller <bodo@openssl.org> | 2008-09-15 20:41:24 +0000 |
commit | 1a489c9af1b0481ad9570968c5fecd56854580db (patch) | |
tree | 9bc5ca113210cd6152553714fde924c6fa40d84c /crypto | |
parent | 8c864e54662118bc5fbbfee972b4cb2d1cc090ee (diff) |
From branch OpenSSL_0_9_8-stable: Allow soft-loading engines.
Also, fix CHANGES (consistency with stable branch).
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/engine/eng_cnf.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/crypto/engine/eng_cnf.c b/crypto/engine/eng_cnf.c index a97e01e619..afd6b6f8c7 100644 --- a/crypto/engine/eng_cnf.c +++ b/crypto/engine/eng_cnf.c @@ -98,6 +98,8 @@ static int int_engine_configure(char *name, char *value, const CONF *cnf) CONF_VALUE *ecmd; char *ctrlname, *ctrlvalue; ENGINE *e = NULL; + int soft = 0; + name = skip_dot(name); #ifdef ENGINE_CONF_DEBUG fprintf(stderr, "Configuring engine %s\n", name); @@ -125,6 +127,8 @@ static int int_engine_configure(char *name, char *value, const CONF *cnf) /* Override engine name to use */ if (!strcmp(ctrlname, "engine_id")) name = ctrlvalue; + else if (!strcmp(ctrlname, "soft_load")) + soft = 1; /* Load a dynamic ENGINE */ else if (!strcmp(ctrlname, "dynamic_path")) { @@ -147,6 +151,11 @@ static int int_engine_configure(char *name, char *value, const CONF *cnf) if (!e) { e = ENGINE_by_id(name); + if (!e && soft) + { + ERR_clear_error(); + return 1; + } if (!e) return 0; } |