]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
conf: use virDomainChrSourceDef to save server path
authorLuyao Huang <lhuang@redhat.com>
Wed, 17 Jun 2015 03:56:15 +0000 (11:56 +0800)
committerMartin Kletzander <mkletzan@redhat.com>
Wed, 8 Jul 2015 14:30:42 +0000 (16:30 +0200)
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 <lhuang@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/qemu/qemu_command.c

index 006e04effcdc858f00d8d8d06a99f9363154b76a..4ed354c907fa67956af6c4900551403d06570b05 100644 (file)
@@ -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");
-        virBufferEscapeString(buf, " path='%s'", def->server.path);
+        virBufferEscapeString(buf, " path='%s'", def->server.chr.data.nix.path);
         virBufferAddLit(buf, "/>\n");
     }
 
index 2bdbff1e140bf49a3c337640341b3675b078672e..12d945ea7f24a2f08b7bc7bf934d2afe7ea9dd67 100644 (file)
@@ -1601,7 +1601,7 @@ struct _virDomainShmemDef {
     unsigned long long size;
     struct {
         bool enabled;
-        char *path;
+        virDomainChrSourceDef chr;
     } server;
     struct {
         bool enabled;
index a56ccb8e42105e9ab247eda223221a5fb0b788b6..287c51dc9116b1d817b6013eb9a01bc304f01634 100644 (file)
@@ -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;
 }