[libvirt] [PATCH 1/3] qemu: Make all SPICE command-line args optional

Ján Tomko jtomko at redhat.com
Tue Mar 15 11:16:10 UTC 2016


On Tue, Mar 15, 2016 at 10:20:48AM +0100, Christophe Fergeau wrote:
> The goal is to not add -spice port=0,addr=127.0.0.1 to QEMU command line
> when no SPICE port is specified in libvirt XML.

Misleading, even after the series port=0 is generated.

> Before this change, we could rely on port or tlsPort to always be
> present, so subsequent args could be unconditionally appended with a
> leading ','. Now that it's no longer the case, we need to always check
> whether the arg we are about to append is the first one or not.
> ---
>  src/qemu/qemu_command.c | 98 ++++++++++++++++++++++++++++++++++++-------------
>  1 file changed, 73 insertions(+), 25 deletions(-)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 32d32b1..84db056 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -7039,13 +7039,16 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg,
>                               " but TLS is disabled in qemu.conf"));
>              goto error;
>          }
> -        if (port > 0)
> +
> +        if (virBufferUse(&opt) != 0)
>              virBufferAddChar(&opt, ',');
>          virBufferAsprintf(&opt, "tls-port=%u", tlsPort);

Instead of all these conditions, we can convert all the arguments to add
a trailing comma and remove the last one by calling
    virBufferTrim(&opt, ",", -1);
at the end.

>      }
>  

> +    /* If we did not add any SPICE arguments, add a dummy 'port=0' one
> +     * as -spice alone is not allowed on QEMU command line and will be
> +     * ignored by libvirt
> +     */
> +    if (virBufferUse(&opt) == 0)
> +      virBufferAddLit(&opt, "port=0");
> +

I would rather add this change to the commit that disables the first
port=0.

Also, there is no need to go through the buffer, the string can be added
directly to the virCommand.

Jan

>      virCommandAddArg(cmd, "-spice");
>      virCommandAddArgBuffer(cmd, &opt);
>      if (graphics->data.spice.keymap)
> -- 
> 2.5.0
> 
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list