Home | History | Annotate | Download | only in engine

Lines Matching refs:ctx

73 static int dynamic_load(ENGINE *e, dynamic_data_ctx *ctx);
169 dynamic_data_ctx *ctx = (dynamic_data_ctx *)ptr;
170 if(ctx->dynamic_dso)
171 DSO_free(ctx->dynamic_dso);
172 if(ctx->DYNAMIC_LIBNAME)
173 OPENSSL_free((void*)ctx->DYNAMIC_LIBNAME);
174 if(ctx->engine_id)
175 OPENSSL_free((void*)ctx->engine_id);
176 if(ctx->dirs)
177 sk_pop_free(ctx->dirs, int_free_str);
178 OPENSSL_free(ctx);
186 static int dynamic_set_data_ctx(ENGINE *e, dynamic_data_ctx **ctx)
214 if((*ctx = (dynamic_data_ctx *)ENGINE_get_ex_data(e,
219 *ctx = c;
223 /* If we lost the race to set the context, c is non-NULL and *ctx is the
234 dynamic_data_ctx *ctx;
260 ctx = (dynamic_data_ctx *)ENGINE_get_ex_data(e, dynamic_ex_data_idx);
262 if((ctx == NULL) && !dynamic_set_data_ctx(e, &ctx))
265 return ctx;
317 dynamic_data_ctx *ctx = dynamic_get_data_ctx(e);
320 if(!ctx)
325 initialised = ((ctx->dynamic_dso == NULL) ? 0 : 1);
339 if(ctx->DYNAMIC_LIBNAME)
340 OPENSSL_free((void*)ctx->DYNAMIC_LIBNAME);
342 ctx->DYNAMIC_LIBNAME = BUF_strdup(p);
344 ctx->DYNAMIC_LIBNAME = NULL;
345 return (ctx->DYNAMIC_LIBNAME ? 1 : 0);
347 ctx->no_vcheck = ((i == 0) ? 0 : 1);
353 if(ctx->engine_id)
354 OPENSSL_free((void*)ctx->engine_id);
356 ctx->engine_id = BUF_strdup(p);
358 ctx->engine_id = NULL;
359 return (ctx->engine_id ? 1 : 0);
367 ctx->list_add_value = (int)i;
370 return dynamic_load(e, ctx);
378 ctx->dir_load = (int)i;
396 sk_insert(ctx->dirs, tmp_str, -1);
406 static int int_load(dynamic_data_ctx *ctx)
410 if((ctx->dir_load != 2) && (DSO_load(ctx->dynamic_dso,
411 ctx->DYNAMIC_LIBNAME, NULL, 0)) != NULL)
414 if(!ctx->dir_load || ((num = sk_num(ctx->dirs)) < 1))
418 const char *s = sk_value(ctx->dirs, loop);
419 char *merge = DSO_merge(ctx->dynamic_dso, ctx->DYNAMIC_LIBNAME, s);
422 if(DSO_load(ctx->dynamic_dso, merge, NULL, 0))
433 static int dynamic_load(ENGINE *e, dynamic_data_ctx *ctx)
438 if(!ctx->dynamic_dso)
439 ctx->dynamic_dso = DSO_new();
440 if(!ctx->DYNAMIC_LIBNAME)
442 if(!ctx->engine_id)
444 ctx->DYNAMIC_LIBNAME =
445 DSO_convert_filename(ctx->dynamic_dso, ctx->engine_id);
447 if(!int_load(ctx))
451 DSO_free(ctx->dynamic_dso);
452 ctx->dynamic_dso = NULL;
456 if(!(ctx->bind_engine = (dynamic_bind_engine)DSO_bind_func(
457 ctx->dynamic_dso, ctx->DYNAMIC_F2)))
459 ctx->bind_engine = NULL;
460 DSO_free(ctx->dynamic_dso);
461 ctx->dynamic_dso = NULL;
467 if(!ctx->no_vcheck)
472 ctx->v_check = (dynamic_v_check_fn)DSO_bind_func(
473 ctx->dynamic_dso, ctx->DYNAMIC_F1);
474 if(ctx->v_check)
475 vcheck_res = ctx->v_check(OSSL_DYNAMIC_VERSION);
482 ctx->bind_engine = NULL;
483 ctx->v_check = NULL;
484 DSO_free(ctx->dynamic_dso);
485 ctx->dynamic_dso = NULL;
515 if(!ctx->bind_engine(e, ctx->engine_id, &fns))
517 ctx->bind_engine = NULL;
518 ctx->v_check = NULL;
519 DSO_free(ctx->dynamic_dso);
520 ctx->dynamic_dso = NULL;
527 if(ctx->list_add_value > 0)
532 if(ctx->list_add_value > 1)