[RFCv2 05/46] util: Add helper functions for 'bool' and 'time_t' and cooperate with xmlgen

Daniel P. Berrangé berrange at redhat.com
Fri Dec 4 18:02:11 UTC 2020


On Fri, Sep 04, 2020 at 11:34:57AM +0800, Shi Lei wrote:
> Signed-off-by: Shi Lei <shi_lei at massclouds.com>
> ---
>  src/libvirt_private.syms |  3 +++
>  src/util/virstring.c     | 57 ++++++++++++++++++++++++++++++++++++++++
>  src/util/virstring.h     |  9 +++++++
>  3 files changed, 69 insertions(+)
> 
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index 191eab0..4ad9d1e 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -3242,6 +3242,7 @@ virStringStripSuffix;
>  virStringToUpper;
>  virStringTrimOptionalNewline;
>  virStrncpy;
> +virStrToBool;
>  virStrToDouble;
>  virStrToLong_i;
>  virStrToLong_l;
> @@ -3252,6 +3253,8 @@ virStrToLong_ul;
>  virStrToLong_ull;
>  virStrToLong_ullp;
>  virStrToLong_ulp;
> +virStrToTime;
> +virTimeFormatBuf;
>  virTrimSpaces;
>  
>  
> diff --git a/src/util/virstring.c b/src/util/virstring.c
> index de2ef96..23ade40 100644
> --- a/src/util/virstring.c
> +++ b/src/util/virstring.c
> @@ -1349,3 +1349,60 @@ int virStringParseYesNo(const char *str, bool *result)
>  
>      return 0;
>  }
> +
> +
> +int
> +virStrToBool(const char *str, const char *truevalue, bool *result)
> +{
> +    if (STREQ(str, truevalue))
> +        *result = true;
> +    else
> +        *result = false;
> +
> +    return 0;
> +}

I'd suggest we should explicitly check both the true and false
values, and raise an error for any other value.

I think we probably ought to have wrappers for the pairs of words
we consider sane.  eg  virStrToBoolYesNo, virStrToBoolTrueFalse
and virStrToBoolOnOff I think are probably the only ones we want
to permit

> +
> +

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list