diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index b20100b30b..d2a240fc7a 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2966,6 +2966,7 @@ virStringFilterChars; virStringHasCaseSuffix; virStringHasChars; virStringHasControlChars; +virStringHasSuffix; virStringIsEmpty; virStringIsPrintable; virStringListAdd; diff --git a/src/util/virstring.c b/src/util/virstring.c index b4d10f9884..cf3d9c6f03 100644 --- a/src/util/virstring.c +++ b/src/util/virstring.c @@ -1235,6 +1235,19 @@ virStringReplace(const char *haystack, return virBufferContentAndReset(&buf); } +bool +virStringHasSuffix(const char *str, + const char *suffix) +{ + int len = strlen(str); + int suffixlen = strlen(suffix); + + if (len < suffixlen) + return false; + + return STREQ(str + len - suffixlen, suffix); +} + int virStringHasCaseSuffix(const char *str, const char *suffix) diff --git a/src/util/virstring.h b/src/util/virstring.h index 69030566e9..5b127cdba4 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -288,6 +288,8 @@ char *virStringReplace(const char *haystack, const char *newneedle) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); +bool virStringHasSuffix(const char *str, + const char *suffix); int virStringHasCaseSuffix(const char *str, const char *suffix); int virStringStripSuffix(char *str,