]> xenbits.xensource.com Git - libvirt.git/commitdiff
lxc: container: Convert <init> exec to virCommand
authorCole Robinson <crobinso@redhat.com>
Thu, 5 May 2011 21:38:09 +0000 (17:38 -0400)
committerCole Robinson <crobinso@redhat.com>
Tue, 10 May 2011 17:15:50 +0000 (13:15 -0400)
src/lxc/lxc_container.c

index af453f34461d8ccfc66d29206690bfc3a5327257..4b3147987d8f98ab8fe6ec08c664e31132513ddb 100644 (file)
@@ -54,6 +54,7 @@
 #include "veth.h"
 #include "uuid.h"
 #include "files.h"
+#include "command.h"
 
 #define VIR_FROM_THIS VIR_FROM_LXC
 
@@ -103,33 +104,19 @@ struct __lxc_child_argv {
  */
 static int lxcContainerExecInit(virDomainDefPtr vmDef)
 {
-    char *uuidenv, *nameenv;
     char uuidstr[VIR_UUID_STRING_BUFLEN];
+    virCommandPtr cmd;
 
     virUUIDFormat(vmDef->uuid, uuidstr);
 
-    if (virAsprintf(&uuidenv, "LIBVIRT_LXC_UUID=%s", uuidstr) < 0) {
-        virReportOOMError();
-        return -1;
-    }
-    if (virAsprintf(&nameenv, "LIBVIRT_LXC_NAME=%s", vmDef->name) < 0) {
-        virReportOOMError();
-        return -1;
-    }
+    cmd = virCommandNew(vmDef->os.init);
 
-    const char *const argv[] = {
-        vmDef->os.init,
-        NULL,
-    };
-    const char *const envp[] = {
-        "PATH=/bin:/sbin",
-        "TERM=linux",
-        uuidenv,
-        nameenv,
-        NULL,
-    };
+    virCommandAddEnvString(cmd, "PATH=/bin:/sbin");
+    virCommandAddEnvString(cmd, "TERM=linux");
+    virCommandAddEnvPair(cmd, "LIBVIRT_LXC_UUID", uuidstr);
+    virCommandAddEnvPair(cmd, "LIBVIRT_LXC_NAME", vmDef->name);
 
-    return execve(argv[0], (char **)argv,(char**)envp);
+    return virCommandExec(cmd);
 }
 
 /**