Move to virqemu and rename to virQEMUBuildBufferEscapeComma. This can then
be shared by the storage driver when it builds the command line for qemuimg
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/libvirt_private.syms | 1 +
src/qemu/qemu_command.c | 33 +++++++++------------------------
src/util/virqemu.c | 15 +++++++++++++++
src/util/virqemu.h | 2 ++
4 files changed, 27 insertions(+), 24 deletions(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index ba718b8..dcbff06 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -2192,6 +2192,7 @@ virProcessWait;
# util/virqemu.h
+virQEMUBuildBufferEscapeComma;
virQEMUBuildObjectCommandlineFromJSON;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index fe4bb88..ba50987 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -152,21 +152,6 @@ VIR_ENUM_IMPL(qemuNumaPolicy, VIR_DOMAIN_NUMATUNE_MEM_LAST,
/**
- * qemuBufferEscapeComma:
- * @buf: buffer to append the escaped string
- * @str: the string to escape
- *
- * qemu requires that any values passed on the command line which contain
- * a ',' must escape it using an extra ',' as the escape character
- */
-static void
-qemuBufferEscapeComma(virBufferPtr buf, const char *str)
-{
- virBufferEscape(buf, ',', ",", "%s", str);
-}
-
-
-/**
* qemuBuildHasMasterKey:
* @qemuCaps: QEMU binary capabilities
*
@@ -221,7 +206,7 @@ qemuBuildMasterKeyCommandLine(virCommandPtr cmd,
virCommandAddArg(cmd, "-object");
virBufferAsprintf(&buf, "secret,id=%s,format=raw,file=", alias);
- qemuBufferEscapeComma(&buf, path);
+ virQEMUBuildBufferEscapeComma(&buf, path);
virCommandAddArgBuffer(cmd, &buf);
ret = 0;
@@ -1229,7 +1214,7 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk,
break;
}
- qemuBufferEscapeComma(&opt, source);
+ virQEMUBuildBufferEscapeComma(&opt, source);
virBufferAddLit(&opt, ",");
if (secinfo && secinfo->type == VIR_DOMAIN_SECRET_INFO_TYPE_AES) {
@@ -3773,7 +3758,7 @@ qemuBuildVirtioInputDevStr(const virDomainDef *def,
goto error;
}
virBufferAsprintf(&buf, "virtio-input-host%s,id=%s,evdev=", suffix,
dev->info.alias);
- qemuBufferEscapeComma(&buf, dev->source.evdev);
+ virQEMUBuildBufferEscapeComma(&buf, dev->source.evdev);
break;
case VIR_DOMAIN_INPUT_TYPE_LAST:
break;
@@ -4775,7 +4760,7 @@ qemuBuildChrChardevStr(virLogManagerPtr logManager,
case VIR_DOMAIN_CHR_TYPE_UNIX:
virBufferAsprintf(&buf, "socket,id=char%s,path=", alias);
- qemuBufferEscapeComma(&buf, dev->data.nix.path);
+ virQEMUBuildBufferEscapeComma(&buf, dev->data.nix.path);
if (dev->data.nix.listen)
virBufferAddLit(&buf, ",server,nowait");
break;
@@ -6147,7 +6132,7 @@ qemuBuildBootCommandLine(virCommandPtr cmd,
virBuffer buf = VIR_BUFFER_INITIALIZER;
virCommandAddArg(cmd, "-acpitable");
virBufferAddLit(&buf, "sig=SLIC,file=");
- qemuBufferEscapeComma(&buf, def->os.slic_table);
+ virQEMUBuildBufferEscapeComma(&buf, def->os.slic_table);
virCommandAddArgBuffer(cmd, &buf);
}
@@ -6734,7 +6719,7 @@ qemuBuildNameCommandLine(virCommandPtr cmd,
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NAME_GUEST))
virBufferAddLit(&buf, "guest=");
- qemuBufferEscapeComma(&buf, def->name);
+ virQEMUBuildBufferEscapeComma(&buf, def->name);
if (cfg->setProcessName &&
virQEMUCapsGet(qemuCaps, QEMU_CAPS_NAME_PROCESS))
@@ -7271,7 +7256,7 @@ qemuBuildGraphicsVNCCommandLine(virQEMUDriverConfigPtr cfg,
switch (glisten->type) {
case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET:
virBufferAddLit(&opt, "unix:");
- qemuBufferEscapeComma(&opt, glisten->socket);
+ virQEMUBuildBufferEscapeComma(&opt, glisten->socket);
break;
case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS:
@@ -8847,10 +8832,10 @@ qemuBuildTPMBackendStr(const virDomainDef *def,
goto error;
}
virBufferAddLit(&buf, ",path=");
- qemuBufferEscapeComma(&buf, devset ? devset : tpmdev);
+ virQEMUBuildBufferEscapeComma(&buf, devset ? devset : tpmdev);
virBufferAddLit(&buf, ",cancel-path=");
- qemuBufferEscapeComma(&buf, cancel_path);
+ virQEMUBuildBufferEscapeComma(&buf, cancel_path);
VIR_FREE(devset);
VIR_FREE(cancel_path);
diff --git a/src/util/virqemu.c b/src/util/virqemu.c
index 895168e..79a4292 100644
--- a/src/util/virqemu.c
+++ b/src/util/virqemu.c
@@ -140,3 +140,18 @@ virQEMUBuildObjectCommandlineFromJSON(const char *type,
virBufferFreeAndReset(&buf);
return ret;
}
+
+
+/**
+ * virQEMUBuildBufferEscapeComma:
+ * @buf: buffer to append the escaped string
+ * @str: the string to escape
+ *
+ * qemu requires that any values passed on the command line which contain
+ * a ',' must escape it using an extra ',' as the escape character
+ */
+void
+virQEMUBuildBufferEscapeComma(virBufferPtr buf, const char *str)
+{
+ virBufferEscape(buf, ',', ",", "%s", str);
+}
diff --git a/src/util/virqemu.h b/src/util/virqemu.h
index af4ec1d..1033412 100644
--- a/src/util/virqemu.h
+++ b/src/util/virqemu.h
@@ -25,10 +25,12 @@
# define __VIR_QEMU_H_
# include "internal.h"
+# include "virbuffer.h"
# include "virjson.h"
char *virQEMUBuildObjectCommandlineFromJSON(const char *type,
const char *alias,
virJSONValuePtr props);
+void virQEMUBuildBufferEscapeComma(virBufferPtr buf, const char *str);
#endif /* __VIR_QEMU_H_ */
--
2.5.5