From 2c2655744afbdd033996548dfcdb6d178225f8fd Mon Sep 17 00:00:00 2001 From: Luyao Huang Date: Wed, 17 Jun 2015 11:56:15 +0800 Subject: [PATCH] conf: use virDomainChrSourceDef to save server path As the backend of shmem server is a unix type chr device, save it in virDomainChrSourceDef, so we can reuse the existing code for chr device. Signed-off-by: Luyao Huang --- src/conf/domain_conf.c | 8 +++++--- src/conf/domain_conf.h | 2 +- src/qemu/qemu_command.c | 16 +++------------- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 006e04effc..4ed354c907 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1948,7 +1948,7 @@ void virDomainShmemDefFree(virDomainShmemDefPtr def) return; virDomainDeviceInfoClear(&def->info); - VIR_FREE(def->server.path); + virDomainChrSourceDefClear(&def->server.chr); VIR_FREE(def->name); VIR_FREE(def); } @@ -11158,8 +11158,10 @@ virDomainShmemDefParseXML(xmlNodePtr node, if ((server = virXPathNode("./server[1]", ctxt))) { def->server.enabled = true; + def->server.chr.type = VIR_DOMAIN_CHR_TYPE_UNIX; + def->server.chr.data.nix.listen = false; if ((tmp = virXMLPropString(server, "path"))) - def->server.path = virFileSanitizePath(tmp); + def->server.chr.data.nix.path = virFileSanitizePath(tmp); VIR_FREE(tmp); } @@ -20195,7 +20197,7 @@ virDomainShmemDefFormat(virBufferPtr buf, if (def->server.enabled) { virBufferAddLit(buf, "server.path); + virBufferEscapeString(buf, " path='%s'", def->server.chr.data.nix.path); virBufferAddLit(buf, "/>\n"); } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 2bdbff1e14..12d945ea7f 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -1601,7 +1601,7 @@ struct _virDomainShmemDef { unsigned long long size; struct { bool enabled; - char *path; + virDomainChrSourceDef chr; } server; struct { bool enabled; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a56ccb8e42..287c51dc91 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -8593,24 +8593,14 @@ qemuBuildShmemBackendStr(virDomainShmemDefPtr shmem, virQEMUCapsPtr qemuCaps) { char *devstr = NULL; - virDomainChrSourceDef source = { - .type = VIR_DOMAIN_CHR_TYPE_UNIX, - .data.nix = { - .path = shmem->server.path, - .listen = false, - } - }; - if (!shmem->server.path && - virAsprintf(&source.data.nix.path, + if (!shmem->server.chr.data.nix.path && + virAsprintf(&shmem->server.chr.data.nix.path, "/var/lib/libvirt/shmem-%s-sock", shmem->name) < 0) return NULL; - devstr = qemuBuildChrChardevStr(&source, shmem->info.alias, qemuCaps); - - if (!shmem->server.path) - VIR_FREE(source.data.nix.path); + devstr = qemuBuildChrChardevStr(&shmem->server.chr, shmem->info.alias, qemuCaps); return devstr; } -- 2.39.5