Cut "ENGINE_ID" to the more concise "ID".
[openssl.git] / crypto / engine / eng_dyn.c
index 8fd70786783fcb754433f229d2babb3a1f109b54..4fefcc0caee2fe286279d1ca078fff43309b5591 100644 (file)
@@ -78,7 +78,7 @@ static int dynamic_load(ENGINE *e, dynamic_data_ctx *ctx);
 
 #define DYNAMIC_CMD_SO_PATH            ENGINE_CMD_BASE
 #define DYNAMIC_CMD_NO_VCHECK          (ENGINE_CMD_BASE + 1)
-#define DYNAMIC_CMD_ENGINE_ID          (ENGINE_CMD_BASE + 2)
+#define DYNAMIC_CMD_ID                 (ENGINE_CMD_BASE + 2)
 #define DYNAMIC_CMD_LIST_ADD           (ENGINE_CMD_BASE + 3)
 #define DYNAMIC_CMD_LOAD               (ENGINE_CMD_BASE + 4)
 
@@ -94,8 +94,8 @@ static const ENGINE_CMD_DEFN dynamic_cmd_defns[] = {
                "NO_VCHECK",
                "Specifies to continue even if version checking fails (boolean)",
                ENGINE_CMD_FLAG_NUMERIC},
-       {DYNAMIC_CMD_ENGINE_ID,
-               "ENGINE_ID",
+       {DYNAMIC_CMD_ID,
+               "ID",
                "Specifies an ENGINE id name for loading",
                ENGINE_CMD_FLAG_STRING},
        {DYNAMIC_CMD_LIST_ADD,
@@ -108,6 +108,9 @@ static const ENGINE_CMD_DEFN dynamic_cmd_defns[] = {
                ENGINE_CMD_FLAG_NO_INPUT},
        {0, NULL, NULL, 0}
        };
+static const ENGINE_CMD_DEFN dynamic_cmd_defns_empty[] = {
+       {0, NULL, NULL, 0}
+       };
 
 /* Loading code stores state inside the ENGINE structure via the "ex_data"
  * element. We load all our state into a single structure and use that as a
@@ -312,7 +315,7 @@ static int dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)())
        case DYNAMIC_CMD_NO_VCHECK:
                ctx->no_vcheck = ((i == 0) ? 0 : 1);
                return 1;
-       case DYNAMIC_CMD_ENGINE_ID:
+       case DYNAMIC_CMD_ID:
                /* a NULL 'p' or a string of zero-length is the same thing */
                if(p && (strlen((const char *)p) < 1))
                        p = NULL;
@@ -402,6 +405,10 @@ static int dynamic_load(ENGINE *e, dynamic_data_ctx *ctx)
        fns.lock_fns.dynlock_create_cb = CRYPTO_get_dynlock_create_callback();
        fns.lock_fns.dynlock_lock_cb = CRYPTO_get_dynlock_lock_callback();
        fns.lock_fns.dynlock_destroy_cb = CRYPTO_get_dynlock_destroy_callback();
+       /* Now that we've loaded the dynamic engine, make sure no "dynamic"
+        * ENGINE elements will show through. */
+       engine_set_all_null(e);
+
        /* Try to bind the ENGINE onto our own ENGINE structure */
        if(!ctx->bind_engine(e, ctx->engine_id, &fns))
                {