[libvirt] [PATCH 07/18] domain_conf: introduce virDomainGraphicsListenAddAddress

Ján Tomko jtomko at redhat.com
Fri Apr 8 16:12:08 UTC 2016


On Mon, Apr 04, 2016 at 03:20:24PM +0200, Pavel Hrdina wrote:
> This effectively removes virDomainGraphicsListenSetAddress which was
> used only to change the address of listen structure and possible change
> the listen type.  The new function will auto-expand the listens array
> and add a new listen.
> 
> The old function was used on pre-allocated array of listens and in most
> cases it only "add" a new listen.  The two remaining uses can access the
> listen structure directly.
> 
> Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> ---
>  src/conf/domain_conf.c        | 34 +++++++++++++++-------------------
>  src/conf/domain_conf.h        |  6 +++---
>  src/libvirt_private.syms      |  2 +-
>  src/qemu/qemu_command.c       |  6 ++----
>  src/qemu/qemu_parse_command.c |  4 +++-
>  src/qemu/qemu_process.c       | 15 +++++++--------
>  src/vbox/vbox_common.c        |  3 +--
>  src/vmx/vmx.c                 |  2 +-
>  src/xenconfig/xen_common.c    | 12 +++++-------
>  src/xenconfig/xen_sxpr.c      |  4 ++--
>  src/xenconfig/xen_xl.c        |  4 +---
>  11 files changed, 41 insertions(+), 51 deletions(-)
> 
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 42050b0..c79a432 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -10741,7 +10741,7 @@ virDomainGraphicsListensParseXML(virDomainGraphicsDefPtr def,
>      /* There were no <listen> elements, so we can just
>       * directly set listenAddr as listens[0]->address */
>      if (listenAddr && def->nListens == 0 &&
> -        virDomainGraphicsListenSetAddress(def, 0, listenAddr, -1, true) < 0)
> +        virDomainGraphicsListenAddAddress(def, 0, listenAddr) < 0)
>          goto error;
>  
>      ret = 0;
> @@ -23820,31 +23820,27 @@ virDomainGraphicsListenGetAddress(virDomainGraphicsDefPtr def, size_t i)
>  }
>  
>  
> -/* Make a copy of up to len characters of address, and store it in
> - * listens[i].address. If setType is true, set the listen's type
> - * to 'address', otherwise leave type alone. */
>  int
> -virDomainGraphicsListenSetAddress(virDomainGraphicsDefPtr def,
> -                                  size_t i, const char *address,
> -                                  int len, bool setType)
> +virDomainGraphicsListenAddAddress(virDomainGraphicsDefPtr def,
> +                                  int pos,

I would go even further and delete the pos argument too.
Every single caller uses 0 and only calls it when def->nListens == 0.

> +                                  const char *address)
>  {
> -    virDomainGraphicsListenDefPtr listenInfo
> -        = virDomainGraphicsGetListen(def, i, true);
> +    virDomainGraphicsListenDef listen;
>  
> -    if (!listenInfo)
> -        return -1;
> +    memset(&listen, 0, sizeof(listen));
>  
> -    if (setType)
> -        listenInfo->type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS;
> +    listen.type = VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS;
>  
> -    if (!address) {
> -        VIR_FREE(listenInfo->address);
> -        return 0;
> -    }
> +    if (VIR_STRDUP(listen.address, address) < 0)
> +        goto error;
> +
> +    if (VIR_INSERT_ELEMENT_COPY(def->listens, pos, def->nListens, listen) < 0)

This would become APPEND_ELEMENT_COPY.

ACK

Jan




More information about the libvir-list mailing list