On Wed, Jun 17, 2015 at 11:56:15AM +0800, Luyao Huang wrote:
As the backend of shmem server is a unix type chr device,
save it in virDomainChrSourceDef can reuse the exist
code for chr device.

Signed-off-by: Luyao Huang <lhu...@redhat.com>
---
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(-)


ACK

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 60d4d07..306b718 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1945,7 +1945,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);
}
@@ -11042,8 +11042,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);
    }

@@ -19997,7 +19999,7 @@ virDomainShmemDefFormat(virBufferPtr buf,

    if (def->server.enabled) {
        virBufferAddLit(buf, "<server");
-        virBufferEscapeString(buf, " path='%s'", def->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 ba17a8d..a4b1bf3 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1599,7 +1599,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 0414f77..5d55794 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8500,24 +8500,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;
}
--
1.8.3.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Attachment: signature.asc
Description: PGP signature

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to