Lines Matching refs:dso
52 int DSO_free(DSO *dso)
56 if (dso == NULL)
59 if (CRYPTO_DOWN_REF(&dso->references, &i, dso->lock) <= 0)
62 REF_PRINT_COUNT("DSO", dso);
67 if ((dso->flags & DSO_FLAG_NO_UNLOAD_ON_FREE) == 0) {
68 if ((dso->meth->dso_unload != NULL) && !dso->meth->dso_unload(dso)) {
74 if ((dso->meth->finish != NULL) && !dso->meth->finish(dso)) {
79 sk_void_free(dso->meth_data);
80 OPENSSL_free(dso->filename);
81 OPENSSL_free(dso->loaded_filename);
82 CRYPTO_THREAD_lock_free(dso->lock);
83 OPENSSL_free(dso);
87 int DSO_flags(DSO *dso)
89 return ((dso == NULL) ? 0 : dso->flags);
92 int DSO_up_ref(DSO *dso)
96 if (dso == NULL) {
101 if (CRYPTO_UP_REF(&dso->references, &i, dso->lock) <= 0)
104 REF_PRINT_COUNT("DSO", dso);
109 DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags)
114 if (dso == NULL) {
127 ret = dso;
134 * filename can only be NULL if we were passed a dso that already has one
163 DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname)
167 if ((dso == NULL) || (symname == NULL)) {
171 if (dso->meth->dso_bind_func == NULL) {
175 if ((ret = dso->meth->dso_bind_func(dso, symname)) == NULL) {
192 long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg)
194 if (dso == NULL) {
204 return dso->flags;
206 dso->flags = (int)larg;
209 dso->flags |= (int)larg;
214 if ((dso->meth == NULL) || (dso->meth->dso_ctrl == NULL)) {
218 return dso->meth->dso_ctrl(dso, cmd, larg, parg);
221 const char *DSO_get_filename(DSO *dso)
223 if (dso == NULL) {
227 return dso->filename;
230 int DSO_set_filename(DSO *dso, const char *filename)
234 if ((dso == NULL) || (filename == NULL)) {
238 if (dso->loaded_filename) {
248 OPENSSL_free(dso->filename);
249 dso->filename = copied;
253 char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2)
257 if (dso == NULL || filespec1 == NULL) {
261 if ((dso->flags & DSO_FLAG_NO_NAME_TRANSLATION) == 0) {
262 if (dso->merger != NULL)
263 result = dso->merger(dso, filespec1, filespec2);
264 else if (dso->meth->dso_merger != NULL)
265 result = dso->meth->dso_merger(dso, filespec1, filespec2);
270 char *DSO_convert_filename(DSO *dso, const char *filename)
274 if (dso == NULL) {
279 filename = dso->filename;
284 if ((dso->flags & DSO_FLAG_NO_NAME_TRANSLATION) == 0) {
285 if (dso->name_converter != NULL)
286 result = dso->name_converter(dso, filename);
287 else if (dso->meth->dso_name_converter != NULL)
288 result = dso->meth->dso_name_converter(dso, filename);