]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Use virFileFindResource to locate lock manager plugins
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 24 Apr 2014 15:45:49 +0000 (16:45 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 25 Apr 2014 10:59:46 +0000 (11:59 +0100)
Replace virLockManagerSetPluginDir with virFileFindResource
usage.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
daemon/libvirtd.c
src/libvirt_private.syms
src/locking/lock_manager.c
src/locking/lock_manager.h

index b4e9c1ff7658fb737bbde7c6b6eec9373460dc82..c5915bd30803bea51f151f89da247ee6d47484ef 100644 (file)
@@ -1179,7 +1179,6 @@ int main(int argc, char **argv) {
                     argv[0], driverdir);
             exit(EXIT_FAILURE);
         }
-        virLockManagerSetPluginDir(driverdir);
 #ifdef WITH_DRIVER_MODULES
         virDriverModuleInitialize(driverdir);
 #endif
index ac7707dd79207b63e1d3abb10430b5867277bef6..c8a2682d8ccbd75a75e1352ac238c43128c38c4b 100644 (file)
@@ -840,7 +840,6 @@ virLockManagerPluginRef;
 virLockManagerPluginUnref;
 virLockManagerPluginUsesState;
 virLockManagerRelease;
-virLockManagerSetPluginDir;
 
 
 # nodeinfo.h
index 509373977609a5f18f56c1a5a28f6a62f0c79dbc..ec90d0417649e671ce6bd25cc3e45193375a17d3 100644 (file)
@@ -24,6 +24,7 @@
 #include "lock_manager.h"
 #include "lock_driver_nop.h"
 #include "virerror.h"
+#include "virfile.h"
 #include "virlog.h"
 #include "viralloc.h"
 #include "viruuid.h"
@@ -64,18 +65,6 @@ struct _virLockManagerPlugin {
     int refs;
 };
 
-#define DEFAULT_LOCK_MANAGER_PLUGIN_DIR LIBDIR "/libvirt/lock-driver"
-
-static const char *virLockManagerPluginDir = DEFAULT_LOCK_MANAGER_PLUGIN_DIR;
-
-void
-virLockManagerSetPluginDir(const char *dir)
-{
-    if (dir)
-        virLockManagerPluginDir = dir;
-}
-
-
 static void virLockManagerLogParams(size_t nparams,
                                     virLockManagerParamPtr params)
 {
@@ -137,7 +126,6 @@ virLockManagerPluginPtr virLockManagerPluginNew(const char *name,
     void *handle = NULL;
     virLockDriverPtr driver;
     virLockManagerPluginPtr plugin = NULL;
-    const char *moddir = virGetEnvBlockSUID("LIBVIRT_LOCK_MANAGER_PLUGIN_DIR");
     char *modfile = NULL;
     char *configFile = NULL;
 
@@ -151,14 +139,16 @@ virLockManagerPluginPtr virLockManagerPluginNew(const char *name,
     if (STREQ(name, "nop")) {
         driver = &virLockDriverNop;
     } else {
-        if (moddir == NULL)
-            moddir = virLockManagerPluginDir;
-
-        VIR_DEBUG("Module load %s from %s", name, moddir);
-
-        if (virAsprintf(&modfile, "%s/%s.so", moddir, name) < 0)
+        if (!(modfile = virFileFindResourceFull(name,
+                                                NULL,
+                                                ".so",
+                                                "src/.libs",
+                                                LIBDIR "/libvirt/lock-driver",
+                                                "LIBVIRT_LOCK_MANAGER_PLUGIN_DIR")))
             goto cleanup;
 
+        VIR_DEBUG("Module load %s from %s", name, modfile);
+
         if (access(modfile, R_OK) < 0) {
             virReportSystemError(errno,
                                  _("Plugin %s not accessible"),
index fea9db8d4e681f20b4f50320484fa184d296ba2d..418975976c477b34a191442a797e5428b7ae2afc 100644 (file)
@@ -28,7 +28,6 @@
 typedef struct _virLockManagerPlugin virLockManagerPlugin;
 typedef virLockManagerPlugin *virLockManagerPluginPtr;
 
-void virLockManagerSetPluginDir(const char *dir);
 virLockManagerPluginPtr virLockManagerPluginNew(const char *name,
                                                 const char *driverName,
                                                 const char *configDir,