]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: qemu: Add support for user-passed strings in JSON->commandline
authorPeter Krempa <pkrempa@redhat.com>
Mon, 25 Jul 2016 12:37:47 +0000 (14:37 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 27 Jul 2016 07:39:53 +0000 (09:39 +0200)
Until now the JSON->commandline convertor was used only for objects
created by qemu. To allow reusing it with disk formatter we'll need to
escape ',' as usual in qemu commandlines.

src/util/virqemu.c
tests/qemucommandutiltest.c

index a5d53852bd48ff73d201f37e7bf85202e8e846da..99c14c2bf8ba73f9b96d0b029ea65860f4b59c22 100644 (file)
@@ -46,7 +46,8 @@ virQEMUBuildCommandLineJSONRecurse(const char *key,
 
     switch ((virJSONType) value->type) {
     case VIR_JSON_TYPE_STRING:
-        virBufferAsprintf(buf, ",%s=%s", key, value->data.string);
+        virBufferAsprintf(buf, ",%s=", key);
+        virQEMUBuildBufferEscapeComma(buf, value->data.string);
         break;
 
     case VIR_JSON_TYPE_NUMBER:
index 21fef1c458af2db543931c1ec830fcd5ec66351c..82994623b1b9c4dd8e20763e20225a0af7f71593 100644 (file)
@@ -100,6 +100,7 @@ mymain(void)
 
     DO_TEST_COMMAND_OBJECT_FROM_JSON("{}", NULL);
     DO_TEST_COMMAND_OBJECT_FROM_JSON("{\"string\":\"qwer\"}", "string=qwer");
+    DO_TEST_COMMAND_OBJECT_FROM_JSON("{\"string\":\"qw,e,r\"}", "string=qw,,e,,r");
     DO_TEST_COMMAND_OBJECT_FROM_JSON("{\"number\":1234}", "number=1234");
     DO_TEST_COMMAND_OBJECT_FROM_JSON("{\"boolean\":true}", "boolean=yes");
     DO_TEST_COMMAND_OBJECT_FROM_JSON("{\"boolean\":false}", "boolean=no");