On Fri, Sep 04, 2020 at 11:34:57AM +0800, Shi Lei wrote: > Signed-off-by: Shi Lei <shi_lei@xxxxxxxxxxxxxx> > --- > 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 :|