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(a)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.