]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Use virFileFindResource to locate virtlockd daemon
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 25 Apr 2014 10:55:32 +0000 (11:55 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Mon, 28 Apr 2014 12:30:41 +0000 (13:30 +0100)
Make the lock plugin use virFileFindResource to find the
virtlockd daemon path, so that it executes the in-builddir
daemon if run from source tree.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
run.in
src/locking/lock_driver_lockd.c

diff --git a/run.in b/run.in
index 4371076ea9327c3664879a6f104fff4d60b91c25..1a379ddf37b5534622472c8262bf5aa1d20cd44d 100644 (file)
--- a/run.in
+++ b/run.in
@@ -55,7 +55,7 @@ export LD_LIBRARY_PATH
 
 export LIBVIRT_DRIVER_DIR="$b/src/.libs"
 export LIBVIRT_LOCK_MANAGER_PLUGIN_DIR="$b/src/.libs"
-export VIRTLOCKD_PATH="$b/src/virtlockd"
+export VIRTLOCKD_PATH="$b/src"
 export LIBVIRTD_PATH="$b/daemon"
 
 # This is a cheap way to find some use-after-free and uninitialized
index afa3bac5b0744ee2cada229f4ffc6efe6640c0a6..c67bda65bcb0a98bb7636fac4bd5285c5fa41bd2 100644 (file)
@@ -81,22 +81,6 @@ struct _virLockManagerLockDaemonDriver {
 
 static virLockManagerLockDaemonDriverPtr driver = NULL;
 
-#define VIRTLOCKD_PATH SBINDIR "/virtlockd"
-
-static const char *
-virLockManagerLockDaemonFindDaemon(void)
-{
-    const char *customDaemon = virGetEnvBlockSUID("VIRTLOCKD_PATH");
-
-    if (customDaemon)
-        return customDaemon;
-
-    if (virFileIsExecutable(VIRTLOCKD_PATH))
-        return VIRTLOCKD_PATH;
-
-    return NULL;
-}
-
 static int virLockManagerLockDaemonLoadConfig(const char *configFile)
 {
     virConfPtr conf;
@@ -266,8 +250,13 @@ static virNetClientPtr virLockManagerLockDaemonConnectionNew(bool privileged,
     if (!(lockdpath = virLockManagerLockDaemonPath(privileged)))
         goto error;
 
-    if (!privileged)
-        daemonPath = virLockManagerLockDaemonFindDaemon();
+    if (!privileged &&
+        !(daemonPath = virFileFindResourceFull("virtlockd",
+                                               NULL, NULL,
+                                               "src",
+                                               SBINDIR,
+                                               "VIRTLOCKD_PATH")))
+        goto error;
 
     if (!(client = virNetClientNewUNIX(lockdpath,
                                        daemonPath != NULL,