6ae9ed
From f7162a7c681e0dda365f1883736979d64ae7d2a5 Mon Sep 17 00:00:00 2001
6ae9ed
Message-Id: <f7162a7c681e0dda365f1883736979d64ae7d2a5@dist-git>
6ae9ed
From: John Ferlan <jferlan@redhat.com>
6ae9ed
Date: Mon, 25 Jul 2016 12:42:56 -0400
6ae9ed
Subject: [PATCH] qemu: Move and rename qemuBufferEscapeComma
6ae9ed
6ae9ed
https://bugzilla.redhat.com/show_bug.cgi?id=1301021
6ae9ed
6ae9ed
Move to virqemu and rename to virQEMUBuildBufferEscapeComma. This can then
6ae9ed
be shared by the storage driver when it builds the command line for qemuimg
6ae9ed
6ae9ed
(cherry picked from commit 8215aab0036e65da47a2646f85749e9f5ea5d252)
6ae9ed
Signed-off-by: John Ferlan <jferlan@redhat.com>
6ae9ed
---
6ae9ed
 src/libvirt_private.syms |  1 +
6ae9ed
 src/qemu/qemu_command.c  | 33 +++++++++------------------------
6ae9ed
 src/util/virqemu.c       | 15 +++++++++++++++
6ae9ed
 src/util/virqemu.h       |  2 ++
6ae9ed
 4 files changed, 27 insertions(+), 24 deletions(-)
6ae9ed
6ae9ed
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
6ae9ed
index 62c9dc5..c205fd8 100644
6ae9ed
--- a/src/libvirt_private.syms
6ae9ed
+++ b/src/libvirt_private.syms
6ae9ed
@@ -2192,6 +2192,7 @@ virProcessWait;
6ae9ed
 
6ae9ed
 
6ae9ed
 # util/virqemu.h
6ae9ed
+virQEMUBuildBufferEscapeComma;
6ae9ed
 virQEMUBuildObjectCommandlineFromJSON;
6ae9ed
 
6ae9ed
 
6ae9ed
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
6ae9ed
index b87d9c3..0ee1d34 100644
6ae9ed
--- a/src/qemu/qemu_command.c
6ae9ed
+++ b/src/qemu/qemu_command.c
6ae9ed
@@ -152,21 +152,6 @@ VIR_ENUM_IMPL(qemuNumaPolicy, VIR_DOMAIN_NUMATUNE_MEM_LAST,
6ae9ed
 
6ae9ed
 
6ae9ed
 /**
6ae9ed
- * qemuBufferEscapeComma:
6ae9ed
- * @buf: buffer to append the escaped string
6ae9ed
- * @str: the string to escape
6ae9ed
- *
6ae9ed
- * qemu requires that any values passed on the command line which contain
6ae9ed
- * a ',' must escape it using an extra ',' as the escape character
6ae9ed
- */
6ae9ed
-static void
6ae9ed
-qemuBufferEscapeComma(virBufferPtr buf, const char *str)
6ae9ed
-{
6ae9ed
-    virBufferEscape(buf, ',', ",", "%s", str);
6ae9ed
-}
6ae9ed
-
6ae9ed
-
6ae9ed
-/**
6ae9ed
  * qemuBuildHasMasterKey:
6ae9ed
  * @qemuCaps: QEMU binary capabilities
6ae9ed
  *
6ae9ed
@@ -221,7 +206,7 @@ qemuBuildMasterKeyCommandLine(virCommandPtr cmd,
6ae9ed
 
6ae9ed
     virCommandAddArg(cmd, "-object");
6ae9ed
     virBufferAsprintf(&buf, "secret,id=%s,format=raw,file=", alias);
6ae9ed
-    qemuBufferEscapeComma(&buf, path);
6ae9ed
+    virQEMUBuildBufferEscapeComma(&buf, path);
6ae9ed
     virCommandAddArgBuffer(cmd, &buf;;
6ae9ed
 
6ae9ed
     ret = 0;
6ae9ed
@@ -1233,7 +1218,7 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk,
6ae9ed
             break;
6ae9ed
         }
6ae9ed
 
6ae9ed
-        qemuBufferEscapeComma(&opt, source);
6ae9ed
+        virQEMUBuildBufferEscapeComma(&opt, source);
6ae9ed
         virBufferAddLit(&opt, ",");
6ae9ed
 
6ae9ed
         if (secinfo && secinfo->type == VIR_DOMAIN_SECRET_INFO_TYPE_AES) {
6ae9ed
@@ -3776,7 +3761,7 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def,
6ae9ed
             goto error;
6ae9ed
         }
6ae9ed
         virBufferAsprintf(&buf, "virtio-input-host%s,id=%s,evdev=", suffix, dev->info.alias);
6ae9ed
-        qemuBufferEscapeComma(&buf, dev->source.evdev);
6ae9ed
+        virQEMUBuildBufferEscapeComma(&buf, dev->source.evdev);
6ae9ed
         break;
6ae9ed
     case VIR_DOMAIN_INPUT_TYPE_LAST:
6ae9ed
         break;
6ae9ed
@@ -4778,7 +4763,7 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager,
6ae9ed
 
6ae9ed
     case VIR_DOMAIN_CHR_TYPE_UNIX:
6ae9ed
         virBufferAsprintf(&buf, "socket,id=char%s,path=", alias);
6ae9ed
-        qemuBufferEscapeComma(&buf, dev->data.nix.path);
6ae9ed
+        virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path);
6ae9ed
         if (dev->data.nix.listen)
6ae9ed
             virBufferAddLit(&buf, ",server,nowait");
6ae9ed
         break;
6ae9ed
@@ -6157,7 +6142,7 @@ qemuBuildBootCommandLine(virCommandPtr cmd,
6ae9ed
         virBuffer buf = VIR_BUFFER_INITIALIZER;
6ae9ed
         virCommandAddArg(cmd, "-acpitable");
6ae9ed
         virBufferAddLit(&buf, "sig=SLIC,file=");
6ae9ed
-        qemuBufferEscapeComma(&buf, def->os.slic_table);
6ae9ed
+        virQEMUBuildBufferEscapeComma(&buf, def->os.slic_table);
6ae9ed
         virCommandAddArgBuffer(cmd, &buf;;
6ae9ed
     }
6ae9ed
 
6ae9ed
@@ -6764,7 +6749,7 @@ qemuBuildNameCommandLine(virCommandPtr cmd,
6ae9ed
     if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NAME_GUEST))
6ae9ed
         virBufferAddLit(&buf, "guest=");
6ae9ed
 
6ae9ed
-    qemuBufferEscapeComma(&buf, def->name);
6ae9ed
+    virQEMUBuildBufferEscapeComma(&buf, def->name);
6ae9ed
 
6ae9ed
     if (cfg->setProcessName &&
6ae9ed
         virQEMUCapsGet(qemuCaps, QEMU_CAPS_NAME_PROCESS))
6ae9ed
@@ -7313,7 +7298,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg,
6ae9ed
     switch (glisten->type) {
6ae9ed
     case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET:
6ae9ed
         virBufferAddLit(&opt, "unix:");
6ae9ed
-        qemuBufferEscapeComma(&opt, glisten->socket);
6ae9ed
+        virQEMUBuildBufferEscapeComma(&opt, glisten->socket);
6ae9ed
         break;
6ae9ed
 
6ae9ed
     case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS:
6ae9ed
@@ -8890,10 +8875,10 @@ qemuBuildTPMBackendStr(const virDomainDef *def,
6ae9ed
                 goto error;
6ae9ed
         }
6ae9ed
         virBufferAddLit(&buf, ",path=");
6ae9ed
-        qemuBufferEscapeComma(&buf, devset ? devset : tpmdev);
6ae9ed
+        virQEMUBuildBufferEscapeComma(&buf, devset ? devset : tpmdev);
6ae9ed
 
6ae9ed
         virBufferAddLit(&buf, ",cancel-path=");
6ae9ed
-        qemuBufferEscapeComma(&buf, cancel_path);
6ae9ed
+        virQEMUBuildBufferEscapeComma(&buf, cancel_path);
6ae9ed
 
6ae9ed
         VIR_FREE(devset);
6ae9ed
         VIR_FREE(cancel_path);
6ae9ed
diff --git a/src/util/virqemu.c b/src/util/virqemu.c
6ae9ed
index 895168e..79a4292 100644
6ae9ed
--- a/src/util/virqemu.c
6ae9ed
+++ b/src/util/virqemu.c
6ae9ed
@@ -140,3 +140,18 @@ virQEMUBuildObjectCommandlineFromJSON(const char *type,
6ae9ed
     virBufferFreeAndReset(&buf;;
6ae9ed
     return ret;
6ae9ed
 }
6ae9ed
+
6ae9ed
+
6ae9ed
+/**
6ae9ed
+ * virQEMUBuildBufferEscapeComma:
6ae9ed
+ * @buf: buffer to append the escaped string
6ae9ed
+ * @str: the string to escape
6ae9ed
+ *
6ae9ed
+ * qemu requires that any values passed on the command line which contain
6ae9ed
+ * a ',' must escape it using an extra ',' as the escape character
6ae9ed
+ */
6ae9ed
+void
6ae9ed
+virQEMUBuildBufferEscapeComma(virBufferPtr buf, const char *str)
6ae9ed
+{
6ae9ed
+    virBufferEscape(buf, ',', ",", "%s", str);
6ae9ed
+}
6ae9ed
diff --git a/src/util/virqemu.h b/src/util/virqemu.h
6ae9ed
index af4ec1d..1033412 100644
6ae9ed
--- a/src/util/virqemu.h
6ae9ed
+++ b/src/util/virqemu.h
6ae9ed
@@ -25,10 +25,12 @@
6ae9ed
 # define __VIR_QEMU_H_
6ae9ed
 
6ae9ed
 # include "internal.h"
6ae9ed
+# include "virbuffer.h"
6ae9ed
 # include "virjson.h"
6ae9ed
 
6ae9ed
 char *virQEMUBuildObjectCommandlineFromJSON(const char *type,
6ae9ed
                                             const char *alias,
6ae9ed
                                             virJSONValuePtr props);
6ae9ed
 
6ae9ed
+void virQEMUBuildBufferEscapeComma(virBufferPtr buf, const char *str);
6ae9ed
 #endif /* __VIR_QEMU_H_ */
6ae9ed
-- 
6ae9ed
2.9.2
6ae9ed