Re: [PATCH 05/11] hyperv: add hypervWqlQuery struct.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2017-03-30 18:47 GMT+02:00 Dawid Zamirski <dzamirski@xxxxxxxxx>:
> This struct is to be passed to enumerate-and-pull wsman request (to run
> "Select" queries) and provides the hypervWmiClassInfoListPtr instance
> from which we can extract the version specific info using the new
> hypervGetWmiClassInfo function (currently unused)
> ---
>  src/hyperv/hyperv_wmi.c | 35 +++++++++++++++++++++++++++++++++++
>  src/hyperv/hyperv_wmi.h |  8 ++++++++
>  2 files changed, 43 insertions(+)
>
> diff --git a/src/hyperv/hyperv_wmi.c b/src/hyperv/hyperv_wmi.c
> index 309edac..42ce507 100644
> --- a/src/hyperv/hyperv_wmi.c
> +++ b/src/hyperv/hyperv_wmi.c
> @@ -44,6 +44,41 @@
>
>  #define VIR_FROM_THIS VIR_FROM_HYPERV
>
> +static int
> +hypervGetWmiClassInfo(hypervPrivate *priv, hypervWmiClassInfoListPtr list,
> +                      hypervWmiClassInfoPtr *info)
> +{
> +    const char *version = "v2";
> +    size_t i;
> +
> +    if (list->count == 0) {
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("The WMI class info list is empty"));
> +        return -1;
> +    }
> +
> +    if (list->count == 1) {
> +        *info = list->objs[0];
> +        return 0;

Here you assume that if there is only one variation of a WMI class
that it is the v1 variation, and you don't do any version check. At
the moment this is fine, because your assumption holds. But this is
not future proof. If v2-only WMI classes are added then this check
will happily return a v2 WMI class info for a v1 connection.

> +    }
> +
> +    if (priv->wmiVersion == HYPERV_WMI_VERSION_V1)
> +        version = "v1";
> +
> +    for (i = 0; i < list->count; i++) {
> +       if (STRCASEEQ(list->objs[i]->version, version)) {
> +           *info = list->objs[i];
> +           return 0;
> +       }
> +    }
> +
> +    virReportError(VIR_ERR_INTERNAL_ERROR,
> +                   _("Could not match WMI class info for version %s"),
> +                   version);
> +
> +    return -1;
> +}



-- 
Matthias Bolte
http://photron.blogspot.com

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux