]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: qapi: Add support for command features
authorPeter Krempa <pkrempa@redhat.com>
Tue, 17 Sep 2019 15:08:56 +0000 (17:08 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 22 Nov 2019 11:51:27 +0000 (12:51 +0100)
The top level commands now can have 'feature' flags for fixes so add
support for querying those as well.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
src/qemu/qemu_qapi.c

index 484f274c6334752379c14e855973420fdbd867b1..8e66f9f180d34b951c8ce4d664973c64ecc013ba 100644 (file)
@@ -216,6 +216,21 @@ virQEMUQAPISchemaTraverseCommand(virJSONValuePtr cur,
 {
     const char *query = virQEMUQAPISchemaTraverseContextNextQuery(ctxt);
     const char *querytype;
+    char modifier = *query;
+
+    if (!c_isalpha(modifier))
+        query++;
+
+    /* exit on modifers for other types */
+    if (modifier == '^' || modifier == '!' || modifier == '+' || modifier == '*')
+        return 0;
+
+    if (modifier == '$') {
+        if (virQEMUQAPISchemaTraverseContextHasNextQuery(ctxt))
+            return -3;
+
+        return virQEMUQAPISchemaTraverseHasObjectFeature(query, cur);
+    }
 
     if (!(querytype = virJSONValueObjectGetString(cur, query)))
         return 0;