[libvirt] [PATCH v6 04/10] graphics: introduce new listen type 'socket'

Ján Tomko jtomko at redhat.com
Thu Jun 9 10:41:01 UTC 2016


On Wed, Jun 08, 2016 at 05:25:42PM +0200, Pavel Hrdina wrote:
> Signed-off-by: Pavel Hrdina <phrdina at redhat.com>
> ---
>  docs/formatdomain.html.in     |  8 ++++++
>  docs/schemas/domaincommon.rng | 10 ++++++++
>  src/conf/domain_conf.c        | 60 +++++++++++++++++++++++++++++++++++++++++--
>  src/conf/domain_conf.h        |  6 +++++
>  src/libvirt_private.syms      |  1 +
>  src/qemu/qemu_hotplug.c       |  9 +++++++
>  src/qemu/qemu_process.c       |  9 +++++++
>  src/security/virt-aa-helper.c | 15 ++++++++---
>  8 files changed, 112 insertions(+), 6 deletions(-)
> 

ACK

> @@ -10895,6 +10897,7 @@ virDomainGraphicsAuthDefParseXML(xmlNodePtr node,
>  /**
>   * virDomainGraphicsListenDefParseXML:
>   * @def: listen def pointer to be filled
> + * @graphics: graphics def pointer
>   * @node: xml node of <listen/> element
>   * @parent: xml node of <graphics/> element
>   * @flags: bit-wise or of VIR_DOMAIN_DEF_PARSE_*
> @@ -10906,6 +10909,7 @@ virDomainGraphicsAuthDefParseXML(xmlNodePtr node,
>   */
>  static int
>  virDomainGraphicsListenDefParseXML(virDomainGraphicsListenDefPtr def,
> +                                   virDomainGraphicsDefPtr graphics,

Passing just the graphics type would be enough.

>                                     xmlNodePtr node,
>                                     xmlNodePtr parent,
>                                     unsigned int flags)
> @@ -10914,8 +10918,10 @@ virDomainGraphicsListenDefParseXML(virDomainGraphicsListenDefPtr def,
>      char *type = virXMLPropString(node, "type");
>      char *address = virXMLPropString(node, "address");
>      char *network = virXMLPropString(node, "network");
> +    char *socket = virXMLPropString(node, "socket");
>      char *fromConfig = virXMLPropString(node, "fromConfig");
>      char *addressCompat = NULL;
> +    const char *graphicsType = virDomainGraphicsTypeToString(graphics->type);
>      int tmp, typeVal;
>  
>      if (parent)
> @@ -10934,6 +10940,13 @@ virDomainGraphicsListenDefParseXML(virDomainGraphicsListenDefPtr def,
>      }
>      def->type = typeVal;
>  
> +    if (def->type == VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET) {

Okay, we don't parse it yet, hence no XML->XML test.

> +        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> +                       _("listen type 'socket' is not available for "
> +                         "graphics type '%s'"), graphicsType);
> +        goto error;
> +    }
> +
>      if (def->type == VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS) {
>          if (address && addressCompat && STRNEQ(address, addressCompat)) {
>              virReportError(VIR_ERR_CONFIG_UNSUPPORTED,

> diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
> index 6b0685c..9eafaee 100644
> --- a/src/security/virt-aa-helper.c
> +++ b/src/security/virt-aa-helper.c
> @@ -1007,10 +1007,17 @@ get_files(vahControl * ctl)
>              goto cleanup;
>  
>      for (i = 0; i < ctl->def->ngraphics; i++) {
> -        if (ctl->def->graphics[i]->type == VIR_DOMAIN_GRAPHICS_TYPE_VNC &&
> -            ctl->def->graphics[i]->data.vnc.socket &&
> -            vah_add_file(&buf, ctl->def->graphics[i]->data.vnc.socket, "w"))
> -            goto cleanup;
> +        virDomainGraphicsDefPtr graphics = ctl->def->graphics[i];
> +        size_t n;
> +
> +        for (n = 0; n < graphics->nListens; n++) {
> +            virDomainGraphicsListenDef listenObj = graphics->listens[n];
> +
> +            if (listenObj.type == VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_SOCKET &&
> +                listenObj.socket &&
> +                vah_add_file(&buf, listenObj.socket, "rw"))
> +                goto cleanup;
> +        }
>      }
>  

I would move this hunk to the next patch, since we have not yet started
copying data.vnc.socket to listens.

Jan




More information about the libvir-list mailing list