#include <dlfcn.h>
#endif
-DLLManager::DLLManager(InspIRCd*, const char *fname)
+DLLManager::DLLManager(const char *fname)
{
err = NULL;
return;
}
- h = dlopen(fname, RTLD_NOW|RTLD_LOCAL);
+ h = dlopen(fname, RTLD_NOW|RTLD_LOCAL|RTLD_NODELETE);
if (!h)
{
- err = (char*)dlerror();
+ err = dlerror();
return;
}
}
{
dlerror(); // clear value
*v = dlsym(h, sym_name);
- err = (char*)dlerror();
+ err = dlerror();
if (!*v || err)
return false;
}