[Libguestfs] [PATCH libnbd 3/9] generator: Add Enum type for enumerated types / unions.
Eric Blake
eblake at redhat.com
Sat Aug 10 17:32:20 UTC 2019
On 8/10/19 8:02 AM, Richard W.M. Jones wrote:
> Previously nbd_set_tls had an integer argument which was 0 for
> disable, 1 for allow and 2 for require. This commit adds a proper
> enumerated type to describe this, defining LIBNBD_TLS_DISABLE = 0,
> LIBNBD_TLS_ALLOW = 1 and LIBNBD_TLS_REQUIRE = 2. (Note the C API
> doesn't change).
>
> In C the enumerated type is still defined and passed as an int (not as
> an enum). While we could define an enum type for this, there are ABI
> stability problems inherent in enums in C.
>
> In OCaml this is implemented as a variant type.
>
> There is no equivalent for returning an enum (eg. for nbd_get_tls).
> We should add that later. It won't affect the C API but would change
> the OCaml API.
> ---
> TODO | 2 -
> generator/generator | 108 ++++++++++++++++++++++++++++++++++++++++++--
> 2 files changed, 104 insertions(+), 6 deletions(-)
>
> diff --git a/TODO b/TODO
> index 65c95ee..8e067c0 100644
> --- a/TODO
> +++ b/TODO
> @@ -35,8 +35,6 @@ Suggested API improvements:
> - nbd_connect_command: allow passing char **env
>
> TLS:
> - - nbd_set_tls: either remove optiona (1/2) interface, or
> - define symbols for it
Nice fix of a typo while at it :)
> @@ -1029,12 +1045,12 @@ NBD server. The possible settings are:
>
> =over 4
>
> -=item C<tls=0>
> +=item C<LIBNBD_TLS_DISABLE>
>
> Disable TLS. (The default setting, unless using C<nbd_connect_uri> with
> a URI that requires TLS)
>
> -=item C<tls=1>
> +=item C<LIBNBD_TLS_ALLOW>
>
> Enable TLS if possible. In some cases this will fall back
> to an unencrypted and/or unauthenticated connection if
While touching this, we should also call out that this is a security
risk if there is any possibility of a man-in-the-middle attack.
Otherwise looks good. Should we also expose an enum type for the
pread_structured callback function?
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20190810/f8a6e504/attachment.sig>
More information about the Libguestfs
mailing list