diff options
| author | djm <> | 2009-01-05 21:36:39 +0000 |
|---|---|---|
| committer | djm <> | 2009-01-05 21:36:39 +0000 |
| commit | 3be551b5922b665fd4e18cd65b857b9f92a0b6c8 (patch) | |
| tree | e0d2d687fbd4e4e9eb6bc4b178ea069817f0aba4 /src/lib/libcrypto/engine/eng_cnf.c | |
| parent | 822633f8798a6b4646a8b092e7c67f511cdbdba2 (diff) | |
| download | openbsd-3be551b5922b665fd4e18cd65b857b9f92a0b6c8.tar.gz openbsd-3be551b5922b665fd4e18cd65b857b9f92a0b6c8.tar.bz2 openbsd-3be551b5922b665fd4e18cd65b857b9f92a0b6c8.zip | |
update to openssl-0.9.8i; tested by several, especially krw@
Diffstat (limited to 'src/lib/libcrypto/engine/eng_cnf.c')
| -rw-r--r-- | src/lib/libcrypto/engine/eng_cnf.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/libcrypto/engine/eng_cnf.c b/src/lib/libcrypto/engine/eng_cnf.c index a97e01e619..8417ddaaef 100644 --- a/src/lib/libcrypto/engine/eng_cnf.c +++ b/src/lib/libcrypto/engine/eng_cnf.c | |||
| @@ -98,6 +98,8 @@ static int int_engine_configure(char *name, char *value, const CONF *cnf) | |||
| 98 | CONF_VALUE *ecmd; | 98 | CONF_VALUE *ecmd; |
| 99 | char *ctrlname, *ctrlvalue; | 99 | char *ctrlname, *ctrlvalue; |
| 100 | ENGINE *e = NULL; | 100 | ENGINE *e = NULL; |
| 101 | int soft = 0; | ||
| 102 | |||
| 101 | name = skip_dot(name); | 103 | name = skip_dot(name); |
| 102 | #ifdef ENGINE_CONF_DEBUG | 104 | #ifdef ENGINE_CONF_DEBUG |
| 103 | fprintf(stderr, "Configuring engine %s\n", name); | 105 | fprintf(stderr, "Configuring engine %s\n", name); |
| @@ -125,6 +127,8 @@ static int int_engine_configure(char *name, char *value, const CONF *cnf) | |||
| 125 | /* Override engine name to use */ | 127 | /* Override engine name to use */ |
| 126 | if (!strcmp(ctrlname, "engine_id")) | 128 | if (!strcmp(ctrlname, "engine_id")) |
| 127 | name = ctrlvalue; | 129 | name = ctrlvalue; |
| 130 | else if (!strcmp(ctrlname, "soft_load")) | ||
| 131 | soft = 1; | ||
| 128 | /* Load a dynamic ENGINE */ | 132 | /* Load a dynamic ENGINE */ |
| 129 | else if (!strcmp(ctrlname, "dynamic_path")) | 133 | else if (!strcmp(ctrlname, "dynamic_path")) |
| 130 | { | 134 | { |
| @@ -147,6 +151,11 @@ static int int_engine_configure(char *name, char *value, const CONF *cnf) | |||
| 147 | if (!e) | 151 | if (!e) |
| 148 | { | 152 | { |
| 149 | e = ENGINE_by_id(name); | 153 | e = ENGINE_by_id(name); |
| 154 | if (!e && soft) | ||
| 155 | { | ||
| 156 | ERR_clear_error(); | ||
| 157 | return 1; | ||
| 158 | } | ||
| 150 | if (!e) | 159 | if (!e) |
| 151 | return 0; | 160 | return 0; |
| 152 | } | 161 | } |
