]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuBuildVhostuserCommandLine: Reuse qemuBuildChrChardevStr
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 15 Aug 2016 14:15:44 +0000 (16:15 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 14 Oct 2016 03:44:53 +0000 (11:44 +0800)
There's no need to reinvent the wheel here. We already have a
function to format virDomainChrSourceDefPtr. It's called
qemuBuildChrChardevStr(). Use that instead of some dummy
virBufferAsprintf().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_command.c

index ff4e977a18eafb0b5d6a51057f97fd0d982e78e8..1c02e5802bcf31bd73a6d4a08d603f1e525d535c 100644 (file)
@@ -7781,13 +7781,16 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr cfg,
 }
 
 static int
-qemuBuildVhostuserCommandLine(virCommandPtr cmd,
+qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver,
+                              virLogManagerPtr logManager,
+                              virCommandPtr cmd,
                               virDomainDefPtr def,
                               virDomainNetDefPtr net,
                               virQEMUCapsPtr qemuCaps,
                               unsigned int bootindex)
 {
-    virBuffer chardev_buf = VIR_BUFFER_INITIALIZER;
+    virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
+    char *chardev = NULL;
     virBuffer netdev_buf = VIR_BUFFER_INITIALIZER;
     unsigned int queues = net->driver.virtio.queues;
     char *nic = NULL;
@@ -7800,9 +7803,10 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
 
     switch ((virDomainChrType) net->data.vhostuser->type) {
     case VIR_DOMAIN_CHR_TYPE_UNIX:
-        virBufferAsprintf(&chardev_buf, "socket,id=char%s,path=%s%s",
-                          net->info.alias, net->data.vhostuser->data.nix.path,
-                          net->data.vhostuser->data.nix.listen ? ",server" : "");
+        if (!(chardev = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
+                                               net->data.vhostuser,
+                                               net->info.alias, qemuCaps, false)))
+            goto error;
         break;
 
     case VIR_DOMAIN_CHR_TYPE_NULL:
@@ -7820,7 +7824,7 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
     case VIR_DOMAIN_CHR_TYPE_LAST:
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("vhost-user type '%s' not supported"),
-                        virDomainChrTypeToString(net->data.vhostuser->type));
+                       virDomainChrTypeToString(net->data.vhostuser->type));
         goto error;
     }
 
@@ -7838,7 +7842,8 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
     }
 
     virCommandAddArg(cmd, "-chardev");
-    virCommandAddArgBuffer(cmd, &chardev_buf);
+    virCommandAddArg(cmd, chardev);
+    VIR_FREE(chardev);
 
     virCommandAddArg(cmd, "-netdev");
     virCommandAddArgBuffer(cmd, &netdev_buf);
@@ -7852,11 +7857,13 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
 
     virCommandAddArgList(cmd, "-device", nic, NULL);
     VIR_FREE(nic);
+    virObjectUnref(cfg);
 
     return 0;
 
  error:
-    virBufferFreeAndReset(&chardev_buf);
+    virObjectUnref(cfg);
+    VIR_FREE(chardev);
     virBufferFreeAndReset(&netdev_buf);
     VIR_FREE(nic);
 
@@ -7864,8 +7871,9 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
 }
 
 static int
-qemuBuildInterfaceCommandLine(virCommandPtr cmd,
-                              virQEMUDriverPtr driver,
+qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
+                              virLogManagerPtr logManager,
+                              virCommandPtr cmd,
                               virDomainDefPtr def,
                               virDomainNetDefPtr net,
                               virQEMUCapsPtr qemuCaps,
@@ -7885,7 +7893,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
     char **tapfdName = NULL;
     char **vhostfdName = NULL;
     virDomainNetType actualType = virDomainNetGetActualType(net);
-    virQEMUDriverConfigPtr cfg = NULL;
     virNetDevBandwidthPtr actualBandwidth;
     size_t i;
 
@@ -7928,8 +7935,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
         return -1;
     }
 
-    cfg = virQEMUDriverGetConfig(driver);
-
     switch (actualType) {
     case VIR_DOMAIN_NET_TYPE_NETWORK:
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
@@ -7989,7 +7994,8 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
         break;
 
     case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
-        ret = qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps, bootindex);
+        ret = qemuBuildVhostuserCommandLine(driver, logManager, cmd, def,
+                                            net, qemuCaps, bootindex);
         goto cleanup;
         break;
 
@@ -8162,7 +8168,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
     VIR_FREE(host);
     VIR_FREE(tapfdName);
     VIR_FREE(vhostfdName);
-    virObjectUnref(cfg);
     return ret;
 }
 
@@ -8172,8 +8177,9 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
  *       API domainSetSecurityTapFDLabel that doesn't use the const format.
  */
 static int
-qemuBuildNetCommandLine(virCommandPtr cmd,
-                        virQEMUDriverPtr driver,
+qemuBuildNetCommandLine(virQEMUDriverPtr driver,
+                        virLogManagerPtr logManager,
+                        virCommandPtr cmd,
                         virDomainDefPtr def,
                         virQEMUCapsPtr qemuCaps,
                         virNetDevVPortProfileOp vmop,
@@ -8211,7 +8217,7 @@ qemuBuildNetCommandLine(virCommandPtr cmd,
             else
                 vlan = i;
 
-            if (qemuBuildInterfaceCommandLine(cmd, driver, def, net,
+            if (qemuBuildInterfaceCommandLine(driver, logManager, cmd, def, net,
                                               qemuCaps, vlan, bootNet, vmop,
                                               standalone, nnicindexes,
                                               nicindexes) < 0)
@@ -9438,7 +9444,8 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
     if (qemuBuildFSDevCommandLine(cmd, def, qemuCaps) < 0)
         goto error;
 
-    if (qemuBuildNetCommandLine(cmd, driver, def, qemuCaps, vmop, standalone,
+    if (qemuBuildNetCommandLine(driver, logManager, cmd, def,
+                                qemuCaps, vmop, standalone,
                                 nnicindexes, nicindexes, &bootHostdevNet) < 0)
         goto error;