On Thu, 10 Dec 2009 11:09:53 +0100 Markus Armbruster <arm...@redhat.com> wrote:
> Luiz Capitulino <lcapitul...@redhat.com> writes: > > > Signed-off-by: Luiz Capitulino <lcapitul...@redhat.com> > > --- > > monitor.c | 29 +++++++++++++++++++++++++---- > > 1 files changed, 25 insertions(+), 4 deletions(-) > > > > diff --git a/monitor.c b/monitor.c > > index 47f794d..3d33bd8 100644 > > --- a/monitor.c > > +++ b/monitor.c > > @@ -514,10 +514,30 @@ static void do_info_version(Monitor *mon, QObject > > **ret_data) > > QEMU_VERSION, QEMU_PKGVERSION); > > } > > > > -static void do_info_name(Monitor *mon) > > +static void do_info_name_print(Monitor *mon, const QObject *data) > > { > > - if (qemu_name) > > - monitor_printf(mon, "%s\n", qemu_name); > > + const char *str; > > + > > + str = qdict_get_str(qobject_to_qdict(data), "name"); > > + if (strlen(str) > 0) { > > + monitor_printf(mon, "%s\n", str); > > + } > > +} > > + > > +/** > > + * do_info_name(): Show VM name > > + * > > + * Return a QDict with the following information: > > + * > > + * - "name": VM's name. If the VM has no name, the string will be empty > > So you can't distinguish name "" from unnamed. Do we care? I don't think so, but if we do the best way to deal with the fact that qemu_name can be NULL would be to return null, like: { "name": null } But we don't support json-null yet... There are other two ways to solve this, but they seem workarounds for not supporting null: return an empty dict or return { "name": false }. > Monitor output for unnamed guests changes from > > (qemu) info name > (qemu) > > to > > (qemu) info name > > (qemu) The strlen() call doesn't let this happen. Although the other way around does happen: if you call qemu with -name '', then output would be: (qemu) info name (qemu) This won't happen anymore, goto do_we_care.