
2017-04-05 0:26 GMT+02:00 Dawid Zamirski <dzamirski@datto.com>:
This enables this function to handle "v1" and "v2" WMI requests.
Since this commit and the ones that follow should be squashed on previous one: * rename hypervObjectUnified -> hypervObject as we've already broken compilation here so there's no point in keeping those in parallel anymore. * do not mark hypervGetWmiClassInfo as unused --- src/hyperv/hyperv_wmi.c | 41 ++++++++++++++++++++++------------------- src/hyperv/hyperv_wmi.h | 17 ++++------------- 2 files changed, 26 insertions(+), 32 deletions(-)
diff --git a/src/hyperv/hyperv_wmi.c b/src/hyperv/hyperv_wmi.c index 069bcc9..eab6192 100644 --- a/src/hyperv/hyperv_wmi.c +++ b/src/hyperv/hyperv_wmi.c @@ -45,7 +45,7 @@ #define VIR_FROM_THIS VIR_FROM_HYPERV
-static int ATTRIBUTE_UNUSED +static int hypervGetWmiClassInfo(hypervPrivate *priv, hypervWmiClassInfoListPtr list, hypervWmiClassInfoPtr *info) { @@ -143,14 +143,14 @@ hypervVerifyResponse(WsManClient *client, WsXmlDocH response,
/* This function guarantees that query is freed, even on failure */ int -hypervEnumAndPull(hypervPrivate *priv, virBufferPtr query, const char *root, - XmlSerializerInfo *serializerInfo, const char *resourceUri, - const char *className, hypervObject **list) +hypervEnumAndPull(hypervPrivate *priv, hypervWqlQueryPtr wqlQuery, + hypervObject **list) { int result = -1; WsSerializerContextH serializerContext; client_opt_t *options = NULL; char *query_string = NULL; + hypervWmiClassInfoPtr wmiInfo = NULL; filter_t *filter = NULL; WsXmlDocH response = NULL; char *enumContext = NULL; @@ -160,18 +160,20 @@ hypervEnumAndPull(hypervPrivate *priv, virBufferPtr query, const char *root, XML_TYPE_PTR data = NULL; hypervObject *object;
- if (virBufferCheckError(query) < 0) { - virBufferFreeAndReset(query); + if (virBufferCheckError(&wqlQuery->query) < 0) { + virBufferFreeAndReset(&wqlQuery->query); return -1; } - query_string = virBufferContentAndReset(query); + query_string = virBufferContentAndReset(&wqlQuery->query);
if (list == NULL || *list != NULL) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Invalid argument")); - VIR_FREE(query_string); return -1; }
This VIR_FREE needs to stay. I kept it before pushing this patch. -- Matthias Bolte http://photron.blogspot.com