On Mon, Sep 14, 2026 at 10:12:17AM -1000, Richard Henderson wrote:
> On 9/14/26 10:04, Daniel P. Berrangé wrote:
> > On Mon, Sep 14, 2026 at 09:30:56AM -1000, Richard Henderson wrote:
> > > On 9/10/26 00:36, Daniel P. Berrangé wrote:
> > > > @@ -161,9 +163,15 @@ static void qom_list_types_tramp(ObjectClass
> > > > *klass, void *opaque)
> > > > ObjectTypeInfo *info;
> > > > ObjectClass *parent = object_class_get_parent(klass);
> > > > + if (data->has_secure &&
> > > > + data->secure != object_class_is_secure(klass)) {
> > > > + return;
> > > > + }
> > > > +
> > > > info = g_malloc0(sizeof(*info));
> > > > info->name = g_strdup(object_class_get_name(klass));
> > > > info->has_abstract = info->abstract =
> > > > object_class_is_abstract(klass);
> > > > + info->has_secure = info->secure = object_class_is_secure(klass);
> > >
> > > Why are you assigning to has_secure here? I thought that was just for the
> > > filter test above.
> >
> > 'data->has_secure/secure' is for the input parameter allowing the
> > QMP client to say whether the returned device list should be
> > filtered based on security status, or include everything (the
> > default).
> >
> > 'info->has_secure/secure' is for the return value reporting to the
> > client whether each device was secure/insecure.
> Still not getting it. I understand info->secure as an output.
> I do not understand info->has_secure as an output.
>
> Unless info->has_secure = true as an output indicates info->secure is valid?
> But in that case, why make them identical.
If 'has_secure == false', then the 'secure' will never be serialized
on the wire, the field will be skipped entirely.
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|