From: Markus Armbruster <armbru@redhat.com>
To: Fabian Ebner <f.ebner@proxmox.com>
Cc: "Wolfgang Bumiller" <w.bumiller@proxmox.com>,
qemu-devel@nongnu.org,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@gmail.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Eric Blake" <eblake@redhat.com>,
"Thomas Lamprecht" <t.lamprecht@proxmox.com>
Subject: Re: [PATCH v7 2/4] qapi/monitor: refactor set/expire_password with enums
Date: Thu, 20 Jan 2022 16:28:41 +0100 [thread overview]
Message-ID: <87leza77fa.fsf@dusky.pond.sub.org> (raw)
In-Reply-To: <723a3dd4-a49a-9a97-9ec6-0c270a71e359@proxmox.com> (Fabian Ebner's message of "Thu, 20 Jan 2022 14:32:45 +0100")
Fabian Ebner <f.ebner@proxmox.com> writes:
> Am 21.10.21 um 12:01 schrieb Stefan Reiter:
>> 'protocol' and 'connected' are better suited as enums than as strings,
>> make use of that. No functional change intended.
>> Suggested-by: Markus Armbruster <armbru@redhat.com>
>> Reviewed-by: Markus Armbruster <armbru@redhat.com>
>> Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
[...]
>> diff --git a/qapi/ui.json b/qapi/ui.json
>> index d7567ac866..15cc19dcc5 100644
>> --- a/qapi/ui.json
>> +++ b/qapi/ui.json
>> @@ -9,6 +9,35 @@
>> { 'include': 'common.json' }
>> { 'include': 'sockets.json' }
>> +##
>> +# @DisplayProtocol:
>> +#
>> +# Display protocols which support changing password options.
>> +#
>> +# Since: 6.2
>> +#
>> +##
>> +{ 'enum': 'DisplayProtocol',
>> + 'data': [ { 'name': 'vnc', 'if': 'CONFIG_VNC' },
>> + { 'name': 'spice', 'if': 'CONFIG_SPICE' } ] }
>> +
>> +##
>> +# @SetPasswordAction:
>> +#
>> +# An action to take on changing a password on a connection with active clients.
>> +#
>> +# @fail: fail the command if clients are connected
>> +#
>> +# @disconnect: disconnect existing clients
>> +#
>> +# @keep: maintain existing clients
>> +#
>> +# Since: 6.2
>> +#
>> +##
>> +{ 'enum': 'SetPasswordAction',
>> + 'data': [ 'fail', 'disconnect', 'keep' ] }
>
> Since 'keep' should be the default, shouldn't it come first? I didn't
> find an explicit mention in the QAPI docs, but testing suggests that
> the first member will be picked. Is that correct?
Not quite.
An optional member @connected generates a pair of C struct members
@connected and @has_connected.
If @has_connected is true, the argument is present, and @connected is
its value.
If @has_connected is false, the argument is absent. The input visitor
zeros @connected then. Other code should as well, for robustness, but I
wouldn't bet my own money on it.
Putting the default value first in an enum makes it zero in C. Instead
of
has_connected ? connected : SET_PASSWORD_ACTION_KEEP
you can then write just
connected
when you know absent values are zero. Easier on the eyes.
A possible improvement to the QAPI schema language: optional members may
have a default value. When given, we don't generate has_FOO.
> qmp_set_password still relies on has_connected to guard its checks
> here, but the next patch removes that, which AFAICT makes the default
> be 'fail' instead of keeping 'keep'. While it's only temporary
> breakage for VNC as the final patch in the series allows only 'keep'
> (still, should be avoided if possible), it does matter for SPICE.
Even temporary breakage should be avoided whenever practical.
[...]
next prev parent reply other threads:[~2022-01-20 21:59 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-21 10:01 [PATCH v7 0/4] VNC-related HMP/QMP fixes Stefan Reiter
2021-10-21 10:01 ` [PATCH v7 1/4] monitor/hmp: add support for flag argument with value Stefan Reiter
2021-10-26 10:07 ` Dr. David Alan Gilbert
2021-10-29 19:51 ` Eric Blake
2021-10-21 10:01 ` [PATCH v7 2/4] qapi/monitor: refactor set/expire_password with enums Stefan Reiter
2022-01-20 13:32 ` Fabian Ebner
2022-01-20 15:28 ` Markus Armbruster [this message]
2021-10-21 10:01 ` [PATCH v7 3/4] qapi/monitor: allow VNC display id in set/expire_password Stefan Reiter
2021-10-21 10:38 ` Markus Armbruster
2021-10-26 10:12 ` Dr. David Alan Gilbert
2021-10-21 10:01 ` [PATCH v7 4/4] qapi/monitor: only allow 'keep' SetPasswordAction for VNC and deprecate Stefan Reiter
2022-01-31 16:07 ` Daniel P. Berrangé
2021-10-21 10:39 ` [PATCH v7 0/4] VNC-related HMP/QMP fixes Markus Armbruster
2021-10-26 10:18 ` Dr. David Alan Gilbert
2021-10-26 11:32 ` Markus Armbruster
2021-10-27 7:27 ` Gerd Hoffmann
2021-10-27 8:44 ` Dr. David Alan Gilbert
2021-10-28 5:25 ` Markus Armbruster
2021-10-28 19:37 ` Markus Armbruster
2022-01-11 14:18 ` Fabian Ebner
2022-01-13 15:52 ` Markus Armbruster
2022-01-21 13:20 ` Fabian Ebner
2022-01-21 15:54 ` Markus Armbruster
2022-01-24 13:50 ` Markus Armbruster
2022-01-24 13:50 ` Markus Armbruster
2022-01-25 15:06 ` Daniel P. Berrangé
2022-01-31 9:45 ` Fabian Ebner
2022-01-31 16:11 ` Daniel P. Berrangé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87leza77fa.fsf@dusky.pond.sub.org \
--to=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=f.ebner@proxmox.com \
--cc=kraxel@redhat.com \
--cc=marcandre.lureau@gmail.com \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=t.lamprecht@proxmox.com \
--cc=w.bumiller@proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.