When initializing virQEMUDriverConfig structure we are given the
root directory for possible embed connection. Save it for future
use. While we could get it later from @uri member, it's not as
easy as dereferencing a pointer (virURIParse() +
virURIGetParam() + error reporting).
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_conf.c | 2 ++
src/qemu/qemu_conf.h | 2 ++
2 files changed, 4 insertions(+)
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 17a6eb3422..d57ffdaeb5 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -115,6 +115,7 @@ virQEMUDriverConfigPtr virQEMUDriverConfigNew(bool privileged,
if (root) {
cfg->uri = g_strdup_printf("qemu:///embed?root=%s", root);
+ cfg->root = g_strdup(root);
} else {
cfg->uri = g_strdup(privileged ? "qemu:///system" :
"qemu:///session");
}
@@ -299,6 +300,7 @@ static void virQEMUDriverConfigDispose(void *obj)
virStringListFree(cfg->cgroupDeviceACL);
VIR_FREE(cfg->uri);
+ VIR_FREE(cfg->root);
VIR_FREE(cfg->configBaseDir);
VIR_FREE(cfg->configDir);
diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
index 3ce9566b71..82fea63fbc 100644
--- a/src/qemu/qemu_conf.h
+++ b/src/qemu/qemu_conf.h
@@ -76,6 +76,8 @@ struct _virQEMUDriverConfig {
virObject parent;
char *uri;
+ char *root; /* The root directory for embed driver,
+ NULL for system/session connections */
uid_t user;
gid_t group;
--
2.24.1