if (!strcmp(ctrlname, "default_algorithms"))
else if (!strcmp(ctrlname, "init")) { if (!NCONF_get_number_e(cnf, value, "init", &do_init)) goto err; if (do_init == 1) { if (!int_engine_init(e)) goto err; } else if (do_init != 0) { ENGINEerr(ENGINE_F_INT_ENGINE_CONFIGURE, ENGINE_R_INVALID_INIT_VALUE); goto err; } } else if (!strcmp(ctrlname, "default_algorithms"))
int int_engine_configure(char *name, char *value, const CONF *cnf)	{	int i;	int ret = 0;	STACK_OF(CONF_VALUE) *ecmds;	CONF_VALUE *ecmd;	char *ctrlname, *ctrlvalue;	ENGINE *e = NULL;	name = skip_dot(name);#ifdef ENGINE_CONF_DEBUG	fprintf(stderr, "Configuring engine %s\n", name);#endif	/* Value is a section containing ENGINE commands */	ecmds = NCONF_get_section(cnf, value);	if (!ecmds)		{		ENGINEerr(ENGINE_F_INT_ENGINE_CONFIGURE, ENGINE_R_ENGINE_SECTION_ERROR);		return 0;		}	for (i = 0; i < sk_CONF_VALUE_num(ecmds); i++)		{		ecmd = sk_CONF_VALUE_value(ecmds, i);		ctrlname = skip_dot(ecmd->name);		ctrlvalue = ecmd->value;#ifdef ENGINE_CONF_DEBUG	fprintf(stderr, "ENGINE conf: doing ctrl(%s,%s)\n", ctrlname, ctrlvalue);#endif		/* First handle some special pseudo ctrls */		/* Override engine name to use */		if (!strcmp(ctrlname, "engine_id"))			name = ctrlvalue;		/* Load a dynamic ENGINE */		else if (!strcmp(ctrlname, "dynamic_path"))			{			e = ENGINE_by_id("dynamic");			if (!e)				goto err;			if (!ENGINE_ctrl_cmd_string(e, "SO_PATH", ctrlvalue, 0))				goto err;			if (!ENGINE_ctrl_cmd_string(e, "LIST_ADD", "2", 0))				goto err;			if (!ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0))				goto err;			}		/* ... add other pseudos here ... */		else			{			/* At this point we need an ENGINE structural reference			 * if we don't already have one.			 */			if (!e)				{				e = ENGINE_by_id(name);				if (!e)					return 0;				}			/* Allow "EMPTY" to mean no value: this allows a valid			 * "value" to be passed to ctrls of type NO_INPUT		 	 */			if (!strcmp(ctrlvalue, "EMPTY"))				ctrlvalue = NULL;			if (!strcmp(ctrlname, "default_algorithms"))				{				if (!ENGINE_set_default_string(e, ctrlvalue))					goto err;				}			else if (!ENGINE_ctrl_cmd_string(e,					ctrlname, ctrlvalue, 0))				return 0;			}		}	ret = 1;	err:	if (e)		ENGINE_free(e);	return ret;	}