Call the right shutdown function in the module.

This commit is contained in:
Andreas Schneider 2008-04-18 19:14:22 +02:00
Родитель 4644c39f5a
Коммит aa9d97c953
1 изменённых файлов: 11 добавлений и 6 удалений

Просмотреть файл

@ -39,26 +39,31 @@ int csync_vio_init(CSYNC *ctx, const char *module, const char *args) {
csync_vio_method_t *m;
csync_vio_method_init_fn init_fn;
#if DEVELOPER
if (asprintf(&path, "%s/csync_%s.so", SYSCONFDIR "/modules", module) < 0) {
#else
if (asprintf(&path, "%s/csync_%s.so", PLUGINDIR, module) < 0) {
#endif
return -1;
}
if ((err = dlerror()) == NULL) {
printf("path: %s\n", path);
ctx->module.handle = dlopen(path, RTLD_LAZY);
if ((err = dlerror()) != NULL) {
CSYNC_LOG(CSYNC_LOG_PRIORITY_ERROR, "loading %s plugin failed - %s",
module, err);
}
ctx->module.handle = dlopen(path, RTLD_LAZY);
SAFE_FREE(path);
init_fn = dlsym(ctx->module.handle, "vio_module_init");
if ((err = dlerror()) == NULL) {
if ((err = dlerror()) != NULL) {
CSYNC_LOG(CSYNC_LOG_PRIORITY_ERROR, "loading function failed - %s", err);
return -1;
}
ctx->module.finish_fn = dlsym(ctx->module.handle, "vio_module_finish");
if ((err = dlerror()) == NULL) {
ctx->module.finish_fn = dlsym(ctx->module.handle, "vio_module_shutdown");
if ((err = dlerror()) != NULL) {
CSYNC_LOG(CSYNC_LOG_PRIORITY_ERROR, "loading function failed - %s", err);
return -1;
}