On Wed, 02 Jun 2010 09:39:26 +0200 Markus Armbruster <arm...@redhat.com> wrote:
> Luiz Capitulino <lcapitul...@redhat.com> writes: > > > This is similar to qmp_check_client_args(), but checks if > > the input object follows the specification (QMP/qmp-spec.txt > > section 2.3). > > > > As we're limited to three keys, the work here is quite simple: > > we iterate over the input object, each time checking if the > > given argument complies to the specification. > > > > Signed-off-by: Luiz Capitulino <lcapitul...@redhat.com> > > --- > > monitor.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ > > 1 files changed, 45 insertions(+), 0 deletions(-) > > > > diff --git a/monitor.c b/monitor.c > > index 1875731..654b193 100644 > > --- a/monitor.c > > +++ b/monitor.c > > @@ -4271,6 +4271,45 @@ static int qmp_check_client_args(const mon_cmd_t > > *cmd, QDict *client_args) > > return res.result; > > } > > > > +/* > > + * Input object checking rules > > + * > > + * 1. "execute" key must exist (not checked here) > > + * 2. "execute" key must be a string > > + * 3. "arguments" key must be a dict > > + * 4. "id" key can be anything (ie. json-value) > > Really? Checking qmp-spec.txt... yes, really. Is it a good idea to > permit objects and arrays? It was Avi's suggestion to allow anything, maybe arrays don't make sense but objects do.