Lines Matching refs:dso

63 #include <openssl/dso.h>
82 DSO_METHOD *DSO_get_method(DSO *dso)
84 return (dso->meth);
87 DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth)
90 mtmp = dso->meth;
91 dso->meth = meth;
132 int DSO_free(DSO *dso)
136 if (dso == NULL) {
141 i = CRYPTO_add(&dso->references, -1, CRYPTO_LOCK_DSO);
143 REF_PRINT("DSO", dso);
154 if ((dso->meth->dso_unload != NULL) && !dso->meth->dso_unload(dso)) {
159 if ((dso->meth->finish != NULL) && !dso->meth->finish(dso)) {
164 sk_void_free(dso->meth_data);
165 if (dso->filename != NULL)
166 OPENSSL_free(dso->filename);
167 if (dso->loaded_filename != NULL)
168 OPENSSL_free(dso->loaded_filename);
170 OPENSSL_free(dso);
174 int DSO_flags(DSO *dso)
176 return ((dso == NULL) ? 0 : dso->flags);
179 int DSO_up_ref(DSO *dso)
181 if (dso == NULL) {
186 CRYPTO_add(&dso->references, 1, CRYPTO_LOCK_DSO);
190 DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags)
195 if (dso == NULL) {
208 ret = dso;
215 * filename can only be NULL if we were passed a dso that already has one
244 void *DSO_bind_var(DSO *dso, const char *symname)
248 if ((dso == NULL) || (symname == NULL)) {
252 if (dso->meth->dso_bind_var == NULL) {
256 if ((ret = dso->meth->dso_bind_var(dso, symname)) == NULL) {
264 DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname)
268 if ((dso == NULL) || (symname == NULL)) {
272 if (dso->meth->dso_bind_func == NULL) {
276 if ((ret = dso->meth->dso_bind_func(dso, symname)) == NULL) {
293 long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg)
295 if (dso == NULL) {
305 return dso->flags;
307 dso->flags = (int)larg;
310 dso->flags |= (int)larg;
315 if ((dso->meth == NULL) || (dso->meth->dso_ctrl == NULL)) {
319 return (dso->meth->dso_ctrl(dso, cmd, larg, parg));
322 int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb,
325 if (dso == NULL) {
330 *oldcb = dso->name_converter;
331 dso->name_converter = cb;
335 const char *DSO_get_filename(DSO *dso)
337 if (dso == NULL) {
341 return (dso->filename);
344 int DSO_set_filename(DSO *dso, const char *filename)
348 if ((dso == NULL) || (filename == NULL)) {
352 if (dso->loaded_filename) {
363 if (dso->filename)
364 OPENSSL_free(dso->filename);
365 dso->filename = copied;
369 char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2)
373 if (dso == NULL || filespec1 == NULL) {
377 if ((dso->flags & DSO_FLAG_NO_NAME_TRANSLATION) == 0) {
378 if (dso->merger != NULL)
379 result = dso->merger(dso, filespec1, filespec2);
380 else if (dso->meth->dso_merger != NULL)
381 result = dso->meth->dso_merger(dso, filespec1, filespec2);
386 char *DSO_convert_filename(DSO *dso, const char *filename)
390 if (dso == NULL) {
395 filename = dso->filename;
400 if ((dso->flags & DSO_FLAG_NO_NAME_TRANSLATION) == 0) {
401 if (dso->name_converter != NULL)
402 result = dso->name_converter(dso, filename);
403 else if (dso->meth->dso_name_converter != NULL)
404 result = dso->meth->dso_name_converter(dso, filename);
417 const char *DSO_get_loaded_filename(DSO *dso)
419 if (dso == NULL) {
423 return (dso->loaded_filename);