
On Mon, May 18, 2020 at 10:07:25 -0500, Eric Blake wrote:
On 5/15/20 10:27 AM, Peter Krempa wrote:
In preparation for converting the generator of -netdev to generate JSON which will be used to do the command line rather than the other way around we need to introduce a convertor which properly configures virQEMUBuildCommandLineJSON for the quirks of -netdev.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/libvirt_private.syms | 1 + src/util/virqemu.c | 22 ++++++++++++++++++++++ src/util/virqemu.h | 3 +++ 3 files changed, 26 insertions(+)
+/** + * virQEMUBuildNetdevCommandlineFromJSON: + * @props: JSON properties describing a netdev + * + * Converts @props into arguments for -netdev including all the quirks and + * differences between the monitor and command line syntax. + */ +char * +virQEMUBuildNetdevCommandlineFromJSON(virJSONValuePtr props) +{ + const char *type = virJSONValueObjectGetString(props, "type"); + g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; + + virBufferAsprintf(&buf, "%s,", type); + + if (virQEMUBuildCommandLineJSON(props, &buf, "type", true, NULL) < 0) + return NULL;
Do we actually have to special-case "type"?
I'd have to go back and see since when we can use type= explicitly with qemu and I didn't really feel doing that across all supported qemu versions. Well, to be fair not even across the reasonable versions.