You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2003/05/30 23:01:57 UTC
cvs commit: httpd-2.0/modules/ssl ssl_engine_config.c
wrowe 2003/05/30 14:01:57
Modified: modules/ssl ssl_engine_config.c
Log:
Provide a far more useful explanation when SSLCryptoDevice fails to
find a device. Still would be nice to implement dynamic:{options}
but this gets us to display the usual, builtin devices.
We now load builtin engines up front, in the pre_config phase, because
this and any other config cmd processor must have an already valid
library config. So loading builtin engines becomes redundant in this
cmd handler.
Revision Changes Path
1.80 +12 -10 httpd-2.0/modules/ssl/ssl_engine_config.c
Index: ssl_engine_config.c
===================================================================
RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_engine_config.c,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -r1.79 -r1.80
--- ssl_engine_config.c 30 May 2003 18:41:53 -0000 1.79
+++ ssl_engine_config.c 30 May 2003 21:01:57 -0000 1.80
@@ -518,16 +518,7 @@
SSLModConfigRec *mc = myModConfig(cmd->server);
const char *err;
ENGINE *e;
-#ifdef HAVE_ENGINE_LOAD_BUILTIN_ENGINES
- static int loaded_engines = FALSE;
- /* early loading to make sure the engines are already
- available for ENGINE_by_id() above... */
- if (!loaded_engines) {
- ENGINE_load_builtin_engines();
- loaded_engines = TRUE;
- }
-#endif
if ((err = ap_check_cmd_context(cmd, GLOBAL_ONLY))) {
return err;
}
@@ -540,7 +531,18 @@
ENGINE_free(e);
}
else {
- return "SSLCryptoDevice: Invalid argument";
+ err = "SSLCryptoDevice: Invalid argument; must be one of: "
+ "'builtin' (none)";
+ e = ENGINE_get_first();
+ while (e) {
+ ENGINE *en;
+ err = apr_pstrcat(cmd->pool, err, ", '", ENGINE_get_id(e),
+ "' (", ENGINE_get_name(e), ")", NULL);
+ en = ENGINE_get_next(e);
+ ENGINE_free(e);
+ e = en;
+ }
+ return err;
}
return NULL;