diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index d97398456502f9256ed92c75d2b8ded65cfbe171..269dc9784a4fb4c67c90cca4800f4f20be16a5bb 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -52,6 +52,7 @@ #include "util.h" #include "memory.h" #include "veth.h" +#include "uuid.h" #include "files.h" #define VIR_FROM_THIS VIR_FROM_LXC @@ -102,6 +103,20 @@ struct __lxc_child_argv { */ static int lxcContainerExecInit(virDomainDefPtr vmDef) { + char *uuidenv, *nameenv; + char uuidstr[VIR_UUID_STRING_BUFLEN]; + + 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; + } + const char *const argv[] = { vmDef->os.init, NULL, @@ -109,6 +124,8 @@ static int lxcContainerExecInit(virDomainDefPtr vmDef) const char *const envp[] = { "PATH=/bin:/sbin", "TERM=linux", + uuidenv, + nameenv, NULL, };