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