]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
Use virFileFindResource to locate libvirt_lxc for capabilities
authorNehal J Wani <nehaljw.kkd1@gmail.com>
Tue, 25 Mar 2014 08:23:13 +0000 (13:53 +0530)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 25 Apr 2014 10:59:46 +0000 (11:59 +0100)
Instead of hardcoding LIBEXECDIR as the location of the libvirt_lxc
binary set in the LXC driver capabilities, use virFileFindResource
to optionally find it in the current build directory.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
src/lxc/lxc_conf.c

index edc0b68d326440b0d9d241e349f29119dc0b2371..a35a5e04b9095d051043eb779493f9f73e8335b8 100644 (file)
@@ -38,6 +38,7 @@
 #include "lxc_container.h"
 #include "virnodesuspend.h"
 #include "virstring.h"
+#include "virfile.h"
 
 #define VIR_FROM_THIS VIR_FROM_LXC
 
@@ -66,6 +67,7 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver)
     virCapsPtr caps;
     virCapsGuestPtr guest;
     virArch altArch;
+    char *lxc_path = NULL;
 
     if ((caps = virCapabilitiesNew(virArchFromHost(),
                                    0, 0)) == NULL)
@@ -89,10 +91,15 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver)
         goto error;
     }
 
+    if (!(lxc_path = virFileFindResource("libvirt_lxc",
+                                         "src",
+                                         LIBEXECDIR)))
+        goto error;
+
     if ((guest = virCapabilitiesAddGuest(caps,
                                          "exe",
                                          caps->host.arch,
-                                         LIBEXECDIR "/libvirt_lxc",
+                                         lxc_path,
                                          NULL,
                                          0,
                                          NULL)) == NULL)
@@ -111,7 +118,7 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver)
         if ((guest = virCapabilitiesAddGuest(caps,
                                              "exe",
                                              altArch,
-                                             LIBEXECDIR "/libvirt_lxc",
+                                             lxc_path,
                                              NULL,
                                              0,
                                              NULL)) == NULL)
@@ -126,6 +133,8 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver)
             goto error;
     }
 
+    VIR_FREE(lxc_path);
+
     if (driver) {
         /* Security driver data */
         const char *doi, *model, *label, *type;
@@ -158,6 +167,7 @@ virCapsPtr virLXCDriverCapsInit(virLXCDriverPtr driver)
     return caps;
 
  error:
+    VIR_FREE(lxc_path);
     virObjectUnref(caps);
     return NULL;
 }