int module_unload(const char *name) { void *mod = module_find_by_name(name); if (mod == NULL) return 1; module_func unload; unload = dlsym(mod, "unload"); if (dlerror()) { logfmt(LOG_ERROR, "Cannot call 'unload' for %s - error: %s", name, dlerror()); return 1; } module_unregister(mod); int result = unload(); return result; }
int cm3ice_close(cm3ice_ctrl_t * ctrl) { if (!(ctrl->flags & CM3ICE_OPENED)) { DCC_LOG(LOG_WARNING, "not open!"); return ICE_ERROR; } DCC_LOG(LOG_TRACE, "[CLOSE]"); module_unregister(ctrl->mod_id); ctrl->mod_id = -1; ctrl->flags = 0; return ICE_OK; }