qmp: add and use q type specifier

"O" is being used by the transaction and qom-set commands to mean "any
QObject", but it really means "do not validate the argument list".
Add a new specifier with the correct meaning.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
Paolo Bonzini
2012-03-27 09:15:28 -03:00
committed by Luiz Capitulino
parent e38ac9621c
commit b9f8978cc4
2 changed files with 5 additions and 2 deletions
+3
View File
@@ -4157,6 +4157,9 @@ static int check_client_args_type(const QDict *client_args,
case 'O':
assert(flags & QMP_ACCEPT_UNKNOWNS);
break;
case 'q':
/* Any QObject can be passed. */
break;
case '/':
case '.':
/*
+2 -2
View File
@@ -708,7 +708,7 @@ EQMP
},
{
.name = "transaction",
.args_type = "actions:O",
.args_type = "actions:q",
.mhandler.cmd_new = qmp_marshal_input_transaction,
},
@@ -2125,7 +2125,7 @@ EQMP
{
.name = "qom-set",
.args_type = "path:s,property:s,opts:O",
.args_type = "path:s,property:s,value:q",
.mhandler.cmd_new = qmp_qom_set,
},